Zeilen ausblenden die einen minus DB aufweisen

Bild Microsoft Dynamics NAV 1.xx und 2.xx
(ehem. Navision Financials)

Zeilen ausblenden die einen minus DB aufweisen

Beitragvon maesi » 2. Juli 2009 15:50

Hallo Zusammen

Hab mal wieder eine anpassung zu machen in einem Report.

AusgangslageDer Report stellt zu allen Erl. Verkaufsaufträge folgende Zeilen. Erl. Verkaufsauftrag, Materialkosten IST, Fertingungskosten IST ,Produktionskosten IST und den Verkaufspries. Darunter erstellt er eine Zusammenfassung der Mat. Fert. und Produktionskosten mit der jeweiligen Prozentzahl vom Verkaufbetrag dar. Das ganze wird in einem GroupFooter zusammengefasst ausgegeben.

Nun möchte ich, dass nur diejenigen Zeilen ausgegeben werden die eine minus Prozentzahl aufweisen.

Ich habe mir dazu mal einen bestehenden Report zu gemĂĽte gefhĂĽhrt und wollte dies so nachbauen. Hier meine Idee!

Auf einem RequestForm eine CheckBox hinzugefĂĽgt dieser die Variabel(Boolean) zugeteilt und unter dem DataItem Erledigter Verkaufsauftragskopf unter OnAfterGetRecord() folgenden Code eingefĂĽgt.
Code: Alles auswählen
IF Variabel(Boolean) AND (DBAuftrag > 1) THEN
CurrReport.SKIP;


Dies gibt ein Ergebnis das nicht gerade befriedigend ist. Er gibt mit von etwa 12 Seiten nur noch zwei Verkaufsauftäge mit den dazugehörigen Produktionszeilen aus. In der ersten ist auch ein minus DB vorhanden, leider auf dem zweiten nicht mehr. Da steht über 50% DB drinn.
Ich verstehe nicht ganz warum er nur noch zwei Zeilen ausgibt und die restlichen minus DB nicht mehr.

Kann mir da vieleicht einer helfen?
Gruss
maesi
maesi
 
Beiträge: 32
Registriert: 25. Juni 2008 06:42

Re: Zeilen ausblenden die einen minus DB aufweisen

Beitragvon Danjo » 3. Juli 2009 08:28

Setz diese PrĂĽfung mal direkt unter die Berechnung von DBAuftrag.
Von der Logik her wĂĽrde ich sagen das der Code stimmt.
Er scheint nur (aus meiner Perspektive) das Feld DBAuftrag noch nicht errechnet zu haben.
"Das Denken ist zwar allen Menschen erlaubt, aber vielen bleibt es erspart." - Johann Wolfgang von Goethe

MCNPS - MBSS - MBSP - MCTS - SA
Mein NAV-Blog
Benutzeravatar
Danjo
Microsoft Partner
Microsoft Partner
 
Beiträge: 694
Registriert: 30. Mai 2009 16:12
Wohnort: FĂĽrther Landkreis
Realer Name: Daniel Fugel
Arbeitsort: NĂĽrnberg
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV 2.60 - BC, CRM 8 - 9.1

Re: Zeilen ausblenden die einen minus DB aufweisen

Beitragvon maesi » 3. Juli 2009 14:38

Hallo Danjo

Das geht leider nicht, da er wenn ich den Code in eine Section gebe einen Fehler meldet (Die aufgerufene Funktion kann nur von einem DataItem Trigger aufgerufen werden.).

Ich habe aber das ganze bereits in den DataItem Erledigter Verkaufsauftragskopf von dem auch der GruopFooter ist eingetragen.

Gruss
maesi
maesi
 
Beiträge: 32
Registriert: 25. Juni 2008 06:42

Re: Zeilen ausblenden die einen minus DB aufweisen

Beitragvon Danjo » 3. Juli 2009 15:01

Heisst das du berechnest den Wert in einer Section?
In diesem Fall solltest du prĂĽfen ob du das (Berechnung DBAuftrag) nicht in den OnAfterGetRecord umziehen kannst.
Sonst wird es etwas umständlicher die Bedingung abzuprüfen.
"Das Denken ist zwar allen Menschen erlaubt, aber vielen bleibt es erspart." - Johann Wolfgang von Goethe

MCNPS - MBSS - MBSP - MCTS - SA
Mein NAV-Blog
Benutzeravatar
Danjo
Microsoft Partner
Microsoft Partner
 
Beiträge: 694
Registriert: 30. Mai 2009 16:12
Wohnort: FĂĽrther Landkreis
Realer Name: Daniel Fugel
Arbeitsort: NĂĽrnberg
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV 2.60 - BC, CRM 8 - 9.1

Re: Zeilen ausblenden die einen minus DB aufweisen

Beitragvon maesi » 3. Juli 2009 15:43

Hallo Danjo

Wenn du mir sagen kannst wie ich ein GroupFooter Total im OnAfterGetRecord erstellen kann wĂĽrde ich dies sehr gerne machen. leider keinen dunst wie so etwas geht.

Gruss
Maesi
maesi
 
Beiträge: 32
Registriert: 25. Juni 2008 06:42

Re: Zeilen ausblenden die einen minus DB aufweisen

Beitragvon Danjo » 3. Juli 2009 15:48

Addiere das Feld im OnAfterGetREcord in einer Variable hoch.
Das kannst du dann mit CLEAR in dem Groupfooter(besser im Groupheader dann) wieder zurĂĽck setzen.
"Das Denken ist zwar allen Menschen erlaubt, aber vielen bleibt es erspart." - Johann Wolfgang von Goethe

MCNPS - MBSS - MBSP - MCTS - SA
Mein NAV-Blog
Benutzeravatar
Danjo
Microsoft Partner
Microsoft Partner
 
Beiträge: 694
Registriert: 30. Mai 2009 16:12
Wohnort: FĂĽrther Landkreis
Realer Name: Daniel Fugel
Arbeitsort: NĂĽrnberg
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV 2.60 - BC, CRM 8 - 9.1

Re: Zeilen ausblenden die einen minus DB aufweisen

Beitragvon maesi » 6. Juli 2009 08:52

Habe es geschafft das Total in den OnAfterGetRecord zu transferieren, leider geht aber die Anzeitge der minus Beträge immer noch nicht richtig. Er zeigt mir nur drei Stück an. Er hätte aber bestimmt etwa 15 die er Anzeigen sollte.

Keine Idee wiso er mir nur drei und unter denen auch noch einen mit positiven Betrag anzeigt.
maesi
 
Beiträge: 32
Registriert: 25. Juni 2008 06:42

Re: Zeilen ausblenden die einen minus DB aufweisen

Beitragvon Danjo » 6. Juli 2009 08:56

Poste hier doch einmal deinen Code.
Vielleicht finden wir dann ja eine Unstimmigkeit.
Hast du in dem DataItem evtl. noch Filter unter denm Properties gesetzt?
"Das Denken ist zwar allen Menschen erlaubt, aber vielen bleibt es erspart." - Johann Wolfgang von Goethe

MCNPS - MBSS - MBSP - MCTS - SA
Mein NAV-Blog
Benutzeravatar
Danjo
Microsoft Partner
Microsoft Partner
 
Beiträge: 694
Registriert: 30. Mai 2009 16:12
Wohnort: FĂĽrther Landkreis
Realer Name: Daniel Fugel
Arbeitsort: NĂĽrnberg
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV 2.60 - BC, CRM 8 - 9.1

Re: Zeilen ausblenden die einen minus DB aufweisen

Beitragvon maesi » 6. Juli 2009 09:26

Ja ich habe auf dem DataItem Filter gesetzt.
SORTING(Belegart,Nummer) WHERE(Belegart=CONST(Auftrag))
Die Nummer und das Buchungsatum Filter ich wenn ich den Report starte.

Dieser Code stammt aus dem DataItem Erledigter Verkaufskopf
Code: Alles auswählen
IF ErlVerkBetragFr >0 THEN BEGIN
  DB4 := (100 / ErlVerkBetragFr) * DBAuftrag;
END;

IF NMDB AND (DB4 > 1 ) THEN
CurrReport.SKIP;


Dieser aus der GroupFooter Seciton Erledigter Verkaufskopf
Code: Alles auswählen
DBMat := Produktionsauftragskopf."EP Material Ist";
DBFert := Produktionsauftragskopf."Fertigungskosten IST";
DBHerst := ErlVerkBetragFr - Produktionsauftragskopf."Produktionskosten IST";
DBAuftrag := ErlVerkBetragFr - Produktionsauftragskopf."Selbstkosten IST Auftrag";

IF ErlVerkBetragFr >0 THEN BEGIN
  DB1 := (100 / ErlVerkBetragFr) * DBMat;
  DB2 := (100 / ErlVerkBetragFr) * DBFert;
  DB3 := (100 / ErlVerkBetragFr) * DBHerst;
END;


Habe gerade gesehen, dass ich das Total im OnAterGetRecord doch nicht hinbekommen habe, er versetzt mir alle Ergebnisse um einen Record.
Aber trotzdem sollte er doch die minus Beträge ausweisen.

Gruss
maesi
maesi
 
Beiträge: 32
Registriert: 25. Juni 2008 06:42

Re: Zeilen ausblenden die einen minus DB aufweisen

Beitragvon maesi » 6. Juli 2009 11:00

Ich habe mir nochmals gedanken gemacht wie ich es eventuell mit den Sections erreichen kann.

Bin schon mal etwas weiter gekommen als mit dem DataItem.

Ich kann jetzt alle GroupFooter ausblenden die einen positiven Betrag aufweisen.
Dieser Code steht in dem GroupFooter
Code: Alles auswählen
IF NMDB AND (DB4 > 1 ) THEN
CurrReport.SHOWOUTPUT(FALSE);


Jedoch kommen natürlich die beiden Bodys die vor dem GroupFooter stehen auf dem Ausdruck. Habe noch keine lösung gefunden die funktionert, da ich denselben Code in den Bodys nicht verwenden kann.

Gibt es in dieser Section geschichte nicht eine abfolge wenn zum Beispiel im GroupFooter der durchgelaufene Record nicht übereinstimmt mit dem Code, dass er alles zwischen GroupHeder und GroupFooter auslässt.

Gruss
maesi
maesi
 
Beiträge: 32
Registriert: 25. Juni 2008 06:42

Re: Zeilen ausblenden die einen minus DB aufweisen

Beitragvon Danjo » 6. Juli 2009 11:11

Du kannst (leider) keine Sections von einer nachfolgenden Sections ausblenden lassen.
Wenn es keine Möglichkeit gibt das dir der Deckungsbeitrag bereits in den Body-Sections bzw. im DataItem korrekt vorliegt, könntest du noch versuchen das DataItem im Anschluss mit einem anderen Namen noch einmal aufzurufen. Mit den selben Links und Filtern.
In dem DataItem werden dann Body und Groupfooter angedruckt.
Den Showoutput von deinem ursprĂĽnglichen Groupfooter setzt du auf FALSE.
Im Code deines jetzigen Groupfooters kannst du stattdesen eine Boolean-Variabke fĂĽllen.
Code: Alles auswählen
IF NMDB AND (DB4 > 1 ) THEN
ShowData := FALSE;

In alle Sections deines neuen DAtaItems fĂĽgst du dann das hier ein:
Code: Alles auswählen
CurrReport.SHOWOUTPUT(ShowData);

Nicht wirklich optimal, sollte aber alles tun was du willst.
"Das Denken ist zwar allen Menschen erlaubt, aber vielen bleibt es erspart." - Johann Wolfgang von Goethe

MCNPS - MBSS - MBSP - MCTS - SA
Mein NAV-Blog
Benutzeravatar
Danjo
Microsoft Partner
Microsoft Partner
 
Beiträge: 694
Registriert: 30. Mai 2009 16:12
Wohnort: FĂĽrther Landkreis
Realer Name: Daniel Fugel
Arbeitsort: NĂĽrnberg
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV 2.60 - BC, CRM 8 - 9.1

Re: Zeilen ausblenden die einen minus DB aufweisen

Beitragvon maesi » 6. Juli 2009 11:39

Nun mal ne andere Frage.
Warum kann ich in dem DataItem Erlediger Verkaufskopf die DB4 GlobaleVariable nicht abfragen?

Denn dann müsste doch die erste Variante funktionieren. Ich kann ja auf einem DataItem nicht mit CurrReport.SHOWOUTPUT fungieren da sich dies ausschliesslich in den Sections zulässig ist.

Wenn ich den Ganzen DataItem Erledigter Verkaufsauftrag fĂĽr einem Record ausblenden will, geht dies doch mit CurrReport.SKIP. Warum also macht er bei mir diese Fehler.

Gruss
maesi
maesi
 
Beiträge: 32
Registriert: 25. Juni 2008 06:42


ZurĂĽck zu NAV 2.xx

Wer ist online?

Mitglieder in diesem Forum: Majestic-12 [Bot], Unbekannter Robot und 1 Gast