Ausblenden von Elementen wenn dbMemo Feld leer
Moderatoren: Raffenberg, A. Schüller, Pfotenhauer
Ausblenden von Elementen wenn dbMemo Feld leer
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.
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.
Zuletzt geändert von bra am Donnerstag 22. Dezember 2022, 08:55, insgesamt 1-mal geändert.
- SchildZentral
-
- Beiträge: 971
- Registriert: Mittwoch 10. Februar 2021, 21:30
- Schulform: Gymnasium
Re: Ausblenden von Elementen wenn dbMemo Feld leer
Hallo,
ich schaue oft hier: https://wiki.svws.nrw.de/mediawiki/inde ... Funktionen
oder direkt im Bearbeitungsmodus vom Report:
ich schaue oft hier: https://wiki.svws.nrw.de/mediawiki/inde ... Funktionen
oder direkt im Bearbeitungsmodus vom Report:
- Dateianhänge
-
- 2022-12-22_083051.png (64.6 KiB) 682 mal betrachtet
Mit freundlichen Grüßen
Anne Schüller
Anne Schüller
Ausblenden von Elementen wenn dbMemo Feld leer
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
Im Funktionsaufruf sollte man kein Semikolon setzen!
@Anne: Danke für den Tipp
Gruß Matthias
- SchildZentral
Re: Ausblenden von Elementen wenn dbMemo Feld leer
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.
....
Eigentlich sollte das Label "l_LELS" dann doch immerbverschwinden wenn das Memo leer ist oder?
Gruß und ein frohes neues Jahr
Matthias
Ich habe die Abfrage in "OnGetMemo" gebaut.
....
Code: Alles auswählen
begin
l_LELS.visible := not IstLeer(SchuelerLaufbahnBem,'LELS');
end;
Gruß und ein frohes neues Jahr
Matthias
- SchildZentral
Re: Ausblenden von Elementen wenn dbMemo Feld leer
Guten Tag, vielleicht liegt es daran, dass es verschiedene "leer" gibt, nämlich "unbenutzt" und "geleert". Das Problem trat auch bei der Masernimpfung auf:
mfG, D.Jakel
-
- Beiträge: 415
- Registriert: Montag 3. Dezember 2018, 18:43
- Schulform: WbK (a. D.)
Re: Ausblenden von Elementen wenn dbMemo Feld leer
Guten Tag,
könnten Sie den fraglichen Report einmal hier einstellen?
könnten Sie den fraglichen Report einmal hier einstellen?
Grüße aus Bochum
Christoph Sprung
Christoph Sprung
Re: Ausblenden von Elementen wenn dbMemo Feld leer
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.
mfG, D.Jakel
Re: Ausblenden von Elementen wenn dbMemo Feld leer
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;
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;
- Dateianhänge
-
- Memo-Test.rtm
- (7.78 KiB) 26-mal heruntergeladen
Mit freundlichen Grüßen
A. Löser
A. Löser
- Raffenberg
- Beiträge: 2607
- Registriert: Dienstag 25. September 2018, 15:22
- Schulform: Gymnasium
- Kontaktdaten:
Re: Ausblenden von Elementen wenn dbMemo Feld leer
Sie müssen den Befehl unter Detail.BeforePrint setzen. Trennen Sie dabei in den Klammern mit Komma:
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.
Code: Alles auswählen
l_AuE.Visible := Not IstLeer(SchuelerlaufbahnBem,'LELS');
Mit freundlichen Grüßen
Jens Raffenberg
Jens Raffenberg
Re: Ausblenden von Elementen wenn dbMemo Feld leer
@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!
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!
- SchildZentral