Hallo
da kommt auch schon die nächste Frage an das Forum
Die Situation
Ich habe zwei Formulare (4_Ticket_Eingabe und 5_UTicket_Eingabe), die dazu dienen für einen Auftrag (oder Ticket) ein Unterauftrag (oderUnterticket) einzugeben. Es gibt zur Identifikation der Unteraufträge zwei Felder, die zwischen den beiden Formularen identisch sein müssen. 1. Die Kunden_ID (Knd_ID) und 2. die Ticket_Nr.
Um Tipp- oder sonstige Fehler zu vermeiden, möchte ich diese Werte beim Aufruf des 2. Formulars (5_UTicket_Eingabe) automatisch füllen.
Also Werte aus den Feldern des 1. Formulars auslesen, 2. Formular öffnen und dort in die vorgesehenen Felder eintragen.
Lösungsversuch
Code: Alles auswählen
oDoc = ThisComponent
oForm = ThisComponent.drawpage.forms.getbyindex(0) 'Noch in der Ticket_Eingabe
oFeld = oForm.getByName("Kunden_ID") 'Das Feld Kunden_ID auswählen
sKunde = oFeld.getCurrentValue 'Inhalt von Kunden_ID der Variablen sKunde zuordnen
MsgBox "Daten gleich " + sKunde 'Kontrolle durch MsgBox
oFeld2 = oForm.getByName("txtTicket_Nr") 'Das Feld Ticket_Nr auswählen
sTicket = oFeld2.getCurrentValue 'Inhalt von Ticket_Nr der Variablen sTicket zuordnen
MsgBox "Daten gleich" + sTicket 'Kontrolle durch MsgBox
ThisDatabaseDocument.FormDocuments.getByName("5_UTicket_Eingabe").open 'Formular 5_UTicket_Eingabe öffnen
oDoc2 = ThisComponent
oForm2 = ThisComponent.drawpage.forms.getbyindex(0)
aufnahmeFeld = "UKnd_ID" 'Der Variablen aufnahmeFeld den Formularfeldnamen UKnd_ID zuweisen
MsgBox "Daten gleich" + aufnahmeFeld 'Kontrolle durch MsgBox
oForm2.getByName(aufnahmeFeld).text = sKunde 'in das Feld aufnahmeFeld (UKnd_ID) den Wert eintragen
'oForm2.getByName(aufnahmeFeld).value = sKunde 'in das Feld aufnahmeFeld (UKnd_ID) den Wert eintragen
oForm2.getByName(aufnahmeFeld).commit(true)'Ticket_Nr festschreiben
Frage
Dieser Code funktioniert bis zur Zeile
----> oForm2.getByName(aufnahmeFeld).text = sKunde 'in das Feld aufnahmeFeld (UKnd_ID) den Wert eintragen <-----
In dieser Zeile erscheint die Fehlermeldung:
BASIC-Laufzeitfehler
Es ist eine Exception aufgetreten.
Type:com.sun.star.container.NoSuchElementException
Message:.
Das Feld "UKnd_ID" ist sicher in dem Formular "5_UTicket_Eingabe" vorhanden und ist auch genau so benannt.
Was mache ich falsch?
Meine Suche nach Lösungen hat bis jetzt zu keinem wirklichen Ergebnis geführt, so dass ich mit meiner Frage hier gelandet bin.
Und ich bin aufgrund der guten Erfahrungen gerne hier im Forum - muss ja mal gesagt werden.
Danke im Voraus für die Mühe.
Viele Grüße