[Gelöst] CC: Nullrechnungen nicht drucken

27. Juli 2015 11:31

Hallo zusammen,

ich habe mir eine Funktion mit folgendem Code gebastelt, den ich unserem Sales Invoice Report hinzugefügt habe:

Code:
SalesInvoiceLine.RESET;
SalesInvoiceLine.SETRANGE("Document No.",DocumentNo);
AmountinclVAT := 0;
IF SalesInvoiceLine.FINDSET THEN BEGIN
  REPEAT
    AmountinclVAT += SalesInvoiceLine."Amount Including VAT";
  UNTIL SalesInvoiceLine.NEXT = 0;
  IF AmountinclVAT = 0 THEN BEGIN
    CurrReport.SKIP;
  END;
END;


Unser Vertrieb filtert in dem Report alle gebuchten Verkaufsrechnungen auf "alle" und Anzahl gedruckt = 0.

Wenn nun Rechnungen mit Null-Beträgen vorhanden sind, werden diese übergangen.

Nun soll es aber so sein, dass man diese Rechnungen trotzdem noch einzeln anzeigen lassen und drucken kann.

Nur wenn man alle druckt, sollen die Null-Rechnungen nicht dabei sein.

Wie könnte ich das wohl anpassen?
Zuletzt geändert von NIQ am 29. Juli 2015 08:52, insgesamt 1-mal geändert.

Re: CC: Nullrechnungen nicht drucken

27. Juli 2015 11:47

Du kannst z.B. im OnPreDataItem des Sales Invoice Headers ein COUNT absetzen und dir die Zahl in einer Variable merken.
Deinen o.g. Code nur dann ausführen, wenn diese Zahl = 1 ist.

Übrigens, statt deiner REPEAT-Schleife kannst du auch im Sales Invoice Header einfach das FlowField "Amount Including VAT" abfragen (CALCFIELDS nicht vergessen) ;-)

Re: CC: Nullrechnungen nicht drucken

27. Juli 2015 12:03

Ich habe z.B. zehn Verkaufsrechnungen wovon eine einen Null-Betrag enthält.

Beim kompletten Rechnungsdruck soll diese nicht ausgedruckt werden.

Wenn man diese jedoch einzeln anzeigt, soll dies schon möglich sein.

ein COUNT absetzen und dir die Zahl in einer Variable merken


Wie meinst du das? Wie genau bekomme ich diese Trennung hin?

statt deiner REPEAT-Schleife kannst du auch im Sales Invoice Header einfach das FlowField "Amount Including VAT" abfragen

Stimmt! :wink:

Re: CC: Nullrechnungen nicht drucken

27. Juli 2015 12:44

NIQ hat geschrieben:Wie meinst du das? Wie genau bekomme ich diese Trennung hin?

Code:
DeineAnzahlVariable = COUNT;

Re: CC: Nullrechnungen nicht drucken

27. Juli 2015 13:17

Die Variable habe ich angelegt.

Deinen o.g. Code nur dann ausführen, wenn diese Zahl = 1 ist.

Verstehe das Prinzip nicht so ganz. :-?

Ich müsste doch noch einen Filter setzen, bei dem "Sales Invoice Header"."No." = VGR15.* und "Sales Invoice Header"."No. Printed" = 0 ist, oder?

Nur dann sollen alle Rechnungen gedruckt werden...

Re: CC: Nullrechnungen nicht drucken

27. Juli 2015 13:22

NIQ hat geschrieben:Ich müsste doch noch einen Filter setzen, bei dem "Sales Invoice Header"."No." = VGR15.* und

Der Filter wird vom Benutzer gesetzt, indem er den Bericht für genau einen Rechnungsbeleg aufruft --> Filter auf Nr. ist gesetzt.

Das COUNT berücksichtigt alle vom Benutzer gesetzten Filter. Liefert COUNT also 1 zurück, wurde *wahrscheinlich* der Belegfilter entsprechend gesetzt und der Bericht soll den Inhalt dieser Rechnung auch dann ausgeben, wenn der Betrag 0 ist.

Re: CC: Nullrechnungen nicht drucken

27. Juli 2015 13:31

Der Filter wird vom Benutzer gesetzt, indem er den Bericht für genau einen Rechnungsbeleg aufruft --> Filter auf Nr. ist gesetzt.


Unser Vertrieb filtert generell immer auf alle gebuchten Verkaufsrechnungen aus dem aktuellen Jahr (VGR15.*), die noch nicht gedruckt wurden.

Wenn mal nur eine bestimmte Rechnung angezeigt werden soll, wird natürlich nur auf die entsprechende Nr. gefiltert.

Mir ist noch nicht ganz klar, was ich beim COUNT genau machen soll. :-?

Ich muss doch bestimmt auch einen Filter setzen, damit er nur druckt wenn die Bedingungen erfüllt sind...

Re: CC: Nullrechnungen nicht drucken

28. Juli 2015 09:59

Hi,

also ich würde mir eine neue globale Variable, Typ Boolean, "NullRechnungenDrucken" erstellen.
Die variable zeigst du auf der RequestForm an. Am besten setzt du die Variable im OnInit Report immer auf False damit die nicht versehentlich auf TRUE steht.

Deine Programmierung führst du dann nur aus, wenn der Haken nicht gesetzt ist. Möchte ein Anwender explizit eine Null-Rechnung drucken, kann er den Haken setzen und die Rechnung wird gedruckt.

Re: CC: Nullrechnungen nicht drucken

28. Juli 2015 10:53

Hi,

gute Idee! Das werde ich mal probieren...

Re: CC: Nullrechnungen nicht drucken

28. Juli 2015 12:34

So funktioniert es bis jetzt. Oder lässt sich der Code noch optimieren?

Code:
IF NullRechnungenDrucken = FALSE THEN BEGIN
  SalesInvoiceLine.RESET;
  SalesInvoiceLine.SETRANGE("Document No.",DocumentNo);
  AmountinclVAT := 0;
   IF SalesInvoiceLine.FINDSET THEN BEGIN
   REPEAT
    AmountinclVAT += SalesInvoiceLine."Amount Including VAT";
    UNTIL SalesInvoiceLine.NEXT = 0;
    IF AmountinclVAT = 0 THEN BEGIN
    CurrReport.SKIP;
    END;
   END;
END
ELSE NullRechnungenDrucken := TRUE;

Re: CC: Nullrechnungen nicht drucken

28. Juli 2015 12:44

NIQ hat geschrieben:Oder lässt sich der Code noch optimieren?

NIQ hat geschrieben:
Natalie hat geschrieben:statt deiner REPEAT-Schleife kannst du auch im Sales Invoice Header einfach das FlowField "Amount Including VAT" abfragen
Stimmt!

Re: CC: Nullrechnungen nicht drucken

29. Juli 2015 07:54

Am einfachsten wäre es aber vielleicht trotzdem gewesen, per Hand auf Betrag > 0 zu filtern :wink:

Re: CC: Nullrechnungen nicht drucken

29. Juli 2015 08:52

Am einfachsten wäre es aber vielleicht trotzdem gewesen, per Hand auf Betrag > 0 zu filtern

Auch wahr. ;)

Danke euch!