Problem mit dem Validate

30. Januar 2007 10:39

Hallo,

ich habe in den Verkaufszeilen ein eigenes Feld "Kunde Artikelnummer", nach der Eingabe der Kunden-Artikelnummer wird diese korrekt Validiert, so das das Feld "Nr." auch Validiert wird.
(Das klappt alles so wie es soll)

Künftig möchte ich es so haben, das wenn der Artikel gesperrt ist, Automatisch der Nachfolgeartikel (ein neues Feld in der Tabelle Artikel) eingefügt wird.

Das klappt aber nur begenzt.
Im Feld "Nr." erscheint die korrekte Artikelnummer, nur nicht im Feld "Kunde Artikelnummer".
Obwohl der Wert dem Feld zugewiesen wurde.

Was mach ich falsch?
Gruß Mikka

30. Januar 2007 10:44

Mit Quelltext ließe sich das leichter nachvollziehen ;-)

Könnte es evtl. an einem fehlenden CurrForm.UPDATE liegen?

30. Januar 2007 10:51

Hallo mikka,

Wie hast du denn den Wert zugewiesen? Du musst den Validate-Trigger auslösen beim füllen des Feldes, so in der Art:

Code:
Record.VALIDATE(Feldname, NeuerWert);


Liegt es ev. da daran?

30. Januar 2007 12:23

@Roger
Den Wert habe ich zugewiesen!
Folgendes führe ich aus (In einer Funktion der Tabelle Verkaufszeile):
Code:
VALIDATE("Kunde Artikelnummer",lr_Artikel1."Kunde Artikelnummer");

Damit wird das Feld "Kunde Artikelnummer" Validiert. Auf dem Trigger (von dem Feld "Kunde Artikelnummer") ist ein weiteres VALIDATE, das das Feld "Nr." in der gleichen Tabelle Validiert.
Das Komische ist daran, das das Feld "Nr." den Korrekten Wert bekommt und das Feld "Kunde Artikelnummer" nicht.

@Natalie
Ein CurrForm.UPDATE geht nicht, da ich die Artikelprüfung direkt in der Tabelle ausführe!
Aber du hast mich auf eine Idee gebracht, dieses auf der Form auszuprobieren.

Gruß Mikka

30. Januar 2007 12:57

Und wenn Du ein MODIFY nach dem VALIDATE einfügst? Also auf der Tabelle Artikel?

30. Januar 2007 13:14

Das mit dem MODIFY könnte passen.

Auf der Form würde ich nach Möglichkeit nichts entwickeln. Der Ansatz auf der Tabelle ist der Beste. Im Zusammenhang mit Version 5 hört und liest man verschiedentlich, dass auf den Forms in Zukunft kein, oder nur noch wenig Code hinterlegt werden kann. Das gibt dann entsprechenden Aufwand bei Migrationen.
Zuletzt geändert von rotsch am 30. Januar 2007 13:20, insgesamt 1-mal geändert.

30. Januar 2007 13:17

rotsch, da gebe ich dir auch völlig recht.
Nur in manchen Anwendungen ist es so, dass in den Tabellen gerechnet wird, aber die Form noch alte Daten anzeigt, wenn man nicht direkt drüberscrollt.

30. Januar 2007 14:33

Mit dem Code auf Tabellen stimme ich auch zu.

Das mit dem MODIFY hatte ich bereits Probiert, schläg aber fehl, da die Verkaufszeile noch nicht komplett gefüllt ist, es fehlt die Zeilennummer!
Nach einer Weile ist mir Aufgefallen, das ich einen Insert machen muss :oops:

Ich habe es jetzt Probehalber auf der Form probiert, und siehe da es Funktioniert. Jetzt will ich aber gerne wissen warum, da ich das auf der Tabelle Programmieren möchte?
(Ich hoffe ich konnte es Verständlich Formulieren)
Code:
 PSEUDOCODE
-->Eingeben der Kunden-Nr (in der Form)
  -->Validate "Kunde Artikelnummer" (Es wird die Nr. gesucht und per Validate eingefügt)
    -->Validate "Nr."  (Hier wird geprüft, ob der Artikel gesperrt ist, wenn ja Funktion ausführen)
      GESPERRT= JA
        -->Funktion (Einfügen des Nachfolgeartikels per Validate)
          -->Validate "Kunde Artikelnummer"  (Es wird die Nr. gesucht und per Validate eingefügt)
            -->Validate "Nr."  (Hier wird geprüft, ob der Artikel gesperrt ist, wenn ja Funktion ausführen)
            GESPERRT=Nein
              -->Das Programm führt den Standardcode aus und kehrt zur Form zurück

Gruß Mikka