CODE DATA Type [gelöst]

30. März 2009 14:18

Hallo,

ich habe ein Frage zum Datentyp Code.
Code:
IF A[1] = '9' THEN ...
führt zu einen Internal Error.

Mir ist schon irgendwie bewusst, dass im CODE-Datatyp alles in Großbuchstaben ist.
Meine Frage wäre, wie man das am besten lösen kann?
Gibt es eine Möglichkeit den Integer-Wert des Characters herauszubekommen, dann könnte ich es direkt mit dem Wert 9 vergleichen?
Ich würde mich sehr über eure Hilfe freuen.
Vielen Dank

Alex
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von NAVGATOR am 30. März 2009 16:06, insgesamt 1-mal geändert.

Re: CODE DATA Type

30. März 2009 15:01

Hmm .. ich hab zwar kein Nav4, aber bei mir geht deine Abfrage ... hast du da irgendwas Exotisches bei deinen Variablen?

Re: CODE DATA Type

30. März 2009 15:35

Vorläufig habe ich das Problem gelöst, aber es passiert halt einfach nichts in meiner CODEUNIT : ich vermute dass irgendwie ein TRUE-Zweig nicht erreicht wird.
Hintergrund des ganzen: Die Vertriebszuständigkeiten haben sich bei uns sehr geändert und diese sollen nun in allen Debitoren verändert werden. Dazu wurden zweistellige Gebietscodes für den 9er PLZ Bereich eingeführt .
Meine Idee ist: von der Postleitzahl die ersten zwei Characters abschneiden und in einen Gebietscode überführen, aber leider verändert sich kein einziger Gebietscode.

Code:
IF Debitor.FINDFIRST THEN BEGIN
 
 REPEAT
  IF Debitor."Country Code" = 'DE' THEN BEGIN
    PLZ:=Debitor."Post Code";
    Gebietscode:=LOWERCASE(PostleitzahlzuGB(PLZ));
    firstChar:=Gebietscode[1];


 
        IF firstChar = '9'  THEN BEGIN
           Gebietscode:=UPPERCASE(Gebietscode);
           //Debitor.VALIDATE("Territory Code", Gebietscode);
           Debitor.INIT;
           Debitor."Territory Code":=Gebietscode;
           Debitor.MODIFY;     
         END;
   END;

 
 UNTIL
 
  Debitor.NEXT=0;
    MESSAGE(text001);

 END;

PostleitzahlzuGB(Postleitzahl : Code[10]) GB : Code[2]
  i:=1;

WHILE i<3 DO BEGIN
  GB[i]:=Postleitzahl[i];
  i:=i+1;
  END;

EXIT(GB);

Re: CODE DATA Type

30. März 2009 15:48

Der Sinn des Lowercase und des folgenden Uppercase ist mir schleierhaft, zumal dich doch eh nur Zahlen interessieren.

Raus müsste das Debitor.init, und statt deiner Funktion hättest du auch einfach Gebietscode:=copystr(PLZ,1,2) schreiben können.

Sonst sehe ich auf die Schnelle nix Schlimmes ...

Re: CODE DATA Type

30. März 2009 16:05

Hat funktioniert ( allerdings meine Funktion anscheinend nicht :lol: )

Vielen Dank!