[Gelöst] Leere Textbausteinzeile nicht andrucken

9. Februar 2011 12:38

Moin!
Ich möchte in einem Report die Textbausteine ausgeben. Sie bestehen manchmal aus mehreren Zeilen und manchmal sind Zeilen leer. Die will ich nicht andrucken. Wie mache ich das?
Ich habe versucht, im CA/L Code zu programmieren. Wie aber greife ich im Code auf die gerade benutzte Textbausteinzeile zu?
Ich hoffe, Ihr habt da eine Idee :-)
Maike

Re: Leere Textbausteinzeile nicht andrucken

9. Februar 2011 12:49

Was für ein Beleg ist das denn? So wie die Auftragsbestätigung, in der die Textbausteine schon vor dem Druck als Textzeilen stehen, oder willst du sie erst während des Drucks auslesen und drucken?

Re: Leere Textbausteinzeile nicht andrucken

9. Februar 2011 13:05

Maike hat geschrieben:Wie aber greife ich im Code auf die gerade benutzte Textbausteinzeile zu?

Die Textbausteinzeile ist als DataItem angelegt. Du kannst im dazu gehörigen OnAfterGetRecord-Trigger auf den grade durchlaufenden Datensatz zugreifen.
Schau mal hier: viewtopic.php?f=19&t=10806#Trigger

Re: Leere Textbausteinzeile nicht andrucken

10. Februar 2011 09:30

Hallo,Ihr!
Es handelt sich um den Ausdruck einer Stückliste. Sie greift auf Artikel zu, bei denen jeweils Textbausteine hinterlegt sind.
Natalie,
Ich kann in der Tat so, wie Du es beschreibst, auf das Feld zugreifen, das gerade durchlaufen wird. Aber wie greife ich auf die jeweilige [url]Zeile[/url] zu, die in den Textbausteinen durchlaufen wird. Zur Zeit schreibe ich in das DataItem (Textbausteine):
Code:

Extended Text Line - OnPreDataItem()

SETFILTER("No.","BillOfMaterials"."No.");


Extended Text Line - OnAfterGetRecord()

IF Text<>''
THEN EmptyLine:=1
ELSE EmptyLine:=0;



Und in den Sections in der jeweiligen Textbausteinzeile (Body):
Code:

        IF (ExtTextLines) AND (EmptyLine=1)
        THEN
        CurrReport.SHOWOUTPUT(TRUE)
        ELSE CurrReport.SHOWOUTPUT(FALSE);


Jetzt druckt er keinen Textbaustein an.
Gruß, Maike

Re: Leere Textbausteinzeile nicht andrucken

10. Februar 2011 09:34

Hallo,

warum definierst du nicht einfach in den Properties der Textbausteinzeilen ("Extended Text Lines") einen Filter auf "Text <> '' " ?

Gruß, Fiddi

Re: Leere Textbausteinzeile nicht andrucken

10. Februar 2011 09:51

Bei meinen Anwendern hier weiß man nie genau, ob sie eine leere Zeile nur mit einem oder mehreren Leerzeichen oder einer tatsächlich leeren Zeile hinbekommen haben. Deswegen nehme ich in solchen Fällen immer
Code:
if delchr(Text,'=',' ')='' then CurrReport.Skip;

Re: Leere Textbausteinzeile nicht andrucken

10. Februar 2011 09:54

Liebe Leute!
Der oben genannte Code führt DOCH zum Ergebnis! Er kann also als Vorlage für ähnliche Probleme dienen!
Vielen Dank!
Maike

Re: Leere Textbausteinzeile nicht andrucken

10. Februar 2011 10:02

Das hat ja keiner bestritten :) Aber er ist umständlich.