automatic calculation Josef Frysak How to activate and deactivate the automatic calculation?

Every spreadsheet document also inherits an "XCalculatable" interface.

This interface contains the "isAutomaticCalculationEnabled" function to

get the state of the automatic calculateion and the

"enableAutomaticCalculation" method to turn it on and off.

For further details see http://wi.wu-wien.ac.at/rgf/diplomarbeiten/BakkStuff/2008/200809_Frysak/200809_Frysak_Automating_OOo_ooRexx_Nutshells.pdf.

-- try to get a script context, will be .nil, if script was not invoked by OOo x_ScriptContext = uno.getScriptContext() if (x_ScriptContext <> .nil) then do -- invoked by OOo as a macro -- get context x_ComponentContext = x_ScriptContext~getComponentContext -- get desktop (an XDesktop) x_Desktop = x_ScriptContext~getDesktop -- get current document x_Document = x_ScriptContext~getDocument end else do -- called from outside of OOo, create a connection -- connect to Open Office and get component context x_ComponentContext = UNO.connect() -- create a desktop service and its interface service = "{%see com.sun.star.frame.Desktop}" s_Desktop = x_ComponentContext~getServiceManager~{%see com.sun.star.lang.XMultiServiceFactory%XMultiServiceFactory}~createInstance(service) x_Desktop = s_Desktop~{%see com.sun.star.frame.XDesktop%XDesktop} -- get the last active document x_Document = x_Desktop~getCurrentComponent() end -- generate interface to automatic calculation entry x_Calculatable = x_Document~{%see com.sun.star.sheet.XCalculatable%XCalculatable} -- if Calculation is enabled - disable it, else enable it if x_Calculatable~isAutomaticCalculationEnabled() then x_Calculatable~enableAutomaticCalculation(.false) else x_Calculatable~enableAutomaticCalculation(.true) ::requires UNO.CLS
Initial version