Report

1. Februar 2007 07:09

Hallo

Ich habe einen Report welcher aus der Tabelle Item und Item Ledger Entry besteht. Wobei die Tabelle Item Ledger Entry über den Table Filter (Entry Type = CONST(Sale)) verknüpft ist. Diese Auswertung zeigt mir den gesamten Verkauf über einen Zeitraum und zeigt die Summen von Artikelkategorien und Produktgruppencode.

Nun möchte ich aber auch noch nach Verkäuftercode einschränken können. Leider habe ich keine Idee wie ich vorgehen soll.

mfg
stony

1. Februar 2007 08:43

Hallo Stony,
das direkte Filtern auf die Artikel / Artikelposten ist nicht Möglich, da der Verkäufercode hier nicht vorhanden ist.
Stony hat geschrieben:Wobei die Tabelle Item Ledger Entry über den Table Filter (Entry Type = CONST(Sale)) verknüpft ist.

Ich gehe davon aus, das die Tabellen über das Feld Artikelnummer verknüpft sind.
Auf die Tabelle "Item Ledger Entry" ist ein Filter auf "Entry Type = CONST(Sale)"

-->Du könntest z.B. eine Variable vom Typ Record auf die Tabelle 112 "Sales Invoice Header" (Verkaufsrechnunskopf) erstellen.
-->Auf der RequestForm des Reports ein neues Feld einfügen mit Relation auf Table 13 (Salesperson/Purchaser). (So kannst du über ein Dropdown Button den Verkäufer auswählen).
-->Auf dem "Item Ledger Entry - OnAfterGetRecord" Trigger eine GET auf die Tabelle 112 machen. (Mit dem Feld Belegnr. aus "Item Ledger Entry")
-->Wenn der Sales Invoice Header.Verkäufercode <> DeinFilter ist, einen CurrReport.SKIP ausführen.

Kleiner Hinweiß:
Diese Variante kann recht langsam sein, wenn viele Buchungszeilen vorhanden sind
Evtl. währe eine ander Struktur im Report besser!
Gruß Mikka

Report

1. Februar 2007 19:55

Hallo

Besten Dank für den Hinweis.

Welche andere Struktur könnte ich hierfür noch verwenden. Wir haben unsere Artikel nach Artikelkategoreien,Produktgruppen und eine weiteren Code Artikeluntergruppe eingeteilt. Der Bericht sollte folgendes anzeigen:

Artikelbez. SummeMenge SummeWert
...
Artikeluntergruppen SummeMenge SummeWert
....
Artikelbez. SummeMenge SummeWert
....
Artikeluntergruppen SummeMenge SummeWert
....
Produktgruppensummen
....
und zum Schluss Artikelkategoriencodesummen
dann beginnt das ganz wieder von vorne.

Die Filterkriterien sollte diese erweitern 3 Gruppen sein, Zeitraum und auch der Verkäufter. Mir ist nicht ganz klar, welche Tabellen ich hierfür verwenden sollte.

mfg
stony

2. Februar 2007 08:28

Hallo Stony,
jetzt wo du noch mehr Anforderungen geschildert hast, würde ich vorerst die vorhanden Struktur behalten.
(Bei deinem ersten Posting sah der Report noch recht einfach aus!)

Stony hat geschrieben:Mir ist nicht ganz klar, welche Tabellen ich hierfür verwenden sollte.

Nun, der Artikelkategoriencode und der Produktgruppencode sind auf der Tabelle Item hinterlegt.
In der Tabelle "Item Ledger Entry" werden diese beim Buchen mit gespeichert.
Weist du denn wo die Artikeluntergruppe gespeichert wurde(Tabelle Artikel als neues Feld bzw. werden diese auch mit in den Artikelposten gespeichert)?

Gruß Mikka

Report

2. Februar 2007 09:02

Hallo

Das Feld Artikeluntergruppe wird im Artikel und auch in den Artikelposten mitgespeichert.

mfg
stony

2. Februar 2007 10:53

stony hat geschrieben:Die Filterkriterien sollte diese erweitern 3 Gruppen sein, Zeitraum und auch der Verkäufter. Mir ist nicht ganz klar, welche Tabellen ich hierfür verwenden sollte.


Du brauchst eigentlich "nur" wie oben Beschrieben den Verkäufercode auf der RequestForm einbinden und
auf dem DataItem in den Properties die "ReqFilterFields" angeben.

So werden beim starten des Report die gewünschten Filterfelder immer mit Angezeigt.
Falls die Filter Pflichtfelder sind, könntest du auf OnPreReport Trigger folgendes schreiben:
Code:
IF Item.GETFILTER(Item.DEIN_Pflichtfeld) = '' THEN
  ERROR(HIER_DEINE_FEHLERMELDUNG);


Um die Summen zu bilden benötigst du entweder einen passenden Key, dann kannst du mit "GroupTotalFields" die Summen bilden,
oder du Programmierst die Summenbildung zu Fuß.
(Probiere es mit dem Report-Wizard aus, wie dieser Gruppiert und Summen bildet. Die Navision Hilfe gibt zu dem Thema auch weitere Infos)

Hinweiß: In der Postentabelle würde ich nicht für jeden Report einen neuen Key anlegen!
Gruß Mikka

Report

2. Februar 2007 12:58

Hallo

Wie soll ich die Tabelle 112 mit Item Ledger Entry über Get verbinden. Das ist mir noch nicht ganz klar, da ich leider kein Feld finde, über welches ich diese beiden verbinden könnte.

mfg
stony

2. Februar 2007 13:27

Ganz einfach:
In den "Item Ledger Entry" hast du die Belegnr. diese Nummer steht in Relation zu dem Feld "Nr." in der Tabelle 112.
Der Code würde ungefähr so aussehen
Code:
IF SalesInvHeader.GET("Item Ledger Entry"."Document No.") THEN
   IF SalesInvHeader."Salesperson Code" <> HIER_DEIN_VERKÄUFERFILTER THEN
     CurrReport.SKIP;


Somit hast du den entsprechenden Datensatz im Zugriff und kannst den Verkäufercode abfragen. Wenn der Verkäufercode ungleich deines Filters ist, wird der Datensatz "geSkipt" und der nächste wird verarbeitet.
Gruß Mikka

Report

2. Februar 2007 14:05

Hallo

In der Tabelle 112 gibt es zwar das Feld Nr. nur stehen dort die Auftragsnummern drin. Aber der GET-Befehl holt mir aus der Tabelle Item ledger Entry die Lieferscheinnummer heraus. Sollte ich vielleicht die Tabelle 110 nehmen.

mfg
stony

2. Februar 2007 14:47

Habe ich die Tabelle verwechselt!?
Sorry :oops:

Gruß Mikka