❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
Unterstützen Sie das LibreOffice-Forum und helfen Sie uns, unser Ziel für 2025 zu erreichen!

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱


❤️ 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. 🤗

Aufruf eines Auftragsformulars vom Unterformular eines Adressformulars: Behandlung eines leeren Unterformulars

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Freischreiber
* LO-Experte *
Beiträge: 837
Registriert: Fr 28. Mär 2014, 10:41

Aufruf eines Auftragsformulars vom Unterformular eines Adressformulars: Behandlung eines leeren Unterformulars

Beitrag von Freischreiber » Mo 31. Aug 2015, 18:28

Hallo,

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
Soweit, so gut. Was nicht geht, ist das Abfangen einer leeren Auftragstabelle. Wenn es zu einer Adresse noch gar keinen Auftrag gibt, will ich in der Adresstabelle den Status von "Dritter" auf "Kunde" stellen und dann zur Neuanlage eines Auftrags springen.

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
kommt das Makro erst gar nicht.

Gruß
Freischreiber
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de

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

Re: Aufruf eines Auftragsformulars vom Unterformular eines Adressformulars: Behandlung eines leeren Unterformulars

Beitrag von F3K Total » Mo 31. Aug 2015, 21:59

Hi,
versuch mal

Code: Alles auswählen

if oformAuftraege.RowCount = 0 Then
    MSGBOX "Noch keine Zeile im Unterformular vorhanden"
Endif
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

Freischreiber
* LO-Experte *
Beiträge: 837
Registriert: Fr 28. Mär 2014, 10:41

Re: Aufruf eines Auftragsformulars vom Unterformular eines Adressformulars: Behandlung eines leeren Unterformulars

Beitrag von Freischreiber » Di 1. Sep 2015, 08:00

Bingo, das wars...

Danke!

Gruß
Freischreiber
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de


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