🍀 Das LibreOffice Forum braucht HEUTE Ihre Hilfe! 🍀
❤️ Spenden Sie jetzt und sichern Sie die Zukunft unseres LibreOffice-Forums ❤️
Ihre Spende hilft, die Community offen, werbefrei (bei Registrierung) und lebendig zu halten. Vielen lieben Dank!

🙏 DANKE >> << DANKE 🙏

>> Das LibreOffice-Forum lebt von Ihnen – und von vielen Experten, die freiwillig und kostenlos ihr Wissen teilen.<<
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: 866
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

:idea: Achte auf die dritte Ziffer: Libre Office 25.2.0.3 = Ärger ist vorprogrammiert.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan
Freischreiber nutzt seit 1/2025 LibreOffice 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.

F3K Total
* LO-Experte *
Beiträge: 2515
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: 866
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

:idea: Achte auf die dritte Ziffer: Libre Office 25.2.0.3 = Ärger ist vorprogrammiert.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan
Freischreiber nutzt seit 1/2025 LibreOffice 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.


An alle, die das LibreOffice-Forum gern nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das laufende.
Einfach per Kreditkarte oder PayPal. Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.



❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten