Schriftfarbe eines Wertes ändern wenn kleiner als "x"

4. Oktober 2012 08:45

Hi Leute

ich bin neu in der Nav Programmierung, habe nur einen Grundlagenkurs absolviert und stehe bereits einmal in der Ecke!

Folgende Problematik stellt sich mir:

Ich möchte auf dem Form "Sales Lines" den Wert "Unit Price" in roter Schrift darstellen oder eine Fehlermeldung ausgeben sobald der Wert "Profit %" kleiner als x% ist!

Leider habe ich zurzeit keinen Plan wie ich vorgehen soll, da ich auf dem Form "Sales Lines" keinen C/AL Code erfassen kann! Das Der Menupunkt is ausgegraut!

Wer kann mir einen Hinweis geben? Bin für sämtliche Tipps Dankbar...

Re: Schriftfarbe eines Wertes ändern wenn kleiner als "x"

4. Oktober 2012 09:02

Hallo,

ohne Programmierung kommst du hier leider nicht weiter. Du musst im "OnAfterGetRecord"- Trigger des Forms oder besser im "OnFormat"- Trigger des Feldes die Funktion UPDATEFORECOLOR benutzen (Anwendung siehe C/AL- Hilfe).

Gruß, Fiddi

Re: Schriftfarbe eines Wertes ändern wenn kleiner als "x"

4. Oktober 2012 09:41

Hi Fiddi

Vielen Dank für deinen Hinweis. Mir ist klar, dass dies ohne Programmierung nicht klappt, mein Problem besteht primär darin, dass ich nicht an den C/AL Code hinkomme!

Bild

Vielen Dank für weitere Hinweise.

Re: Schriftfarbe eines Wertes ändern wenn kleiner als "x"

4. Oktober 2012 09:49

Im Designer auf das Feld "Verkaufspreis(unit proce)" stellen und F9 drücken.
Wenn sich dann nicht der C/AL-Code öffnet, ist das nicht lizenziert. Dann musst Du Dich an deinen Navision-Partner wenden.

Re: Schriftfarbe eines Wertes ändern wenn kleiner als "x"

24. Oktober 2012 10:58

Hi Leute

Vielen Dank für eure Hilfe bis anhin! Soweit ist mir alles klar ich kann mit F9 den C/AL Code öffnen und im OnFormat Trigger den UPDATEFORECOLOR Code erfassen!

Leider stehe ich an, beim Bezug auf Feld "Profit %", musste mit Schrecken feststellen, dass dieser Wert bei sämtlichen Artikeln auf 0 steht!

Nun habe ich folgendes getestet was leider auch nicht funzt!

Ich habe eine neue Variable Profit1 (Integer) erstellt und meinen Code sieht so aus:

Code:
Profit1 := (1-"Unit Cost (LCY)" / "Unit Price") * 100;
IF Profit1 <= 30 THEN BEGIN
CurrForm."Unit Price".UPDATEFORECOLOR(255);
CurrForm."Unit Price".UPDATEFONTBOLD(TRUE);
END ELSE BEGIN
CurrForm."Unit Price".UPDATEFORECOLOR(0);
CurrForm."Unit Price".UPDATEFONTBOLD(FALSE);
END;


Ich gehe davon aus, dass der Fehler irgendwo in der Berechnungsformel liegt! Beim Aufruf des Forms erhalte ich einen "Division by zero" Error!


Bin für sämtliche Unterstützung dankbar, ich bin dabei mein Wissen in der C/AL Code aufzubauen und sehe mich noch als blutigen Anfänger, daher entschuldigt die Grundlagenfragen. Bin Leider mit meinem Buch(MS 8359B: Navision 4.0 Development) aus dem Kurs auch nicht weitergekommen!


bensch@

Re: Schriftfarbe eines Wertes ändern wenn kleiner als "x"

24. Oktober 2012 11:42

"Profit %" ist kein Feld aus dem Standard, also müsstest du vielleicht mal euren Partner fragen, wann und wie das gefüllt werden soll.

Dein Fehler tritt wohl dann auf, wenn "Unit Price"=0 ist.

Re: Schriftfarbe eines Wertes ändern wenn kleiner als "x"

24. Oktober 2012 12:02

McClane hat geschrieben:"Profit %" ist kein Feld aus dem Standard

Das gehört zum Standard (Feld 67), wird aber nur automatisch versorgt, wenn der Artikel entsprechend geschlüsselt ist ("VK-Preis/DB - Berechnung" auf DB = VK - EP (engl. "Price/Profit Calculation" auf "Profit = Price - Cost")

Re: Schriftfarbe eines Wertes ändern wenn kleiner als "x"

24. Oktober 2012 12:04

Kowa hat geschrieben:Das gehört zu Standard (Feld 67),

Ups, stimmt, hab ich übersehen :oops:

Re: Schriftfarbe eines Wertes ändern wenn kleiner als "x"

24. Oktober 2012 13:28

Vielen Dank für eure Tipps... als Anfänger ist man manchmal "blind" ;-)

habe inzwischen bemerkt, dass bei uns bei keinem Artikel der Preis auf der Artikelkarte hinterlegt ist, da die Preise Kundenspezifisch sind, daher wird das Feld DB% oder Profit% auch nicht berechnet!

Meine Frage aber nun... was ist in meinem Code falsch? Welchen Fehler mache ich bei der Berechnung?


Vielen Dank für weitere Tipps

Re: Schriftfarbe eines Wertes ändern wenn kleiner als "x"

24. Oktober 2012 14:00

Du solltest auf jeden Fall erstmal überprüfen, ob der Nenner der Division verschieden ist von 0:

if "unit price" <> 0 then
Profit1 := (1-"Unit Cost (LCY)" / "Unit Price") * 100;

(oder statt "unit price" das Feld nehmen, das Du verwendest)

Re: Schriftfarbe eines Wertes ändern wenn kleiner als "x"

24. Oktober 2012 15:30

Vielen Dank für Eure Hilfe! jetzt klappt alles! :-D

Re: Schriftfarbe eines Wertes ändern wenn kleiner als "x"

24. Oktober 2012 15:47

Hätte jetzt auch nicht gedacht, dass in der Sales Line das Feld "Profit %" vorhanden ist.

Man lernt nie aus ;-)

Re: Schriftfarbe eines Wertes ändern wenn kleiner als "x"

24. Oktober 2012 22:08

Hätte jetzt auch nicht gedacht, dass in der Sales Line das Feld "Profit %" vorhanden ist.


Das Feld ist auch nicht wirklich erwähnenswert. Es wird im Standard mit dem "Profit %" aus dem Artikelstamm gefüllt, und danach nie wieder verändert :-( .

Gruß, Fiddi