29. Juni 2021 15:15
Hallo Experten,
gibt es in NAV eine Funktion, die gleiche Datensätze erkennt (Gleiche Item No., gleicher Location Code) und diese nur aus der Ansicht entfernt bzw. nicht sichtbar macht ?
Danke.
29. Juni 2021 15:38
Hi,
bin kein Experte, kannst du bitte deine Anforderung ein wenig genauer spezifizieren?
29. Juni 2021 15:46
Kurze Antwort: Nein, sowas gibt es im NAV-Standard nicht.
Lange Antwort:
So eine Funktion kann es im Standard nicht geben, da jeder unterschiedliche Kriterien hätte, nach denen die Zeilen zusammengefasst werden müssten.
Wir haben bei uns eine absolut vergleichbare Anforderung.
Zwar sollen die Zeilen nicht in der Page, aber später auf dem Report nach speziellen Kriterien zusammengefasst werden, damit unsere Angebote/Auftragsbestätigungen nicht "als Quelle-Katalog" ausgedruckt werden, sondern mit möglichst wenigen Seiten auskommen.
Lösung:
Wir sammeln die Belegzeilen in einer temporären Tabelle (welche auf derselben Tabelle basiert) und zählen dort dann einfach die Mengen hoch.
Die Reports drucken dann anstelle der physikalischen Tabelle die Daten aus der temporären Tabelle an.
Bei einer gruppierten Anzeige in einer Page würde es ähnlich ablaufen:
Im OnAfterGetCurrRecord des Belegkopf wird eine Funktion aufgerufen, welche die dazugehörigen Zeilen ermittelt und in einer temporären Record-Variablen zusammengefasst speichert.
Anschließend wird das Record Set an eine SubPage übergeben, welche das Property SourceTableTemporary=Yes hat.
Falls es sich nicht um Kopf-/Zeilen-Daten (wie bei Angeboten/Aufträgen/...) handelt, sondern um eine reine ListPage, dann wird die Gruppierungsfunktion bereits im OnOpenPage aufgerufen. Die ListPage selber enthält das Property SourceTableTemporary und die Daten werden nicht in einer temporären Record-Variablen, sondern im Rec der Page gesammelt.
29. Juni 2021 16:08
Hallo,
@sweikelt: Ich habe vom Einkauf die Anforderung bekommen eine Verbrauchstabelle zu realisieren. Im Prinzip die Abgänge, Verbräuche und Verkäufe von einem Artikel aus der ItemLedgerEntry innerhalb eines Buchungszeitraum aufzusummieren. Dafür hatte ich zuvor in der ItemLedgerEntry Table für jede Buchungsperiode ein FlowField erstellt. Beim Aufrufen der Page habe ich eine Funktion erstellt, die den Filter auf die einzelnen FlowFields setzt.
Das klappt alles soweit und die Berechnung der einzelnen 12 Monate des lfd. Jahr passt.
Problem; Obwohl das Ergebnis nach Artikelnummer und Lagerort bereits gefiltern ist erscheinen trotzdem mehrfach die selben Zeilen. Es muss an der Lfdr. Nr der ItemLedger Entry liegen, da diese für jeden Datensatz eindeutig ist. Wie kann ich prüfen, ob die Kombination an ItemNo. bereits vorhanden ist, Falls Ja das System nur eine Zeile ausgeben.
29. Juni 2021 16:44
super, dann ist Timo's Antwort die Lösung zu deinem Problem
5. Juli 2021 09:08
Danke Timo für deine Antwort,
habe auch gesehen, dass im Standard Page 5847 ebenfalls mit einer Temp Table gelöst wurde. Werde mich mal nachher genauer mit beschäftigen.
VG
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.