Seite 1 von 1

Schaltflächen funktionieren nicht mehr

Verfasst: Sa 22. Feb 2025, 00:17
von libels
Hi
Ich habe vor ungefähr einem Jahr eine Datenbank für unsere Kräuter/Pflanzen erstellt. Darin befinden sich Schaltflächen die Formulare und/oder Dokumente aufrufen.
Nachdem ich das Teil länger nicht mehr verwendet habe, es jetzt aber wieder nutzen will, muss ich feststellen, dass alle Schaltflächen nicht mehr funktionieren, also entweder gar nichts machen (z.b. Formulare aufrufen)oder falsche Dokumente aufrufen (Ein Button soll aus einem Feld einen Pfad auslesen - der dort auch drinnen steht - und dann dieses Dokument aufrufen - es wird aber statt des Pfades eine fix eingetragene URL aufgerufen ...).
Blöd ist, dass ich mich auch ca. genau so lange nicht mehr mit Office Base beschäftigt habe und daher auch nur mehr wenig Ahnung habe, was ich überhaupt gemacht habe. Ich weiß aber, dass die Anwendung funktioniert hat.
Was ist da los ?
lg Libels

Re: Schaltflächen funktionieren nicht mehr

Verfasst: Sa 22. Feb 2025, 10:52
von RobertG
Kann es sein, dass die Makros nicht mehr ausgeführt werden? Denn wenn Schaltflächen Dokumente und Formulare öffnen, dann hat das sicher etwas mit Makros zu tun.

Re: Schaltflächen funktionieren nicht mehr

Verfasst: Sa 22. Feb 2025, 23:18
von libels
RobertG hat geschrieben:
Sa 22. Feb 2025, 10:52
Kann es sein, dass die Makros nicht mehr ausgeführt werden? Denn wenn Schaltflächen Dokumente und Formulare öffnen, dann hat das sicher etwas mit Makros zu tun.
Ich habe jetzt meinen Datenbankordner zu den Vertrauenswürdigen Orten hinzugefügt und jetzt gehen die meisten Schaltflächen wieder.
Ein "Button" funktioniert allerdings nicht mehr und ich komme nicht darauf, was da los ist.

Der Button ist in mehreren Formularen und hat eigentlich zur Aufgabe, den Pfad einer Datei aus einem Feld zu lesen und zu öffnen.
Das Feld heißt Origineller Weise "Textfeld1" und hat das Datenfeld "Files" (Darin wird abhängig vom Datensatz der Pfad zum Dokument generiert - das geschieht auch.)

Der Button nennt sich "Button_File" und trägt den Titel "Pflanzeninfo" Die zugeordnete Aktion ist "Dokument/Website öffnen" und darunter ist eine URL eingetragen, die der Button da auch öffnet, obwoh er eigentlich den ausgelesenen Pfad aus "Textfeld1" verwerten sollte.
Bei "Ereignisse" ist unter "Aktion bestätigen" folgendes eingetragen: "pyDBA|URLButton.py$FileButton_Approve (user, Python)"

Wenn ich den Button drücke kommt zum einen immer das gleiche Dokument der fix eingetragenen URL und danach die Fehlermeldung:
Ein Scripting Framework Fehler trat während der Ausführung vom Python Skript pyDBA|URLButton.py$FileButton_Approve auf.
Meldung: Die Skriptsprache Python wird nicht unterstützt
Der Button hat aber vor einem Jahr klaglos funktioniert.
Wie bekomme ich den wieder Funktionsfähig ?

Ahja und die Makros sehen so aus:

Code: Alles auswählen

REM  *****  BASIC  *****
Sub Main

End Sub


Sub openForm(oEvent AS OBJECT)
  stTag = oEvent.Source.Model.Tag
  ThisDatabaseDocument.FormDocuments.getByName(stTag).open
End Sub

SUB FB_Parameter
 DIM oSettings AS OBJECT
 oSettings = ThisComponent.DataSource.Settings
 oSettings.ParameterNameSubstitution = True
END SUB

SUB Link_oeffnen
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
DIM oFeld AS OBJECT
DIM oShell AS OBJECT
DIM stFeld AS STRING
oDoc = thisComponent
oDrawpage = oDoc.Drawpage
oForm =oDrawpage.Forms.getByName("ArtPflanzen").getByName("Art_Pflanzen")
oFeld = oForm.getByName("Tabellensteuerelement 1").getByName("fn_Name")
stFeld = oFeld.Text
IF stFeld = "" THEN
EXIT SUB
END IF
IF InStr(stFeld,"@") THEN
stFeld = "mailto:"+stFeld
ELSE
stFeld = convertToUrl(stFeld)
END IF
oShell = createUnoService("com.sun.star.system.SystemShellExecute")
oShell.execute(stFeld,,0)
END SUB

REM  *****  BASIC  *****

Sub URLButton_Approve(oEv)
    openURL(oEv, False)
End Sub

Sub FileButton_Approve(oEv)
    openURL(oEv, True)
End Sub

Sub openURL(oEv, bConvertToURL)
    oModel = oEv.Source.getModel()
    oModel.ButtonType = com.sun.star.form.FormButtonType.URL
    oForm = oModel.getParent()
    oColumn = oForm.Columns.getByName(oModel.Tag)
    if bConvertToURL then
        sURL = convertToUrl(oColumn.getString())
    else
        sURL = oColumn.getString()
    endif
    oModel.TargetURL = sURL
End Sub

Re: Schaltflächen funktionieren nicht mehr

Verfasst: So 23. Feb 2025, 09:55
von RobertG
Die Meldung sagt doch, was da fehlt. Offensichtlich die Unterstützung für Python. Von Python habe ich keine Ahnung, aber vermutlich musst Du nur irgendwelche Pakete zusätzlich installieren, die LibreOffice mit Python-Unterstützung laufen lassen.

Die anderen Makros sind ja offensichtlich in StarBasic gehalten.

Re: Schaltflächen funktionieren nicht mehr

Verfasst: So 23. Feb 2025, 10:24
von libels
RobertG hat geschrieben:
So 23. Feb 2025, 09:55
Die Meldung sagt doch, was da fehlt. Offensichtlich die Unterstützung für Python. Von Python habe ich keine Ahnung, aber vermutlich musst Du nur irgendwelche Pakete zusätzlich installieren, die LibreOffice mit Python-Unterstützung laufen lassen.

Die anderen Makros sind ja offensichtlich in StarBasic gehalten.
Das habe ich auch geglaubt und in der Richtung Versuche unternommen (sudo apt-get install libreoffice-script-provider-python ") - allerdings.

1) Hat der Button schon mal funktioniert, ohne das ich irgendwelche zusätzlichen Dinge installiert hätte.
2) Mit der Installation des python script providers kommt beim drücken des Button gar kein Dokumentaufruf mehr, aber dafür ein Scripting-Fehler.
ScrError.png
ScrError.png (48.05 KiB) 552 mal betrachtet
Ich habe jetzt das Makro das als (user,python) bezeichnet wurde, aber in den Phyton-Makros gar nicht aufscheint durch ein Button.approve Makro der Standard-Makros meiner Datenbank erstezt und jetzt geht's :-)