diff options
Diffstat (limited to 'wizards/source/scriptforge/SF_PythonHelper.xba')
-rw-r--r-- | wizards/source/scriptforge/SF_PythonHelper.xba | 86 |
1 files changed, 50 insertions, 36 deletions
diff --git a/wizards/source/scriptforge/SF_PythonHelper.xba b/wizards/source/scriptforge/SF_PythonHelper.xba index 442a4bd1b856..d2b8f3276f43 100644 --- a/wizards/source/scriptforge/SF_PythonHelper.xba +++ b/wizards/source/scriptforge/SF_PythonHelper.xba @@ -712,6 +712,7 @@ Try: vBasicObject = _SF_.PythonStorage(BasicObject) sObjectType = vBasicObject.ObjectType sServiceName = vBasicObject.ServiceName + ' Basic modules have type = "SF_*" bBasicClass = ( Left(sObjectType, 3) <> "SF_" ) sLibrary = Split(sServiceName, ".")(0) @@ -727,10 +728,17 @@ Try: ElseIf Not bBasicClass And _ (((CallType And vbMethod) + (CallType And cstArgArray)) = vbMethod + cstArgArray Or _ ((CallType And vbMethod) + (CallType And cstRetArray)) = vbMethod + cstRetArray) Then - Select Case sServiceName - Case "ScriptForge.Array" - If Script = "ImportFromCSVFile" Then vReturn = SF_Array.ImportFromCSVFile(vArgs(0), vArgs(1), vArgs(2), True) - End Select + ' Not service related + If Script = "Methods" Then + vReturn = vBasicObject.Methods() + ElseIf Script = "Properties" Then + vReturn = vBasicObject.Properties() + Else + Select Case sServiceName + Case "ScriptForge.Array" + If Script = "ImportFromCSVFile" Then vReturn = SF_Array.ImportFromCSVFile(vArgs(0), vArgs(1), vArgs(2), True) + End Select + End If ' Methods in usual modules are called by ExecuteBasicScript() except if they use a ParamArray ElseIf Not bBasicClass And (CallType And vbMethod) = vbMethod Then @@ -759,38 +767,44 @@ Try: ' Methods in class modules using a 2D array or returning arrays are hardcoded as exceptions. Bug #138155 ElseIf ((CallType And vbMethod) + (CallType And cstArgArray)) = vbMethod + cstArgArray Or _ ((CallType And vbMethod) + (CallType And cstRetArray)) = vbMethod + cstRetArray Then - Select Case sServiceName - Case "SFDatabases.Database" - If Script = "GetRows" Then vReturn = vBasicObject.GetRows(vArgs(0), vArgs(1), vArgs(2), vArgs(3)) - Case "SFDialogs.Dialog" - If Script = "Controls" Then vReturn = vBasicObject.Controls(vArgs(0)) - Case "SFDialogs.DialogControl" - If Script = "SetTableData" Then vReturn = vBasicObject.SetTableData(vArgs(0), vArgs(1), vArgs(2)) - Case "SFDocuments.Document" - If Script = "Forms" Then vReturn = vBasicObject.Forms(vArgs(0)) - Case "SFDocuments.Base" - Select Case Script - Case "FormDocuments" : vReturn = vBasicObject.FormDocuments() - Case "Forms" : vReturn = vBasicObject.Forms(vArgs(0), vArgs(1)) - End Select - Case "SFDocuments.Calc" - Select Case Script - Case "Charts" : vReturn = vBasicObject.Charts(vArgs(0), vArgs(1)) - Case "Forms" : vReturn = vBasicObject.Forms(vArgs(0), vArgs(1)) - Case "GetFormula" : vReturn = vBasicObject.GetFormula(vArgs(0)) - Case "GetValue" : vReturn = vBasicObject.GetValue(vArgs(0)) - Case "SetArray" : vReturn = vBasicObject.SetArray(vArgs(0), vArgs(1)) - Case "SetFormula" : vReturn = vBasicObject.SetFormula(vArgs(0), vArgs(1)) - Case "SetValue" : vReturn = vBasicObject.SetValue(vArgs(0), vArgs(1)) - End Select - Case "SFDocuments.Form" - Select Case Script - Case "Controls" : vReturn = vBasicObject.Controls(vArgs(0)) - Case "Subforms" : vReturn = vBasicObject.Subforms(vArgs(0)) - End Select - Case "SFDocuments.FormControl" - If Script = "Controls" Then vReturn = vBasicObject.Controls(vArgs(0)) - End Select + If Script = "Methods" Then + vReturn = vBasicObject.Methods() + ElseIf Script = "Properties" Then + vReturn = vBasicObject.Properties() + Else + Select Case sServiceName + Case "SFDatabases.Database" + If Script = "GetRows" Then vReturn = vBasicObject.GetRows(vArgs(0), vArgs(1), vArgs(2), vArgs(3)) + Case "SFDialogs.Dialog" + If Script = "Controls" Then vReturn = vBasicObject.Controls(vArgs(0)) + Case "SFDialogs.DialogControl" + If Script = "SetTableData" Then vReturn = vBasicObject.SetTableData(vArgs(0), vArgs(1), vArgs(2)) + Case "SFDocuments.Document" + If Script = "Forms" Then vReturn = vBasicObject.Forms(vArgs(0)) + Case "SFDocuments.Base" + Select Case Script + Case "FormDocuments" : vReturn = vBasicObject.FormDocuments() + Case "Forms" : vReturn = vBasicObject.Forms(vArgs(0), vArgs(1)) + End Select + Case "SFDocuments.Calc" + Select Case Script + Case "Charts" : vReturn = vBasicObject.Charts(vArgs(0), vArgs(1)) + Case "Forms" : vReturn = vBasicObject.Forms(vArgs(0), vArgs(1)) + Case "GetFormula" : vReturn = vBasicObject.GetFormula(vArgs(0)) + Case "GetValue" : vReturn = vBasicObject.GetValue(vArgs(0)) + Case "SetArray" : vReturn = vBasicObject.SetArray(vArgs(0), vArgs(1)) + Case "SetFormula" : vReturn = vBasicObject.SetFormula(vArgs(0), vArgs(1)) + Case "SetValue" : vReturn = vBasicObject.SetValue(vArgs(0), vArgs(1)) + End Select + Case "SFDocuments.Form" + Select Case Script + Case "Controls" : vReturn = vBasicObject.Controls(vArgs(0)) + Case "Subforms" : vReturn = vBasicObject.Subforms(vArgs(0)) + End Select + Case "SFDocuments.FormControl" + If Script = "Controls" Then vReturn = vBasicObject.Controls(vArgs(0)) + End Select + End If ' Methods in class modules are invoked with CallByName ElseIf bBasicClass And ((CallType And vbMethod) = vbMethod) Then |