*gelöst*leeren Bericht trotzdem Anzeigen

4. April 2014 21:16

Hallo zusammen,

für die Programmierung von Berichten bin ich ein blutiger Anfänger und habe an die Spezialisten eine Frage.

Ist es möglich einen Bericht der eigentlich leer ist (wird angezeigt 0 Seiten)trotzdem so zu drucken, dass die erste Seite angezeigt und gedruckt wird mit den beiden Sales Headern
Wenn Ihr etwas nicht versteht bitte nachfragen, genauso wenn Ihr noch etwas braucht.

Besten Dank im Voraus für Euer Bemühen und Eure Hilfe

VG
trickser
Zuletzt geändert von trickser am 7. April 2014 21:23, insgesamt 1-mal geändert.

Re: leeren Bericht trotzdem Anzeigen

4. April 2014 21:55

Herzlich Willkommen bei uns!

Normalerweise verhält es sich genau umgekehrt: Standardmäßig druckt der Report alles an, was da ist (z.B. einen Kopf ohne Zeilen), und man möchte genau das unterbinden.
Daher gehe ich davon aus, dass wir in deinem Fall etwas rückgängig machen müssen.
Fangen wir zunächst mit der einfachsten Option zuerst an, welche du überprüfen musst, damit der Kopf auch ohne Zeilen gedruckt wird:
Die DataItems müssen die Eingeschaft PrintOnlyIfDetail = <No> haben.

Re: leeren Bericht trotzdem Anzeigen

5. April 2014 20:13

Hallo Natalie,

DataItem ist so eingestellt. Aber ich glaube Du hast mich falsch verstanden oder ich mich blöd ausgedrückt (was ich ehr glaube)
Ich fange noch einmal von vorne an.

Habe einen Bericht bei dem ich als Option ein Datum und Nummern mitgeben kann als Filter. Wenn ich eine Kombination aus beiden mitgebe, so das alle Zeilen aus dem Filter rausfallen, wird der Bericht in NAV mit 0 Seiten aunten in einer Zeile angezeigt. In so einem Fall wünsche ich mir, das trotzdem die beiden Header angedruckt werden auch wenn es keine Zeilen gibt.

Viele Grüße

Jörg

Re: leeren Bericht trotzdem Anzeigen

6. April 2014 17:28

In der Tat hast du im Vorfeld ein paar wichtige Informationen unterschlagen ;-) Außerdem kann mahn ohne Sicht auf den Report nur gezielt raten.

Schau mal, ob im Header-DataItem im Trigger OnPreDataItem in CurrReport.BREAK oder im OnAfterGetRecord ein CurrReport.SKIP lauert. Wenn ja, kommentiere dies mal aus.
Gibt es überhaupt ein Header-DataItem?? Oder gibt es nur ein Line-DataItem, und die Kopfdaten werden einmalig in der Header-Section angedruckt?

Re: leeren Bericht trotzdem Anzeigen

6. April 2014 20:15

Hallo Natalie,

sorry für die vorenthaltenen Informationen.

Nein es gibt kein DataItem Header nur eine Line. In der Line ist folgendes Programmiert:


Sales Line - OnPreDataItem()
gFiltertext := "Sales Line".GETFILTERS;
CurrReport.CREATETOTALS(Quantity, "Quantity Shipped"); (dies auszukommentieren bringt nix)

Sales Line - OnAfterGetRecord()
IF "Sell-to Customer No." <> gCustomer."No." THEN
IF NOT gCustomer.GET("Sell-to Customer No.") THEN
CLEAR(gCustomer);

IF gItemNo <> "No." THEN BEGIN
gItemNo := "No.";
gItemNoPrint := "No.";
gText := Description;
END ELSE BEGIN
CLEAR(gItemNoPrint);
CLEAR(gText);
END;

CLEAR(gLieferdatum);
IF "Quantity Shipped" > 0 THEN BEGIN
gSalesShipmentLine.SETCURRENTKEY("Order No.", "Order Line No.");
gSalesShipmentLine.SETRANGE("Order No.", "Document No.");
gSalesShipmentLine.SETRANGE("Order Line No.", "Line No.");
IF gSalesShipmentLine.FIND('+') THEN
gLieferdatum := gSalesShipmentLine."Shipment Date";
END;

Sales Line - OnPostDataItem()

In den Section vom bericht ist nichts weiter programmiert. Alles andere müßte Standart sein nur noch beim DataItem SalesLine unter Eigenschaften steht noch etwas, weiß nicht ob das dafür ausschlag gebend ist.

Viele Grüße

Jörg

Re: leeren Bericht trotzdem Anzeigen

6. April 2014 21:28

Ich sehe nirgends einen Hinweis, wo überhaupt ein Sales Header gedruckt wird? Woher kommen die gedruckten Header-Daten?
Abgesehen davon: wenn du doch einen Sales Line Filter so setzt, dass nicht mal eine einzige Sales Line gefunden wird - woher sollen Header-Daten überhaupt stammen?
Wenn dein Bericht einfach alle Sales Header zeigen soll, dann muss das erste DataItem Sales Header sein, und Sales Line dem Sales Header untergordnet.

Re: leeren Bericht trotzdem Anzeigen

7. April 2014 20:39

Hallo Natalie,

ja das ist richtig.
Als Header habe ich zwei mal dieSection Sales Line Header einmal mit Überschrift und ein zwei anderen Feldern. Im zweiten Salesline Header sind die Spalten Überschriften. Die sollten eigentlich angedruckt werden auch wenn es keine Salesline in der Section Salesline Body gibt.

VG
Jörg

Re: leeren Bericht trotzdem Anzeigen

7. April 2014 20:48

trickser hat geschrieben:Im zweiten Salesline Header sind die Spalten Überschriften. Die sollten eigentlich angedruckt werden auch wenn es keine Salesline in der Section Salesline Body gibt.

Wie wäre es damit:
Über DataItem Sales Line neues DataItem Integer, gefiltert auf Number = 1. (Die Spaltenüberschriften in dieses DataItem verschieben.)
Darunter und um 1 eingerückt: Sales Line.
Zum Schluss, damit bei Reportaufruf kein Filterbereich für das Integer-DataItem auftaucht: Für Integer den Schlüssel (TableView) Number vorbelegen.

Re: leeren Bericht trotzdem Anzeigen

7. April 2014 20:55

Hallo,

mal schauen ob ich das hinbekomme :shock:
wie meinst Du das mit gefiltert auf 1 :?:
Schlüssel Tableview Numer vorbelegen :?:

Sorry bin nun mal blutiger Anfänger :-)

VG
Jörg

Re: leeren Bericht trotzdem Anzeigen

7. April 2014 21:14

trickser hat geschrieben:wie meinst Du das mit gefiltert auf 1 :?:
Schlüssel Tableview Numer vorbelegen :?:

Zeile mit DataItem --> Eigenschaften --> DataItemTableView --> rechts in Spalte Value beim Reinklicken die drei kleinen Punkte anklicken.
Für Key rechts den Lookup-Button betätigen, den einzigen Eintrag (Number) auswählen.
Unter TableFilter auf Number = 1 filtern.
Immer darauf achten, das aktuelle Fenster mit OK statt Esc zu verlassen.

Ich bin kein Fan davon, absolute Basics auf diese Weise zu erklären, da ich dir schlecht ein "nee, bitte dort hin klicken" mitgeben kann ;-)
Bitte lass dir diese Basics von einem erfahrenen Kollegen zeigen.
Weitere Quellen (dort bitte auch die Links beachten): viewtopic.php?f=19&t=10806

Re: leeren Bericht trotzdem Anzeigen

7. April 2014 21:21

auch wenn Du kein Fan von blutigen Anfänger wie mir bist um die Basics kurz erklären trotzdem Danke für Deine Hilfe

VG
Jörg