[GELÖST] Wo liegt der Fehler?

12. Februar 2010 10:15

Bei der Eingabe von Kundenbestellungen in der Form 46 soll eine Fehlermedlung erscheinen, sobald der Artikel eingegeben wird.
Geprüft wird das Feld "Drawing (Model)" (Textfeld mit max. 30 Zeichen) auf der Artikelkarte. Die Fehlermeldung soll kommen, wenn in dem
Feld nichts drin steht, also eigentlich ''. Aber irgendwas mache ich falsch, denn es funktioniert nicht.

Code:
IF Type = Type::Item THEN BEGIN
  Item.GET("No.");
  IF Item."Drawing (Model)" <> ''  THEN
    MESSAGE('Modelle fehlen! Bei '+"No."+'.');
END;
Zuletzt geändert von Beowulf am 12. Februar 2010 12:30, insgesamt 3-mal geändert.

Re: Wo liegt der Fehler?

12. Februar 2010 10:22

Fehlermeldung soll kommen, wenn in dem Feld nichts drin steht

Wenn du statt dem <> ein = verwendet, wird auch das ausgeführt, was du willst ;-)

Du kannst übrigens auch mit TESTFIELD arbeiten:

Code:
IF Type = Type::Item THEN BEGIN
  Item.GET("No.");
  Item.TESTFIELD("Drawing (Model)");
END;


Ergibt dann aber eine Fehlermeldung und nicht "nur" eine Message.

Re: Wo liegt der Fehler?

12. Februar 2010 10:23

Dann versuch es doch mal mit "=" anstatt "<>".

Bei deinem aktuellen Code sollte die Meldung kommen, wenn das Feld gefüllt ist.
Evtl. macht es auch Sinn mit ERROR(...) oder TESTFIELD() anstatt mit MESSAGE(...) zu arbeiten.

Re: Wo liegt der Fehler?

12. Februar 2010 11:05

Fehler meinerseite, ursprünglich hatte ich ein "=" drin, das "<>" hatte ich nur mal rein um zu testen ob sie wenigsten kommt, wenn was drin steht.
Aber es passiert weder bei "=" noch bei "<>" was.

Einen ähnlichen Code verwende ich beim Angebot, dort wird aber ein boolsches Feld abgerufen, und da funktioniert es:
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;

Wenn ich diesen Code in der Bestellung einbaue funktiniert er auch, aber eben der andere nicht.

Beide liegen im Cal/Code bei "UpdateForm(SetSaveRecord : Boolean)". (In jeweils einer anderen Form)

Re: Wo liegt der Fehler?

12. Februar 2010 11:13

Wieso realisierst du das ganze nicht im OnValidate-Trigger des Feldes "No." direkt in Tabelle 37?

Re: Wo liegt der Fehler?

12. Februar 2010 11:17

Gute Frage :-D
Hab ich jetzt auch so gemacht, funktioniert . Danke

Re: Wo liegt der Fehler?

12. Februar 2010 11:20

In welchem Trigger prüfst du das? Vielleicht springt er ja nicht in den "IF Type = Type::Item", da er zu diesem Zeitpunkt den Datensatz nicht geschrieben hat.