Rechnungs Report packt Betrag auf 2. Seite

18. November 2009 14:53

Hey,

ich habe den normalen Rechnungsreport etwas an unsere Anforderungen angepasst.

Es gibt nun 4x Pageloop Header mit den Optionen PrintOnEveryPage = no und KeepWithNext = no
Dann gibt es 2x Pageloop Header mit den Optionen PrintOnEveryPage = yes und KeepWithNext = yes

Die Header werden richtig angedruckt. Dann kommen die Positionne der Sale Line. Und nach dem Ausgewiesenen Rabatt wird der Report dann abgeschnitten und der Footer auf die zweite Seite geschmissen.
Das passiert nach ca. 5 Positionen.

Die beiden Footer haben die Optionen: PlaceInBottom = yes keep withnext = yes

Und jedes Mal druckt der die Footer auf die zweite Seite.

(Zur Erklärung - Es wird immer nur einer der 4 Header angedruckt, dann einer der zwei weiteren header und jeweils jeh nach bedingung ein Footer)

Was mache ich falsch?

Re: Rechnungs Report packt Betrag auf 2. Seite

18. November 2009 15:02

Hallo tac0211,

ich vermute, dass du die Sections mit CurrReport.SHOWOUTPUT(DeineBedingung); (de-)aktivierst.
Leider hat NAV dabei ein kleines Rechenproblem und reserviert trotzdem einen Bruchteil des benötigten Platzes.
Wenn dies auf zahlreichen Sections (Header, TransHeader, GroupHeader, Body, Footer, ...) angewendet wird, summiert sich das Ganze und am Ende bekommt NAV ein Problem bei dem verbleibenden Platz für die Footer.

Lösung:
Anstatt einzelne Sections mit SHOWOUTPUT auszublenden, je Section ein untergeordnetes Ganzzahl (bzw. Integer) DataItem einfügen, welches (über DataItemTableView) nur einmal durchlaufen wird.
Nun kann man die Ausgabe der einzelnen Section dadurch unterdrücken, dass man das ganze DataItem mit SKIP bzw. BREAK abbricht.
Hierbei reserviert NAV keinen Platz auf dem Papier.

Re: Rechnungs Report packt Betrag auf 2. Seite

18. November 2009 15:20

uff..

vielen dank für die erklärung! genau dies wird es sein!

kannst du mir das mit dem "untergeoprdnete" ganzzahhl noch mal genau erklären?

Re: Rechnungs Report packt Betrag auf 2. Seite

18. November 2009 16:04

Hallo tac0211,

ich gehe mal davon aus, dass deine Header Section dem DataItem "PageLoop" zugeordnet ist.
Da alle anderen DataItems diesem DataItem untergeordnet sind, musst du direkt unterhalb von "PageLoop" ein Integer-DataItem einfügen, welches eine Ebene weiter nach rechts eingerückt ist, als das PageLoop-DataItem selbst.
Diesem DataItem musst du einen eindeutigen Namen geben, da du dieses Konstrukt mehrmals brauchst (nämlich genau so oft, wie du verschiedene Header Sections hast, die bedingt unterdrückt werden sollen).
In den Properties dieses DataItems definierst du nun den DataItemTableView: SORTING(Number) WHERE(Number=CONST(1))
Die Sortierung stellt sicher, dass das DataItem nicht auf der RequestForm angezeigt wird, und der Filter, dass es nur ein einziges mal durchlaufen wird.
Im Trigger OnPreDataItem prüfst du nun, ob eine Ausgabe erfolgen soll oder nicht:
Code:
IF DeineBedingung THEN
  CurrReport.BREAK;


Diesem DataItem fügst du eine Header Section hinzu (und löscht die automatisch angelegte Body Section).
In diese Header Section überträgst du alle Inhalte aus der ursprünglichen Section, welche du durch dieses DataItem ablösen möchtest.

Dieses ganze Prozedere wiederholst du für jede Section, welche du bedingt unterdrücken willst.

Re: Rechnungs Report packt Betrag auf 2. Seite

18. November 2009 16:16

hey,

du bist ja bombe!!! super und vielen dank! ich werde es gleich morgen früh ausprobieren und dann bescheit geben ob es geklappt hat!

dank dir :-)

hm.... ich habe es gerade schon verucht: kannst du dir erklären warum die ganzzahl header nun 2x angedruckt werden??

sorry ... es wird nur der erste ganzzahl header doppelt angedruckt!

Re: Rechnungs Report packt Betrag auf 2. Seite

19. November 2009 14:26

sorry,

ich bekomm es nicht hin! habe es genau so gemacht wie du es beschreibst. den header für die Version A der rechnung wird 2x angedruckt. gleichzeitig dann noch der header der version B allerdings nur 1x

echt komisch!