Fehler beim Einlesen eines Feldes

27. März 2009 16:54

Hallo, brauche mal wieder ein wenig Hilfe.
Habe eine neue Tabelle angelegt mit den Feldern Prämientyp(als Schlüsselfeld) und das Optionfeld Logistiker Code.
Diese Tabelle soll nun in Tabelle 246 ausgewertet werden. Dazu muss der Prämientyp in der Tabelle 246 gelesen werden, damit in die neue Tabelle gegengen werden und der Logistiker Code ausgegeben werden. Der Logistiker Code wir dann als Logistiker Code in der Tabelle 246 vorbelegt. Aber es klappt irgenwie nicht und ich weiss nicht wo mein Fehler liegt (vermutlich beim Einlesen des Prämientyps) Hier ist mein erstellter Code. Danke im Voraus für die Hilfe.


Code:
IF xRec.Prämientyp <> Prämientyp THEN BEGIN
  LogisticanCodeSetup.SETRANGE(LogisticanCodeSetup.Prämientyp,Prämientyp);
  IF LogisticanCodeSetup.FIND('-') THEN
    "Logistican Code" := LogisticanCodeSetup."Logistican Code"
END;


Wo liegt der Fehler ?
Zuletzt geändert von Kowa am 27. März 2009 17:20, insgesamt 2-mal geändert.
Grund: Edit : Bitte Codetags benutzen. Gruß, Kai

Re: Fehler beim Einlesen eines Feldes

29. März 2009 01:47

Wo steht das denn? Form/Report/Tabelle/Sonstwo?

Wenn es nicht in der Tabelle steht, sondern zB einer Form und dort im OnValidate des Feldes Prämientyp, fehlt nur das modify. Allerdings stünde es besser im OnValidate des Feldes in der Tabelle.

Und wenn Prämientyp der komplette Primärschlüssel deiner neuen Tabelle ist, kannst du dir mit einem get etwas Getippe sparen:
Code:
IF ((xRec.Prämientyp <> Prämientyp) AND (LogisticanCodeSetup.GET(Prämientyp))) THEN
  "Logistican Code" := LogisticanCodeSetup."Logistican Code";

Das taugt allerdings nur, falls der Prämientyp immer gefunden wird. Wenn nicht, bleibt der alte Logistiker Code stehen. Aber das ist in der Vorlage ja nicht besser :wink:

Steht der Code schon im OnValidate (des Feldes in) der Tabelle, fehlt schätzungsweise das Validate auf das Feld.

Ob man das Ganze nicht lieber gleich über ein Flowfield löst? ;)