Hallo Leute,
danke für die tollen Tipps!
Sorry, dass ich mich jetzt erst wieder melde. Da die ersten Versuche, mich mit "Python via Basic" vertraut zu machen, ziemlich daneben gingen, habe ich an meinem restlichen Programm-Code weitergearbeitet, um mal wieder ein paar Erfolge feiern zu können.
Ich habe mich die letzten Tage (mit Übersetzer) intensiv in die englische Dokumentation der Python-Implementierung eingelesen und seit gerade eben endlich eine laufende Funktion mit optionaler Werteübergabe/Rückgabe, um mit einem Python-Script zu interargieren.
Ich muss sagen, dass es im Netz ziemlich verwirrende und komplexe Lösungen zu geben scheint, aber es geht auch relativ einfach, wie im folgenden Beispiel zu sehen ist.
Wen's interessiert:
Das Basic-Makro lautet:
Code: Alles auswählen
Sub runPythonFromDocument()
Dim oScriptProvider As Object
Dim oScript As Object
Dim returnFromPython
Dim sScript As String
Dim sLocation As String
sScript = "basic.py$testReturn"
sLocation = "user" 'alternativ: share, document
oScriptProvider = thisComponent.getScriptProvider()
oScript = oScriptProvider.getScript("vnd.sun.star.script:" & sScript & "?language=Python&location=" & sLocation)
returnFromPython = oScript.invoke(Array(), Array(), Array())
print returnFromPython
End Sub
Das Python-Script, welches (während der Entwicklung) im Benutzerverzeichnis unter \Scripts\python abgelegt ist, lautet:
Eine Einbindung der Python-Scripte direkt in das Dokument ist z.B. über die APSO-Erweiterung möglich.
Ich hätte nicht gedacht, dass eine Interaktion von Basic mit einem Webserver überhaupt zu realisieren ist, aber Python scheint die richtige Wahl.
Ich werde euch die Tage berichten, wie es vorangegangen ist...
Viele Grüße,
Marcel
@Jörn: Ich bin jetzt gänzlich auf LibreOffice umgestiegen. Die Einbindung von Python ist wohl identisch, aber LibreOffice ist weiterentwickelt und mich störte schon seit Beginn meiner Arbeit mit OpenOffice die fehlende Zeilennummerierung.
@Stephan: Du hattest es richtig verstanden, aber nur wenige Websites haben eine Parameter-Abfrage per "?" integriert. Dies scheint mir nur sinnvoll, wenn andere Applikationen direkt auf öffentliche Daten zugreifen sollen. Und eine Übergabe von Login-Daten über URL-Parameter wäre auch nicht besonders zu empfehlen. > Aber mit Python/Basic eröffnen sich gerade ganz neue Welten!