Seite 1 von 1
Ausblenden von Elementen wenn dbMemo Feld leer
Verfasst: Donnerstag 22. Dezember 2022, 08:18
von bra
Hi zusammen,
ich habe einen Subreport der aus einem Label und einem dbMemo Feld (DataPipeline: SchuelerlaufbahnBem / Datafield: LES) besteht.
Jetzt möchte ich das Label (oder den ganzen Subreport) nicht mitdrucken wenn in dem Memofeld keine Daten vorhanden sind.
Wo und wie kann ich das Memofeld auf Inhalt abfragen? Das "Ausschalten" des Labels kann ich dann ja über visible erledigen.
BTW: gibt es irgendwo eine Übersicht über die Methoden / Funktionen des Reportgenerators?
Gruß und schon mal Danke
Matthias
------------------------------------------------------------------------------------------------------------------------
Ausprobiert habe ich:
l_AuE.Visible := Not IstLeer(SchuelerlaufbahnBem;'LELS');
und
l_AuE.Visible:=true;
If IstLeer(SchuelerLaufbahnBem;'LELS') then l_AuE.visible:=false;
Die Fehlermeldung ist:
Fehler: dbm_Bem_LELSOnGetMemo, Zeile 5: Erwartet 'or' oder 'xor,' stattdessen wurde ';' gefunden.
Re: Ausblenden von Elementen wenn dbMemo Feld leer
Verfasst: Donnerstag 22. Dezember 2022, 08:34
von A. Schüller
Hallo,
ich schaue oft hier:
https://wiki.svws.nrw.de/mediawiki/inde ... Funktionen
oder direkt im Bearbeitungsmodus vom Report:
Ausblenden von Elementen wenn dbMemo Feld leer
Verfasst: Donnerstag 22. Dezember 2022, 09:13
von bra
So, wenn man die Brille richtig aufsetzt, kommt man auch zur Lösung.
Im Funktionsaufruf sollte man kein Semikolon setzen!
@Anne: Danke für den Tipp
Gruß Matthias
Re: Ausblenden von Elementen wenn dbMemo Feld leer
Verfasst: Dienstag 3. Januar 2023, 12:57
von bra
Anscheinend war die Lösung doch noch nicht so einfach. Manchmal verschwinden die - wirklich - leeren Einträge manchmal nicht.
Ich habe die Abfrage in "OnGetMemo" gebaut.
....
Code: Alles auswählen
begin
l_LELS.visible := not IstLeer(SchuelerLaufbahnBem,'LELS');
end;
Eigentlich sollte das Label "l_LELS" dann doch immerbverschwinden wenn das Memo leer ist oder?
Gruß und ein frohes neues Jahr
Matthias
Re: Ausblenden von Elementen wenn dbMemo Feld leer
Verfasst: Dienstag 3. Januar 2023, 15:03
von D.Jakel
Guten Tag, vielleicht liegt es daran, dass es verschiedene "leer" gibt, nämlich "unbenutzt" und "geleert". Das Problem trat auch bei der Masernimpfung auf:
Re: Ausblenden von Elementen wenn dbMemo Feld leer
Verfasst: Dienstag 3. Januar 2023, 22:06
von Christoph Sprung
Guten Tag,
könnten Sie den fraglichen Report einmal hier einstellen?
Re: Ausblenden von Elementen wenn dbMemo Feld leer
Verfasst: Dienstag 3. Januar 2023, 22:57
von D.Jakel
Im Fall "SchuelerLaufbahnBem is Null" würde die Abfrage "true" liefern, das Feld wäre zwar leer, aber nicht geleert, was Istleer prüft und '' (Doppelhochkommata) entspräche. Das müsste also wohl noch mit eingebaut werden.
Re: Ausblenden von Elementen wenn dbMemo Feld leer
Verfasst: Samstag 7. Januar 2023, 20:05
von A.Löser
Guten Tag,
im Anhang ist ein kleiner Report zu Testzwecken.
Darin werden in DBMemo1 die Bemerkungen (Individual I) ausgebgeben und das Labelfeld beinhaltet nur den Text Label1;
Wenn das Memofeld leer ist, werden Memofeld und Label1 nicht angezeigt.
Die Sichtbarkeit wird über die Zeilenzahl im Memo1 gesteuert.
Man kann auch die beiden Elemente DBMemo1 und Label1 in eine Region setzen, und diese dann
sichtbar schalten in Abhägigkeit von der Zeilenzahl im DBMemo1. Vor allem, wenn noch mehr Elemente
ein/und ausgeblendet werden sollen, ist die Region eine elegante Lösung.
Viellleich hilft dieser Lösungsansatz.
Procedure DetailBeforePrint,
var x:integer;
begin
x:=DBMemo1.lines.count;
dbMemo1.visible:=x>0;
label1.visible:=x>0;
end;
Re: Ausblenden von Elementen wenn dbMemo Feld leer
Verfasst: Montag 9. Januar 2023, 08:32
von Raffenberg
Sie müssen den Befehl unter Detail.BeforePrint setzen. Trennen Sie dabei in den Klammern mit Komma:
Code: Alles auswählen
l_AuE.Visible := Not IstLeer(SchuelerlaufbahnBem,'LELS');
Dabei werden die Felder jedoch nur ausgeblendet. Die Reportzeilen rücken nicht zusammen. Hierfür würde ich Überschrift und Memofeld in eine Region setzen und diese ausblenden.
Re: Ausblenden von Elementen wenn dbMemo Feld leer
Verfasst: Donnerstag 12. Januar 2023, 12:03
von bra
@Raffenberg
genau so habe ich es gemacht. Ich habe das DBMemo mit dem Label in einen Subreport gepackt und kann ihn (den subreport) nun mit der Abfrage ausblenden. Danke an alle!