Berechnung auf Report in welchem Trigger?

Bild Microsoft Dynamics NAV 5.xx

Berechnung auf Report in welchem Trigger?

Beitragvon bensch@ » 12. Dezember 2012 16:16

Hi Leute ich arbeite mich immer mehr in Navision ein und stehe aktuell wieder mal vor einer Wand.

Ich möchte im Objet "11536 SR Cust. Order Lines" den Profit in % ausgeben und habe aktuell folgenden Code für die Berechnung:

Code: Alles auswählen
Profit1 := (1 - Sales Line."Unit Cost (LCY)" / Sales Line."Unit Price") * 100;


Die Variable Profit1 habe ich unter den C/AL Globals definiert.

Meinen Code habe ich unter Sales Line C/AL Code unter Sales Line - OnAfterGetRecord() und Sales Line - OnPostDataItem getestet leider immer mit dem Fehler Nulldivision 0/0!

was mache ich falsch? Ich bin für sämtliche Hilfe sehr dankbar!
bensch@
 
Beiträge: 18
Registriert: 2. Oktober 2006 14:33
Wohnort: Schweiz

Re: Berechnung auf Report in welchem Trigger?

Beitragvon JanGD » 12. Dezember 2012 16:47

Unit Price auf der Sales Line muss nicht immer gepflegt sein (ist zwar nicht korrekt, aber kann vorkommen).
Richtiger Trigger wäre OnAfterGetRecord.

Am Besten von solchen Reports eine Kopie im 50000er Bereich machen und da dran die Ă„nderungen vornehmen.
Insbesondere, wenn man sich da einarbeitet. (Test-System ist Pflicht natĂĽrlich)
JanGD
 
Beiträge: 1765
Registriert: 19. März 2008 12:33
Arbeitsort: NRW
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2013R2

Re: Berechnung auf Report in welchem Trigger?

Beitragvon bensch@ » 13. Dezember 2012 14:51

Vielen Dank fĂĽr die erste Antwort, leider behebt dies mein Problem noch nicht komplett!

tatsächlich ist es so, dass der Unit Price oder auch Unit Cost (LCY) nicht überall eingetragen ist und ich dadurch den Fehler erhalte!

Nun habe ich probiert mittels einer Abfrage zu üerprüfen ob die Felder kleiner oder grösser als 0 sind und erst danach die Berechung durchgeführt

Code: Alles auswählen
IF ("Unit Cost (LCY)" <> 0) AND ("Unit Price" <> 0) THEN BEGIN
Profit1 := (1-"Unit Cost (LCY)" / "Unit Price") * 100;
END ELSE BEGIN
END;



Leider erhalte ich immer noch den Nulldivision 0/0 Fehler! Wenn ich den Report auf einen Kunden Filtere erhalte ich die korrekte Ausgabe.

Gibt es eine andere Möglichkeit um abzufragen ob die Felder leer sind oder einen Wert enthalten?


Vielen Dank fĂĽr eure Hilfe
bensch@
 
Beiträge: 18
Registriert: 2. Oktober 2006 14:33
Wohnort: Schweiz

Re: Berechnung auf Report in welchem Trigger?

Beitragvon Markus Merkl » 13. Dezember 2012 16:13

Ich wĂĽrde auch ein ...Begin Clear(Profit1) end; machen;

Bist Du denn auch im on aftergetrecord Trigger?
Markus

“Perl is the only language that looks the same before and after RSA encryption.” (Keith Bostic)
Benutzeravatar
Markus Merkl
 
Beiträge: 487
Registriert: 24. April 2007 10:10
Wohnort: ZH
Arbeitsort: CH-ZH
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: [alle]

Re: Berechnung auf Report in welchem Trigger?

Beitragvon Danjo » 14. Dezember 2012 09:46

Hi,

deinem Code nach dĂĽrfte der Null-Divisionfehler nicht auftauschen.
Der Hinweiß mit dem Clear ist auf jedenfall nicht verkehrt, sollte aber eventuell durch ein Profit1 := 0; im ELSE-Zweig ersetzt werden. Ist zwar bei Decimal nicht zwingend, aber einmal angewöhnt macht man später keine Fehler mit.

Hast du eventuell noch den altne Code an einer anderen Stelle von frĂĽheren Tests stehen?
Du kannst ja mal mit dem Debugger schauen an welcher Stelle er rausfliegt.
"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: Berechnung auf Report in welchem Trigger?

Beitragvon JanGD » 14. Dezember 2012 09:51

Du benötigst keine Begin/End bei Deinem dargestellten Code.
JanGD
 
Beiträge: 1765
Registriert: 19. März 2008 12:33
Arbeitsort: NRW
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2013R2


ZurĂĽck zu NAV 5.xx

Wer ist online?

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