9. September 2014 15:54
Hallo,
also das ist nicht ganz unmöglich, passt dann aber nicht zu den Standardabläufen in NAV.
Ein Weg wäre es, den Report über eine Funktion eine RecordRef zu übergeben, die er dann auswertet. Das würde wohl funktionieren - ich habe mir sagen lassen, das es schon mal realisiert wurde - ist aber an jedem normalen NAV- Ablauf vorbei.
Die etwas einfachere Methode ist der Weg, die Struktur des Reports möglichst für alle Belegreports identisch zu halten. Dann kann man das Design kopieren, bzw. durch umbenennen der Records und einiger weniger Variablen die Berichte für die anderen Belegarten benutzen. (z.B. für die Auftragsbestätigung die Recordvariable nicht "SalesOrderHeader" nennen, sondern einfach "DocHeader". Die ans RDLC übergebenen Variablen sollte man dann auch neutral benennen, damit die Anschrift des Belegempfängers sowohl für die Auftragsbestätigung passt, als auch für die Bestellung).
Wenn man nun noch die Beschaffung belegartenspezifischer Daten in eine Codeunit auslagert, die anhand einer Recref- Variable die zu ermittelnden Daten als Text- Variable(n) bereitstellt. dann kann man mit relativ wenig Aufwand die Berichte für die einzelnen Belegarten kopieren.
Das sollte eigentlich auch genügen, denn auf einer Bestellung wird man andere Angaben in Belegkopf und -fuss haben als ein einer Verkaufsrechnung, und dass, obwohl nicht unmöglich, wird dann sehr aufwändig in einem Report unterzubringen sein. Wobei da die "undokumentierten Funktionen" des RDLC- Reportviewers auch ein nicht unwesentliches Hindernis darstellen.
P.S. Wenn du es unbedingt versuchen willst, dann berücksichtige aber auch, das ein realer Beleg mehr als eine Seite haben kann, und Kunden die eine 150seitige Rechnung schreiben, auf der zweiten Seite nur noch die Belegart, -nummer, Seitenzahl und die Tabellenüberschriften sehen wollen, und nicht noch die Kopie des Belegkopfes von Seite 1.
Gruß, Fiddi