verkürzter Berichtskopf - dynamisch für zweite Seite

28. Juli 2015 12:35

Hallo.

Ich weiß das Thema kommt immer mal wieder auf, daher wollte ich mal fragen ob es unter NAV 2015 (oder 2013) mittlerweile eine Möglichkeit gibt, den Kopf auf der zweiten Seite zu verkürzen (also bspw. ohne die Adresse).

Von der Technik her ist klar (mit Shrink in Verbindung mit dem richtigen Hidden Befehl) kann ich bewirken das ein Element ggf. nicht ausgedruckt werden soll, aber der Report reserviert diesen Platz --> er schiebt alles einfach nach oben aber der Rest bleibt weiß :cry: anstatt das der Teil für den "Body" verwendet werden kann ....

Evtl. hat hier jemand schon eine Lösung gefunden? Alles in einem Tabellenkopf im "Body" nach zu programmieren halte ich eigentlich für nicht zumutbar :roll:

MfG
Mr.NAV

Re: verkürzter Berichtskopf - dynamisch für zweite Seite

28. Juli 2015 12:49

Mr.Nav hat geschrieben:Alles in einem Tabellenkopf im "Body" nach zu programmieren halte ich eigentlich für nicht zumutbar :roll:
Da musst du aber - noch immer - durch ;-)

Re: verkürzter Berichtskopf - dynamisch für zweite Seite

28. Juli 2015 12:56

Hallo,

ich kann mich da immer nur wiederholen: ein Beispiel findest du hier.

Gruß Fiddi

Re: verkürzter Berichtskopf - dynamisch für zweite Seite

28. Juli 2015 13:21

Wie gesagt, ich habe gehofft das es mittlerweile ne bessere Lösung gibt :-(

Re: verkürzter Berichtskopf - dynamisch für zweite Seite

28. Juli 2015 13:24

Alles in einem Tabellenkopf im "Body" nach zu programmieren


Was meinst du damit?

Gruß Fiddi

Re: verkürzter Berichtskopf - dynamisch für zweite Seite

28. Juli 2015 14:25

fiddi hat geschrieben:
Alles in einem Tabellenkopf im "Body" nach zu programmieren
Was meinst du damit?
Da bin ich auch überfragt. "Nachprogrammieren" ist hier bestimmt der falsche Ausdruck, es sei denn Mr. Nav sieht die Microsoft-Standardberichte als "gute Basis" und möchte diese umstellen. Wobei auch das durch ein wenig Copy & Paste machbar ist.

Fakt aber ist, dass man sich von dem klassischen Ansatz und vor allem dem Konzept verabschieden muss. Gruppen und darüber liegende statische Bereiche sind unwahrscheinlich flexibel und genau für so etwas gemacht. Nicht für Belege, aber dafür, einen Kopfbereich für Detaildaten zu liefern. Und dieser wiederum ist, bei entsprechend guter Planung, sehr gut dynamisch konfigurierbar.

Re: verkürzter Berichtskopf - dynamisch für zweite Seite

28. Juli 2015 23:46

SilverX hat geschrieben:Fakt aber ist, dass man sich von dem klassischen Ansatz und vor allem dem Konzept verabschieden muss. Gruppen und darüber liegende statische Bereiche sind unwahrscheinlich flexibel und genau für so etwas gemacht. Nicht für Belege, aber dafür, einen Kopfbereich für Detaildaten zu liefern. Und dieser wiederum ist, bei entsprechend guter Planung, sehr gut dynamisch konfigurierbar.

Es wäre toll, falls du das genauer beschreiben könntest und/oder ein Beispiel hättest :)

Re: verkürzter Berichtskopf - dynamisch für zweite Seite

29. Juli 2015 06:57

Mit dem "klassischen Ansatz" ist gemeint, dass man einen als Header fix definierten Bereich hat wie im klassischen Report. Den Page Header sehe ich persönlich nur noch als Bereich den man benötigt, um Seitenzahlen zu drucken und zu benutzen (was eine Limitierung des Konzepts ist), mehr nicht.

Alles weitere, also Kopfbereiche, definiere ich immer im Textkörper und dort in den jeweiligen statischen Gruppen. Es kommt immer primär darauf an, das DataSet gut zu planen und Möglichkeiten zu schaffen, gut gruppieren zu können. Dann kann man überall letztendlich diese Kopfbereiche definieren. Beispiel:

Code:
Belegnr
  Kopienr.
    Zeilennr.
      Weitere Gruppierungsnr.
        Ggf. weitere Felder zum gruppieren


Damit kann ich per Gruppe Belegnr.+Kopienr. dafür sorgen, das ich statische Header Gruppen für den ganzen Beleg (bzw. Kopie) bekomme oder auch für die Zeilen. Brauche ich noch einen Kopf für Zusatzinformationen unter der Zeilennr., und sei es nur um dort immer "Zusatzinformationen" anzudrucken, Gruppiere ich nach Belegnr.+Kopienr.+Zeilennr. und nutze diese Kopfbereiche. Klassisch sind es bei mir immer 4 Werte nach denen ich gruppiere, ich könnte also auch immer Zusatz-Zusatzinfos als Überschriften drüberdrucken.

Gruppen.png


Idealfall ist eine solche Struktur mit Kopfdaten in der statischen Seitengruppe und weiteren Gruppierungen darunter:
Header.png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: verkürzter Berichtskopf - dynamisch für zweite Seite

29. Juli 2015 07:55

Hallo,

prinzipiell ist Carstens Ansatz schon richtig. Speziell für das Belegdesign sind aber noch ein paar kleine Gemeinheiten drin. :wink:

Mr. NAV möchte ja einen unterschiedlichen Kopf für die 1. und 2. Seite eine Belegs. Das ist mit diesem Ansatz alleine nicht möglich, da ich in NAV nicht vorhersagen kann, auf welcher Seite das RDLC die Daten ausgibt.

Die Funktion Zeile auf jeder Seite wiederholen funktioniert auch nicht, da diese Köpfe, nach meinem Wissen, statisch sind, d.h. der erste Kopf wird auch auf allen Folgeseiten gedruckt, was gerade beim Sammelrechnungsdruck sicherlich nicht gewünscht ist.

Daher bleibt in diesem Fall nur der Ansatz wie ihn devch gewählt hat.

Bei sorgfältiger Planung kann ein RDLC- Bericht durchaus genauso einfach oder sogar einfacher zu bearbeiten sein, wie die alten CC- Berichte (die Standardberichte sind dafür sicherlich kein "Best Practice"). :-D

Gruß Fiddi

Re: verkürzter Berichtskopf - dynamisch für zweite Seite

29. Juli 2015 08:03

@SilverX: Danke :)

Das mit den statischen Gruppen sagt mir noch nichts, da ich zur Zeit mit 2009 arbeite. Und da habe ich mich bisher an Fiddis Beispiel gehalten oder versucht, mir damit zu helfen, dass ich mit Hilfe eines Integer-Dataitems noch eine zusätzliche Gruppe vor die anderen bekomme. Und in der kann man dann ja eine abweichende Seite 1 ganz gut hinkriegen.

Re: verkürzter Berichtskopf - dynamisch für zweite Seite

29. Juli 2015 08:24

dass ich mit Hilfe eines Integer-Dataitems noch eine zusätzliche Gruppe vor die anderen bekomme. Und in der kann man dann ja eine abweichende Seite 1 ganz gut hinkriegen.


Für den Vorschlag von devch benötigst du das aber nicht unbedingt, auch nicht in 2009.

Gruß Fiddi

Re: verkürzter Berichtskopf - dynamisch für zweite Seite

29. Juli 2015 08:34

Habe ich bisher auch nur für ein Deckblatt verwendet.

Re: verkürzter Berichtskopf - dynamisch für zweite Seite

29. Juli 2015 08:36

fiddi hat geschrieben:
Alles in einem Tabellenkopf im "Body" nach zu programmieren


Was meinst du damit?

Gruß Fiddi


Hallo.

Also in der Tat meinte ich mit "programmieren" die Umsetzung im RDLC - sorry schlecht ausgedrückt.

Mein eigentliches Problem ist halt, dass ich ein zeiteiliges Logo im Kopf habe (1 über Seitenbreite (a), 1 rechts darunter (b)) - darunter die Seitennr. (bspw. 1 von 2).
Auf der gleichen Ebene wie (b) ist aber links davon die Adresse und Nummer des Auftrages --> genau in dieser Reihenfolge.

So nun das Problem (und gleich vorne weg: Kunde ist König - der will es halt so :roll: ):
Auf der ersten Seite alles ausgeben. Auf der zweiten Seite das Logo (b) inkl. Adresse weg, also nur noch Ausgabe von Logo (a) und Auftragsnummer - sowie Seitennummer.

Im alten Design habe ich einfach verschiedene Header gemacht ... jetzt bin ich gezwungen, Logo (a) und Seitennummer im Header auszugebe und den Rest im Body zu definieren :-D .

Ich habe gehofft es gibt mittlerwerweile eine Lösung die dafür sorgt, dass alles im Header angegebene "zusammengeschrunpft" wird, wenn ich die Daten auf Seite 2 mit Hidden verstecke und die Controls mit Shrink definiere.
Der Effekt ist aber nur, dass er zwar alles nach oben schiebt, aber den Leerplatz reserviert --> das sieht geschossen aus :evil: - dann kann ich gleich den ganzen Kopf auf Seite 2 ausgeben.

Ich hoffe das war jetzt eindeutiger :lol:

Gruß,
Mr.Nav

Re: verkürzter Berichtskopf - dynamisch für zweite Seite

29. Juli 2015 08:54

Hast du dir die Lösung aus meinem Link schon mal angeschaut? Dort gibt es genau dafür eine Lösung.

Gruß Fiddi

Re: verkürzter Berichtskopf - dynamisch für zweite Seite

29. Juli 2015 09:02

Auch unter VS 2008 kann man die Gruppenanzeige in den erweiterten Modus setzen (Beispiel aus VS 2013):
StaticGroups.png


Gemeinheiten gibt es überall 8-)
Man muss bzgl. der unterschiedliche Köpfe differenzieren: Es ist nicht (ohne großen Aufwand und Nutzung des Page Header) möglich, definierte Köpfe für spezifische Seiten zu definieren, das stimmt. Aber es ist problemlos möglich, verschiedene Header auf der ersten und allen Folgeseiten zu definieren. Reduzierte Felderanzahl auf Folgeseiten ist über Nutzung des Page Header und der statischen Gruppen möglich. Dabei werden die Felder des Page Header und die der statischen Seitengruppe auf der ersten Seite und die des Page Header auf allen Folgeseiten gedruckt, sofern die Eigenschaft RepeatOnNewPage der statischen Gruppe auf False steht. Steht diese auf True, wird auch dieser Bereich auf jeder Seite wiederholt. Das bedingt allerdings eine geschickte Gruppierung (gerne auch mehrmals die gleiche), da eine zusammengehörige Gruppe für RepeatOnNewPage jeweils den gleichen Wert haben muss.

Das Bedeutet in dem Bild unten, dass der Adressblock RepeatOnNewPage gesetzt haben kann (da die einzige statische Gruppe, es gibt keine angrenzenden Zeilen der gleichen Ebene), aber für die Zeilenüberschriften (Captions und die zwei kleinen Zeilen darunter für die Linie) alle drei statischen Gruppen diese Eigenschaft gesetzt haben müssen. Das gilt übrigens für statische Seiten- und andere Gruppenheader/-footer.

Header.png


Alternativ kann auch noch eine zusätzliche Zeile über der Zeilenüberschriften eingefügt werden, die eine reduzierte Menge an "Kopf"-Feldern enthält, die auf jeder Seite oben angedruckt werden sollen und für alle 4 statischen Gruppenzeilen dann RepeatOnNewPage gesetzt wird (Eigenschaft muss wie geschrieben gleich sein für alle Gruppen im gleichen Bereich).
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: verkürzter Berichtskopf - dynamisch für zweite Seite

29. Juli 2015 09:04

fiddi hat geschrieben:Hast du dir die Lösung aus meinem Link schon mal angeschaut? Dort gibt es genau dafür eine Lösung.

Gruß Fiddi


Ja habe ich, aber das bekomme ich - es sei denn ich stelle mich mal wieder super schlau an - die gewünschte Struktur nicht hin

_________Logo1_____________
Ardesse ____Logo2___

Auftragsnummer Seitenzah

l

Re: verkürzter Berichtskopf - dynamisch für zweite Seite

29. Juli 2015 09:28

Hallo,

der Witz bei dieser Lösung ist eigentlich, den Kopf in zwei Teile aufzuspalten. D.h. der eigentliche RDLC- Kopf wird so gebaut, dass er nur die Höhe für den Kopf der zweiten Seite einnimmt. (Bitte berücksichtige, das die Seitenzahl nur im Header funktioniert, und das du noch den Platz für die Tabellenüberschrift und evtl. den Übertrag benötigst.)

Der nächste Schritt ist die Platzierung des 1. Logos im Kopf.
Danach definierst du zwei übereinander liegende Rechtecke gleicher Größe im Kopf, wovon das eine nur bei Seitenzahl 1 gedruckt wird, das zweite bei allen anderen.
Was du jetzt noch tun musst, ist das füllen der Rechtecke:
- Das für die Folgeseiten ist recht einfach, da kommen einfach nur die Daten für die zweite Seite rein (inkl. der Tabellenüberschriften und Übertrag)
- Das Rechteck für die erste Seite enthält die Daten des Belegkopfes, die noch in den Header hineinpassen. Der Rest des Belegkopfes wird ganz normal im Boddy vor der Tabelle ausgegeben.

Gruß Fiddi

Re: verkürzter Berichtskopf - dynamisch für zweite Seite

29. Juli 2015 09:32

SilverX hat geschrieben:Auch unter VS 2008 kann man die Gruppenanzeige in den erweiterten Modus setzen

Ich habe nicht mal eine Gruppenanzeige. Laut Hilfe soll die im Menu "Bericht" sein, aber da steht nichts derartiges. Fehlt mir noch etwas?

Re: verkürzter Berichtskopf - dynamisch für zweite Seite

29. Juli 2015 10:31

McClane hat geschrieben:
SilverX hat geschrieben:Auch unter VS 2008 kann man die Gruppenanzeige in den erweiterten Modus setzen

Ich habe nicht mal eine Gruppenanzeige. Laut Hilfe soll die im Menu "Bericht" sein, aber da steht nichts derartiges. Fehlt mir noch etwas?

Für NAV 2009 R2 kenne ich die Gruppenbearbeitung auch nur so (erweiterter Modus ist auch mir hier nicht bekannt):
Links die Zahl als Indikator der Gruppenebene, dazu das Kontextmenü
Gruppe.jpg

Alternativ gibts noch nen Einstieg über die Tabelleneigenschaften.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: verkürzter Berichtskopf - dynamisch für zweite Seite

29. Juli 2015 10:46

Hmmm.... Kann man im VS 2008 unter dem Berichtsdesigner nicht den Gruppenbereich durch hochziehen hervorholen? Dann revidiere ich meine Aussage :oops: Ich kann es nicht prüfen, da ich sowas altes definitiv nicht auf meinen Rechner packe...

Re: verkürzter Berichtskopf - dynamisch für zweite Seite

29. Juli 2015 12:37

SilverX hat geschrieben:Kann man im VS 2008 unter dem Berichtsdesigner nicht den Gruppenbereich durch hochziehen hervorholen?

Falls ja, ist es extrem gut versteckt. Bei mir schaut es so aus wie in Natalies Beitrag.

SilverX hat geschrieben:da ich sowas altes definitiv nicht auf meinen Rechner packe...

Pöh :wink:

Re: verkürzter Berichtskopf - dynamisch für zweite Seite

29. Juli 2015 12:51

Das hier meine ich: Grouping Pane. Bzw. How to: Display Advanced Mode in the Grouping Pane. Versteckt sich ab mindestens VS 2010 unter dem Designbereich, ich denke unter VS 2008 auch, kann aber per Maus angefasst und hochgezogen werden.

Re: verkürzter Berichtskopf - dynamisch für zweite Seite

29. Juli 2015 13:00

SilverX hat geschrieben:Das hier meine ich: Grouping Pane. Bzw. How to: Display Advanced Mode in the Grouping Pane. Versteckt sich ab mindestens VS 2010 unter dem Designbereich, ich denke unter VS 2008 auch, kann aber per Maus angefasst und hochgezogen werden.
Reporting Services ist aber eben nicht dasselbe wie RDLC ;-)
Tablixe (die braucht es dafür) wurden erst unter NAV 2013 eingeführt. Tabellen unterstützen das noch nicht.

Re: verkürzter Berichtskopf - dynamisch für zweite Seite

29. September 2015 16:05

Hallo fiddi,

ich habe mir mal das Beispiel vom link angeschaut.
Wenn ich das umsetze bekomme ich allerdings eine Fehlermeldung.
Verursacht wird diese durch diese Zeile:
=Code.GetGroupPageNumber(ReportItems!NewPage.Value,Globals!PageNumber) > 1

Und die Fehlermeldung ist:
---------------------------
Microsoft Dynamics NAV Development Environment
---------------------------
Fehler beim Überprüfen von RDL-Inhalt:
Der Visibility.Hidden-Ausdruck für das Textfeld-Objekt 'Textbox27' verweist auf die globale Variable 'PageNumber' oder 'TotalPages'. Diese globalen Variablen können nur in der Kopf- oder Fußzeile verwendet werden.
---------------------------
OK
---------------------------

Wo ist meine Fehler? Ich habe die Felder, die nur auf der 1. Seite erscheinen sollen, in den Body geschoben und möchte diese dann auf den folgenden Seite unterdrücken, genau so, wie es im Beispiel beschrieben wurde.

Vielen Dank.

Gruß
Alexander

Re: verkürzter Berichtskopf - dynamisch für zweite Seite

29. September 2015 16:19

zannaleer hat geschrieben:Wo ist meine Fehler? Ich habe die Felder, die nur auf der 1. Seite erscheinen sollen, in den Body geschoben
Genau das ist der Fehler ;-)
Felder, die die Seitenzahl direkt oder indirekt ausgeben sollen, können nicht im Body verwendet werden.