in meinem Adressformular gibt es ein Unterformular mit Aufträgen, die zur Adresse gehören (sichtbar als Tabellenkontrollfeld).
Von dort aus kann ich zu einem markierten Auftrag "springen", also das passende Auftragsformular öffnen mit diesem Makro:
Code: Alles auswählen
Sub Auftragsformular 'Ruft in Adressblatt zu dem markierten Auftrag das Auftragsformular auf
oformAuftraege = thisComponent.drawpage.forms.MainForm.UnterformularAuftraege
intColumn = oFormAuftraege.findcolumn("AuftragID") 'inColumn wird dann überprüft, ob größer Null, ob also vorhanden
if intColumn = 0 then goto Neuanlage
msgbox intColumn
stAuftragID = oformAuftraege.getString(oformAuftraege.findcolumn("AuftragID"))
'stAuftragID = oFormAuftraege.getstring(inColumn)
IF stAuftragID = "" then goto Neuanlage
oformAuftrag = ThisDatabaseDocument.getformdocuments.GetByName("f-Auftrag")
oformAuftrag.open
oformAuftrag = oformAuftrag.Component.drawpage.forms(0)
oformAuftrag.Filter = "ID = '"+stAuftragID+"'"
' oFormAuftrag.ApplyFilter = TRUE (geht hier ohne)
oFormAuftrag.reload
Neuanlage: ... (kommt noch)
End Sub
Ich habe versucht, die Hinweise aus http://www.libreoffice-forum.de/viewtop ... =20#p33009 umzusetzen, aber das Makro steigt aus mit "Message: Der Cursor zeigt vor die erste bzw. hinter die letzte Zeile.." und markiert ist die Zeile mit "stAuftragID = ...".
Die msgbox vorher zeigt "1", die Spalte existiert also, klar. Aber wie kann ich den Fall abfangen, daß da kein Eintrag in der Tabelle ist? Bis zur Zeile
Code: Alles auswählen
IF stAuftragID = "" then goto Neuanlage
Gruß
Freischreiber