🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Starthilfe für Formular-Makro erbeten

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
surferchen
Beiträge: 2
Registriert: So 27. Okt 2013, 19:44

Starthilfe für Formular-Makro erbeten

Beitrag von surferchen » So 27. Okt 2013, 20:00

Moin Moin,

Ich möchte ein Formular mit einem Makro erweitern und könnte dafür ein paar Zeilen als Starthilfe gut gebrauchen.

Das Makro soll am Zustand eines booleschen Feldes im Formular erkennen, ob andere Formularfelder (z.B. vom Typ Währung) geändert werden sollen. Zum Beispiel bei
logisch Nein -> mache nichts
logisch Ja -> andere Felder mit negativem Vorzeichen versehen

Kann mir jemand bitte etwas Starthilfe geben? :roll:

Wäre super!!!

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Starthilfe für Formular-Makro erbeten

Beitrag von RobertG » Mo 28. Okt 2013, 15:19

Hallo surferchen,

ich weiß zwar nicht, wozu Du so etwas fehlerfrei realisieren willst (jedes Mal, wenn das Feld auf "ja" gestellt wird, werden anderswo Vorzeichen umgedreht), aber hier ein paar Grundzugriffe:

Code: Alles auswählen

SUB Vorzeichenwechsel
REM Zuerst die Variablen deklarieren
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
DIM oFeld AS OBJECT
DIM oFeld1 AS OBJECT
oDoc = thisComponent
oDrawpage = oDoc.drawpage
oForm = oDrawpage.forms.getByName("MainForm") ' geht davon aus, dass Dein Formular über den Namen im Formularnavigator angezeigt wird
oFeld = oForm.getByName("bool") ' Das Feld liegt in dem oben genannten Formular und hat den entsprechenden Namen im Formularnavigator
IF oFeld.getCurrentValue = "true" THEN
oFeld1 = oForm.getByName("ErsteszuaenderndesFeld") ' Feldbezeichnung: siehe oben
oFeld1.BoundField.updateDouble(oFeld1.getCurrentValue * -1)
END IF
END SUB
Das Ganze kannst Du noch verfeinern, wenn z.B. das Makro sowieso durch eine Änderung am boolschen Feld direkt ausgelöst werden soll. Dann geht der Zugriff auf das Feld entsprechend einfacher.
Auch kannst Du entsprechend betroffene Felder für eine Änderung als "Tag" (Zusatzinformation) in die Feldeigenschaften schreiben und durch ein Makro auslesen.
Details zu Makros in Base kannst Du auch aus dem Handbuch entnehmen.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

surferchen
Beiträge: 2
Registriert: So 27. Okt 2013, 19:44

Re: Starthilfe für Formular-Makro erbeten

Beitrag von surferchen » Di 29. Okt 2013, 08:49

Hallo Robert,

vielen Dank, dass ist 'ne gute Grundlage zum spielen. Mal sehen, wie weit ich komme...

Alles Beste,
Surferchen


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten