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

Felder in neu geöffnetem Formular ansprechen

Alles zur Programmierung im LibreOffice.
Antworten
Sild24
Beiträge: 4
Registriert: Mi 21. Feb 2024, 08:27

Felder in neu geöffnetem Formular ansprechen

Beitrag von Sild24 » Fr 23. Feb 2024, 23:56

Hallo!

Ich habe ein Hauptformular, in dem über einen Button ein neues Formular geöffnet wird. Im gleich Ablauf soll ein Wert in einem bestimmten Feld des neuen Formulars eingetragen werden. Der Name lautet "outKundenID"

Die Funktion oForm.getByName() greift aber auf die Namen des urspünglichen Formulars zu. Ich habe extra sogar oForm neu definiert nach dem Schließen des Hauptformulars. Wie kann ich die Felder des neuen ansprechen?

Hier der Code (Die Schleife dient der Suche nach dem Feld, nur initial per Index):

Code: Alles auswählen

SUB Formular_mit_ID (oEvent AS OBJECT)
	Dim oForm As Object
    Dim oSubform As Object
    DIM oControl AS Object
	DIM sFieldname AS String
	DIM sID AS String
	
	oForm = ThisComponent.Drawpage.Forms.GetByName("MainForm")
	' Zweites Subformular abrufen, das die Labelfelder enthält
    oSecondSubform = oForm.GetByName("formAuswahl")

	sFieldname = "KundenID"
	sID = oSecondSubform.getByName("outKundenID").Label
	
	aFormStart() = Split(thisComponent.Title, thisComponent.UntitledPrefix)
	stZiel = oEvent.Source.Model.Tag
		
	ThisDatabaseDocument.FormDocuments.getByName( Trim(stZiel) ).open
	ThisDatabaseDocument.FormDocuments.getByName( Trim(aFormStart(1)) ).close
	
	oForm = ThisComponent.Drawpage.Forms.GetByName("MainForm")
	sFieldname = "out" + sFieldname
	
	' Nach Textfeld mit Namen suchen
    For i = 0 to oForm.Count - 1
    	oControl = oForm.getbyindex(i)
    	If oControl.Name = sFieldname Then
    		MsgBox sIDFieldName & " gefunden mit Index i = " & i 'Fehlersuche
    		Exit For
    	End If
	Next
END SUB

Sild24
Beiträge: 4
Registriert: Mi 21. Feb 2024, 08:27

Re: Felder in neu geöffnetem Formular ansprechen

Beitrag von Sild24 » Sa 24. Feb 2024, 08:55

Hallo!

Mit frischem Kopf habe ich die Lösung dann doch gefunden.

Es braucht folgenden Aufruf in meinem Beispiel:

Code: Alles auswählen

...
onewdoc = ThisDatabaseDocument.FormDocuments.getByName( Trim(stZiel) ).open
onewForm = onewdoc.Drawpage.Forms.GetByName("MainForm")

...


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