Report mit optionalen Footern

16. September 2009 22:21

Hallo,
ich habe bereits ausgiebig getestet und versucht und bin nun mit meinem Latein am Ende. Vielleicht hat ja jemand hier im Forum eine Idee oder vielleicht sogar ja auch die Lösung meines Problems.

Ich habe ein Rechnungsformular mit NAV 4.02 entwickelt. Bei diesem Report habe ich drei Footer-sections. Eine, die nur am Ende einer jeden Rechnung gedruckt werden soll und zwei, die auf jeder Seite ausgegeben werden sollen. Von diesen beiden Sections, die auf jeder Seite gedruckt werden sollen, soll aber in Abhängigkeit der Daten nur entweder die erste oder die zweite gedruckt werden. Die Entscheidung, welche von den beiden gedruckt wird, habe ich über CurrReport.showoutput gelöst.
Wenn der Report so abläuft, wird jedoch die Section, die nur am Ende der Rechnung gedruckt werden soll zu früh angedruckt. Das heißt, ich habe zwischen der Section zum Ende der Rechnung ein paar Zentimeter Platz bis die Seitenende-Section gedruckt wird. Wenn ich nur eine Seiten-Ende-Section habe, werden die Section direkt hintereinander gedruckt.

Alle drei Section sind mit Place in Bottom auf Yes und Keep with next ist auf No gesetzt, bei der Section für das Ende der Rechnung ist Print on every Page auf no gesetzt, bei den Seitenende-Section natürlich auf Yes.

Ich habe die beiden Seitenende-Section definiert, weil eine Section mit einem Logo ausgestattet ist, die andere hingegen nicht. Aber eine Möglichkeit, das Image vor dem Drucken auf visible = no zu setzen, habe ich nicht gefunden.

Weiss jemand, wie ich das hinkriegen kann - oder vielleicht auch, wie ich das Image auf Visible = no setzen kann?

Danke im Voraus für Eure Bemühungen

Re: Report mit optionalen Footern

17. September 2009 08:33

Aus der Entfernung DEN Fehler zu erkennen, fällt mir persönlich schwer (deine Beschreibung hört sich so aber schlüssig an). Vielleicht hast du deine Footer auch nur in das falsche DataItem gesetzt.

Versuch doch mal Folgendes:
Belasse die ersten beiden Footer (die auf jeder Seite angedruckt werden sollen) wie sie sind. Erstelle für den dritten Footer ein neues DataItem (integer, nur ein Durchlauf) direkt unter dem aktuellen DataItem und verschieb deinen Footer zu dem Footer des neuen DataItems.

Ansonsten, wie du schon sagtest: Für die beiden ersten Footer muss gelten: PrintOnEveryPage = Yes und KeepWithNext = No.

Edit: Eher umgekehrt: Die beiden auf-jede-Seite-Footer gehören in ein überordnetes DataItem (siehe die PageLoop-Sections in den Standard-Reports). Dein dritter Footer bleibt wo er ist (siehe Standardreport 206, "Sales Invoice Line".Footer. Dieser Footer hat jedoch kein PlaceInButtom!!)

Re: Report mit optionalen Footern

17. September 2009 15:02

Hallo zusammen,

ich habe ein ähnliches Problem: und zwar habe ich Report 206 erweitert, hier gibt es auch zwei Sections die auf jeder
Seite ganz unten erscheinen sollen. die zwei Sections (welche gedruckt wird, wird über eine Setup Tabelle gesteuert)
sind auch auf jeder Seite zu sehen, nur wird enorm viel Platz hinter den
Sales Lines gelassen. Habe schon alle Kombinationen mit KeepWithNext probiert, ohne Erfolg.
Ist nur eine Sektion vorhanden, klappt es. Bei mir sind die 2 Sections Footer im Dataitem Sales Invoice Header.
Auch Natalies Tipp mit dem Page Loop DataItem hat nichts gebracht.
Hier wird zwar kein Platz mehr verschwendet, nur wird die jeweils eingestellte Sektion nur mehr einmal am Ende
des Dokuments gedruckt, bei mehreren Seiten ist dies natürlich nicht gut.

Gibt es da denn keine Standard Report, wo ein ähnliches Szenario zu finden ist?

Re: Report mit optionalen Footern

17. September 2009 15:09

Mein üblicher Tip: nur einen Footer verwenden, dessen Inhalt variabel gefüllt wird.

Re: Report mit optionalen Footern

17. September 2009 15:18

Hallo McClane. Danke für den Tip.
Ich habe blos ein Problem: der Inhalt des Footers ist ein mehrzeiliger AGB Text.
Ein Kunde will den mit der Schrift- und Textboxgröße, der zweite Kunde wieder anders.....
Dadurch haben diese unterschiedliche Sektionshöhen.
Wenn man eine Sektionshöhe zur Laufzeit ändern könnte, wäre deine Lösung genial.

Und ich möchte vermeiden, dass ich für jeden Kundne einen unterschiedlichen Report pfelgen muss

Re: Report mit optionalen Footern

17. September 2009 15:37

Gollum83 hat geschrieben:Ein Kunde will den mit der Schrift- und Textboxgröße, der zweite Kunde wieder anders.....

Und ich möchte vermeiden, dass ich für jeden Kundne einen unterschiedlichen Report pfelgen muss

Aber genau das musst du dann doch :?:

Gollum83 hat geschrieben:Dadurch haben diese unterschiedliche Sektionshöhen.

Das bremst mich etwas aus, stimmt :roll: .. unterscheiden sich die Sections denn so viel in der Höhe? Auf einen halben bis einen Zentimeter könnte man ja vielleicht noch verzichten.

Übrigens kann das einem jede Menge Arbeit abnehmen, den Footer variabel zu füllen, wenn er zB im Angebot, der AB, der Rechnung und dem Lieferschein gleich verwendet wird. Dann muss man nämlich nur ein Textarray oÄ ändern. Das kann man auch in irgendeine Einrichtung legen, so dass der Kunde das selbst machen kann (für seine Sommeraktion oder sonstwas).

Re: Report mit optionalen Footern

17. September 2009 15:56

Mein Gedanke war eigentlich, dass ich pro Kunde jeweils einen eigenen Footer habe, dafür aber nur einen Rechnungsreport.

Kunde1 hat für alle Textboxen in seiner Section eine FontSize von 9 und eine TextBox Höhe von 420.
Die Gesamthöhe der Section beträgt: 2940

Kunde2: FontSize5, Höhe TextBox: 250
Gesamthöhe:1750

--> 1,2 cm Unterschied

Naja, und wie die lieben Kunden so sind, bricht natürlich die Welt zusammen, wenn da irgendwas auf einmal
nicht mehr auf den Millimeter gleich ist, wie zuvor.

Beim Inhalt der Daten benutzen wir von haus aus ein Array.

Ich möchte einfach nur verstehen, warum sich die Report Runtime so seltsam verhält.
Für mich ist das ein Bug.....

Re: Report mit optionalen Footern

17. September 2009 16:10

Gollum83 hat geschrieben:Für mich ist das ein Bug.....

Lässt sich prächtig drum streiten. Jedenfalls weiß Nav ja zum Zeitpunkt vor dem Druck des ersten Footers noch nicht, wie viele Footer noch gedruckt werden sollen. Ergo wird geschaut, dass noch genug Platz für alle bleibt. Wenn dann einer davon nicht gedruckt wird, bleibt der Platz halt leer. Noch schlimmer kann es werden, wenn davor noch ein mehrzeiliger Body passen muss.

So habe ich mir das zumindest erklärt.

Re: Report mit optionalen Footern

17. September 2009 16:23

Das "nicht genau wissen, wieviel gedruckt wird" gilt nicht nur für die Footer sondern immer dann, wenn man CurrReport.Showoutput verwendet.

Wenn also das Vergeuden von Leerzeilen überhand nimmt, bleibt nichts anderes übrig, als den ganzen Report zu überprüfen und ggf. für einzelne Sections eigene DataItems anzulegen.
Dort kann man dann im OnPreDataItem entscheiden, ob gedruckt werden soll oder nicht. Das erkennt NAV dann schon, wenn die Daten für den Report aufbereitet werden und reserviert nicht den Platz, der dann evtl. doch nicht benötigt wird.

Re: Report mit optionalen Footern

17. September 2009 16:24

ok, verstehe
es bleibt also ein komplexes problem

Re: Report mit optionalen Footern

21. September 2009 10:43

McClane hat geschrieben:Mein üblicher Tip: nur einen Footer verwenden, dessen Inhalt variabel gefüllt wird.


würde ich sehr gerne so machen - wenn mir jemand verrät, wie ich ein Image im Footer auf visible = yes oder no (in Abhängigkeit von anderen Parametern) in der OnPreSection setzen kann

Re: Report mit optionalen Footern

21. September 2009 10:45

Calcfields und Clear?

Re: Report mit optionalen Footern

23. September 2009 15:48

Was ist mit "Calcfields und Clear?" gemeint. :?: :?: :?: :?: :?: :?:

Wie kann ich damit ein Image-Field ausblenden oder unsichtbar machen???

Re: Report mit optionalen Footern

23. September 2009 15:56

Nehmen wir als Beispiel das Logo aus der Firmeneinrichtung. Wenn du das verwenden willst, musst du zuerst CompanyInfo.Calcfields(Picture) ausführen lassen, sonst wird es nicht gedruckt. Mit clear(CompInfo.Picture) wird wiederum nichts gedruckt.

Ich dachte, du könntest dein Bild ähnlich in deine DB einbauen.