[gelöst] kredit abprüfen

16. Juli 2007 09:16

Hallo

Da ich ein ganz Frischling im Programmier bin habe ich da schon mein erstes problem.

Bei der Debitorenkarte will ich eine MEssagebox ausgeben lassen wenn Kreditlimit unter 100 ist. Dazu der folgende Code in Trigger
Credit Limit (LCY) OnAfterInput


if CurrForm."Credit Limit (LCY)" < 100 then
MESSAGE(Text003)


Es kommt aber eine Fehlermeldung
Ein Typenconvertierung kann nicht durchgeführt werden da eine Seiten einen ungültigen Typ hat

Control = Integer
Zuletzt geändert von dai am 17. Juli 2007 14:28, insgesamt 3-mal geändert.

16. Juli 2007 09:20

if CurrForm."Credit Limit (LCY)" < 100 then
MESSAGE(Text003)


CurrForm weglasssen.
So:
Code:
if "Credit Limit (LCY)" < 100 then
MESSAGE(Text003)

Du willst ja das Tabellenfeld "Credit Limit (LCY)" der Tabelle Customer abfragen, und nicht das Formcontrol.

Gruss

16. Juli 2007 09:28

Vielen Dank für die schnelle Antwort

Klappt wunderbar. Da muss ich noch einiges lernen müssen und bin sehr froh, das man hier immer so schnelle und kompentente Antworten bekommt. ;-)

Vielen Dank nochmal martinst

16. Juli 2007 09:52

Hallo

In diesen Zusammnhang noch eine Frage

Bei der Messagebox? Kann man da Variable benutzen? In der Hilfe steht da was mit %1 usw. Es erscheint aber keine Informationen wenn ich zum Beispiel

Message('%1')

eingebe.
Kann man in der Messagebox den Kreditor mitgeben lassen? Und dies als Textvariable

Gruß

Dai

16. Juli 2007 10:00

dai hat geschrieben:Bei der Messagebox? Kann man da Variable benutzen? In der Hilfe steht da was mit %1 usw.


Zum Beispiel so:

Text003:='Kreditor %1 hat bla bla bla!';

MESSAGE(Text003, Vendor."No.");

[Eigenwerbung]MESSAGE[/Eigenwerbung] :-)

Gruß, Marc
Zuletzt geändert von Marc Teuber am 16. Juli 2007 10:02, insgesamt 1-mal geändert.

16. Juli 2007 10:01

Naja, du musst dem System schon sagen, was du mit "%1" angezeigt haben willst.

z.B.:
if "Credit Limit (LCY)" < 100 then
MESSAGE('%1 ist zu klein!',"Credit Limit (LCY)")

"%1" bedeutet erste Variable nach dem Komma
Das ganze kann man natuerlich erweitern.

z.B.:
if "Credit Limit (LCY)" < 100 then
MESSAGE('%1 bei %2 %3 ist zu klein!',FIELDNAME("Credit Limit (LCY)"),FIELDNAME("No."),"No.")

17. Juli 2007 09:10

Hallo

ist es eigentlich richtig wenn ich diese Abfrage in den Trigger OnAfterInput mache? Oder ist vielleicht im Trigger OnValidate richtiger?

Gruß

Dai

17. Juli 2007 09:52

Mal ne Frage: Wieso soll die Abfrage eigentlich auf der Debitorenkarte passieren und nicht in der Tabelle??
Soll diese Eingabe nur auf dieser einen Form geschehen?

17. Juli 2007 11:20

dai hat geschrieben:ist es eigentlich richtig wenn ich diese Abfrage in den Trigger OnAfterInput mache? Oder ist vielleicht im Trigger OnValidate richtiger?

Das hängt davon ab, was du möchtest. Soll der Code auch ausgeführt werden, wenn du über eine andere Form das Feld ausfüllst, muss du entweder den Code auch in der anderen Form packen und du packst den Code im OnValidate-Trigger des Tabellenfeldes.

Ich würde generell sowenig Code wie möglich in die Forms packen. Wenn möglich immer in Tabellen oder gar in Codeunits.

Gruß, Marc

17. Juli 2007 14:28

Hallo

Nun ja. Da ich ziemlich neu in Sache Programmierung bin, bin ich nicht darauf gekommen auf der Tabellenebene zu machen. Aber jetzt weiss ich schon mehr.

Ich bedanke mich für die zahlreiche Beiträge. Das war echt eine Hilfe für mich.

Gruß

Dai

17. Juli 2007 16:03

dai hat geschrieben:Ich bedanke mich für die zahlreiche Beiträge. Das war echt eine Hilfe für mich.

Dafür ist dieses Forum ja da. :-)

Gruß, Marc