7. November 2006 19:48
@Marc:
dann werden aber auch die Texte mit ausgedruckt, die als Autotext von einem nicht gelieferten Artikel erzeugt wurden.
Ich habe das Problem auch schon mal gehabt und die Lösung ist etwas aufwendiger....
ich such's mal raus....
so, hier ist die Lösung:
Im Requestform habe ich eine Checkbox mit Namen "Lieferzeilen mit Menge 0 drucken" eingefügt, die Source Expression zeigt auf die neue boolsche Variable
Qty0Lines.
Ausserdem habe ich noch eine Integervariable HiddenLine angelegt.
Im OnAfterGetRecord-Trigger des DataItems "Sales Shipment Line" habe ich folgende Änderungen vorgenommen:
Gleich zu Beginn folgende Zeile eingefügt, um bei der nächsten Zeile, die keine Textzeile ist, die Variable HiddenLine zurückzusetzen:
- Code:
IF Type <> 0 THEN HiddenLine:=-1;
-1 deswegen, weil eine solche Zeilennummer nicht vorkommt.
weiter unten, wo die Anzahl Lieferpositionen gezählt wird:
- Code:
IF (Type <>Type::" ") AND (Quantity<>0) THEN LieferPos+=1
//MSm Change for Qty0Lines Start
ELSE BEGIN
IF (Type <>Type::" ") AND NOT Qty0Lines THEN
HiddenLine:="Sales Shipment Line"."Line No.";
END
//MSm Change for Qty0Lines End
;
damit setze ich Hiddenline auf die aktuelle Zeilennummer, wenn es eine Zeile mit Liefermenge 0 ist und das Häkchen auf der Requestform
nicht gesetzt ist.
Achso, ich seh gerade, das Zählen der Lieferpositionen ist auch kein Standard (hätte mir an der deutschen Variable aber auffallen sollen
). Diese Zeilen hatte ich nach den Setrange Zeilen für die Dokumentdimensionen eingefügt.
Im OnPreSection-Trigger der Section, die die reinen Textzeilen ausdruckt:
- Code:
CurrReport.SHOWOUTPUT((Type = 0) AND ("Attached to Line No."<>HiddenLine));
Das sorgt dafür, dass Textzeilen, die zu einer versteckten Zeile gehören, nicht gedruckt werden.
In den Sections, die die Daten aller anderen Zeilen ausgeben, habe ich die Folgende Bedingung in den vorhandenen Showoutput hinzugefügt:
- Code:
AND ("Line No."<> HiddenLine)
das verhindert den Ausdruck der versteckten Zeile selbst.
Zuletzt geändert von Michael Schumacher am 7. November 2006 20:44, insgesamt 1-mal geändert.