🙏 Helfen Sie 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. 🤗

Tabellenkontrollfeld programmieren

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Helles58
Beiträge: 115
Registriert: Mo 17. Jul 2017, 19:51

Tabellenkontrollfeld programmieren

Beitrag von Helles58 » Mi 19. Apr 2023, 20:05

Hallo zusammen,

ich hänge hier gerade an einem Tabellenkontrollfeld.
Wie werden diese Dinger per Makro angesprochen wenn ich Werte (Hauptformular oder Unterformular) lesen oder schreiben will.
Danke schon mal für eure Bemühungen und Hilfe.

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Tabellenkontrollfeld programmieren

Beitrag von F3K Total » Mi 19. Apr 2023, 21:24

Moin,
geht bestimmt, die Spalten kommen nach dem Tabellenkontrollfeld.
Einfacher ist es, das strukturelle Formular zu lesen oder zu beschreiben.
Z.B.:

Code: Alles auswählen

oForm = thisComponent.Drawpage.Forms.Mainform
'Auslesen:
NID=oForm.Columns.ID.getint
'Beschreiben
oForm.Columns.ID.updateint(NID)
oForm.updaterow'bestehende Zeile speichern
Es gibt noch viele Befehle um in dem Formular zu navigieren, etwa

Code: Alles auswählen

oForm.first
oForm.last
oForm.absolute(12)'12te Zeile ansteuern
oForm.MovetoinsertRow'neue Zeile anlegen, dann mit .updateint(), .updatestring() usw. Spalten beschreiben
oForm.insertRow'neue Zeile einfügen
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

Helles58
Beiträge: 115
Registriert: Mo 17. Jul 2017, 19:51

Re: Tabellenkontrollfeld programmieren

Beitrag von Helles58 » Do 20. Apr 2023, 17:57

Hallo,

Danke für deine Hilfe.
Das werd ich jetzt mal probieren.
Wie wird ein Markierfeld behandelt.
Normal kann ich den Haken ja mit "State" setzen/Rücksetzen. - z. Bsp. oFeld.State = 1
Wie macht man das aber im Tabellenkontrollfeld?

Gruß Helles58

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Tabellenkontrollfeld programmieren

Beitrag von F3K Total » Do 20. Apr 2023, 21:17

Helles58,
mit meiner oben beschriebenen Methode behandelt man nicht das Markierfeld, sondern die Tabellenspalte, die vom Markierfeld angezeigt wird.
Darum ist es egal, ob das Markierfeld einzeln ist oder sich in einem Tabellenkontrollfeld befindet.
Anbei eine Beispieldatei, die beide Möglichkeiten demonstriert, mit folgenden Makros:

Code: Alles auswählen

Sub swap_Status_form'Makro kürzer und einfacher
    oForm = ThisComponent.Drawpage.Forms.MainForm
    bStatus = oform.Columns.STATUS.getboolean
    oform.Columns.STATUS.updateboolean(not bStatus)
    oform.updateRow
End Sub

Sub swap_Status_grid'Makro länger und komplizierter
    oForm = ThisComponent.Drawpage.Forms.MainForm
    oMainForm_Grid = oForm.MainForm_Grid
    oColumnStatus = oMainForm_Grid.STATUS
    nState = oColumnStatus.State
    if nState = 0 then
        oColumnStatus.State = 1
    else
        oColumnStatus.State = 0
    endif
    oController = ThisComponent.CurrentController
    oMainForm_GridControl = oController.getControl(oMainForm_Grid)
    oMainForm_GridControl.commit
    oform.updateRow
End Sub

Sub Neue_Zeile_einfuegen
    sText = inputbox("Text eingeben","Neue Zeile",)
    oForm = ThisComponent.Drawpage.Forms.MainForm
    oForm.movetoinsertrow
    oform.Columns.TEXT.updatestring(sText)
    oForm.insertrow
end sub
Gruß R
Dateianhänge
Checkbox.zip
nur entpacken
(10.7 KiB) 101-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO

Helles58
Beiträge: 115
Registriert: Mo 17. Jul 2017, 19:51

Re: Tabellenkontrollfeld programmieren

Beitrag von Helles58 » Fr 21. Apr 2023, 16:56

Hallo F3K Total,

danke für die Hilfe.
Damit werde ich zurecht kommen.
Wünsche dir ein schönes Wochenende

Gruß Helles58


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