[Gelöst] Warnmeldung einblenden

24. Februar 2009 12:34

Wir haben bei der Artikelkarte ein Feld hinterlegt (boolean),
dass anzeigt ob die Daten für den Artikel vollständig sind oder nicht.
Jetzt würde ich gerne bei der Auftragserfassung eine Warnmeldung
einblenden lassen wenn jemand einen solchen Artikel in den V
erkaufsauftrag einträgt, also in die Form 46.
Wie kriege ich das am besten hin?
Zuletzt geändert von Beowulf am 25. Februar 2009 11:43, insgesamt 1-mal geändert.

Re: Warnmeldung einblenden

24. Februar 2009 12:52

Das müsste doch dann die Sales Line sein.

Im onValidate der Artikelnr. holst du dir mit GET den Artikel und prüfst ob das boolsche Feld gesetzt ist. Danach kommt eine Message- oder eine Error-Box.

Mehr ist das doch eigentlich nicht.

Re: Warnmeldung einblenden

25. Februar 2009 10:09

Das ist mir leider etwas zu ungenau, da ich nicht so viel Erfahrung habe.
Könnte man das etwas genauer erklären?

Re: Warnmeldung einblenden

25. Februar 2009 10:40

Sebastian Pfliegel hat geschrieben:Das müsste doch dann die Sales Line sein.

Im onValidate der Artikelnr. holst du dir mit GET den Artikel und prüfst ob das boolsche Feld gesetzt ist. Danach kommt eine Message- oder eine Error-Box.

Mehr ist das doch eigentlich nicht.


Code:
If Type = 2 Then Begin
   IF NOT item.GET("No.") Then CLEAR(item); //Item = Variable Record Tabelle 27
   If item.booleanfeld = True Then
      MESSAGE('gefunden');
END;


mfg Michael

Re: Warnmeldung einblenden

25. Februar 2009 10:45

Du gehst in die entsprechende Tabelle (ich vermute bei dir Sales Line). Im onInsert und im onValidate von dem Feld "No." (dort werden ja die ganzen Primärfelder der referenzierten Tabellen dargestellt) schreibst du in etwa das:
Code:
IF Type = Type::Item THEN BEGIN
  Item.GET("No.");
  IF Item.BOOLSCHESFELD = TRUE THEN
    MESSAGE("Artikel nicht vollständig!");
END;

Warum onInsert und onValidate? Naja, wenn du eine Verkaufszeile anlegst kannst du den Typ und die Nr. eingeben, und du kannst sie nachträglich ändern. Die Fehlermeldung sollte natürlich nur ausgegeben werden, wenn der Typ auf Artikel gesetzt wurde.

EDIT: Schon wieder zu langsam :-P . Naja ich habs noch ein bisschen ausführlicher :)

Re: Warnmeldung einblenden

25. Februar 2009 11:06

Soweit Ok, aber er sagt mir immer GET wäre eine unbekannte Variable.

PS: OnValidate() hab ich gefunden, aber OnInsert nicht, hätte noch OnBeforeInput, OnInputChange und OnAfterInput.

Re: Warnmeldung einblenden

25. Februar 2009 11:32

onInsert ist Tabellen-Global. Das ganze befindet sich unter dem Documentation-Trigger.
Du darfst natürlich nicht einfach Item.Get schreiben. Item muss eine definierte Variable des Typs Record sein, mit Subtype Item.

Re: Warnmeldung einblenden

25. Februar 2009 11:43

OK, habs jetzt drin und es funktioniert. Danke nochmal.

Code:
IF Type = Type::Item THEN BEGIN
  Item.GET("No.");
  IF Item."Informationen unvollständig" = TRUE THEN
    MESSAGE('Artikel Informationen nicht vollständig! Bei '+"No."+'.');
END;

Re: [Gelöst] Warnmeldung einblenden

25. Februar 2009 13:04

Würde es nicht reichen, den Artikel solange einfach auf gesperrt zu setzen?

Re: [Gelöst] Warnmeldung einblenden

25. Februar 2009 13:08

Theoretisch ja, aber ein gesperrter Artikel kann nicht angeboten werden. Und damit wir dem Kunden wenigstens ein Angebot erstellen können, auch wenn noch Daten fehlen, haben wir das so gelöst.