Array und Adresse formatieren

21. September 2006 15:54

Hallo,
ich habe folgendes Problem:
in unserem System gibt es eine Codeunit "Adresse formatieren"
Jetzt kommt es vor, das wenn im Packzettel ein "An Lieferort" zu viele
Zeichen hat, eine Fehlermeldung "Überlauf der Typenkonvertierung" kommt.
Im Debugger bleibe ich immer an der Zeile der Adressformatierung hängen.
Ich vermute ich muss nur einen Dimension korrigieren, finde aber die Stelle
nicht.

Hat jemand ne Idee

Vielen Dank
Max

21. September 2006 16:18

Habt Ihr denn eine Feldlänge im Packzettel verändert?
Wenn ja, musst du dafür sorgen, dass auch die Feldlänge des Arrays in der Adressformatierung entsprechend groß ist.

21. September 2006 20:45

Ja ich glaube die Feldlänge wurde mal geändert. Es kommt nur selten zu dem Fehler, weil wenige Ort so lange Namen haben.
Das mit den Arrays hab ich mir schon gedacht. Ich habe aber nicht die Stelle gefunden, wo ich das vergleichen bzw. ändern kann.
Da der Debugger immer in der Codeunit hängen bleibt, hab ich dort gesucht. Aber eben nicht die Stelle gefunden. So sieht das Ganze aus:
FormatAdr2(AdrArray,Name,Name2,Kontaktperson,Adr,Adr2,Ort,PLZahl,Bundesregion,LandCode,Beleganr)

Gruß Max

21. September 2006 21:29

Am besten gehst du von dem "fehlerhaften" Report aus bis zur Adressformatierung (sollte eigentlich kein Aufruf dazwischen liegen) und sichtest alle Variablen und vor allem deren Längendefinition inkl. der Ziel-Arrays.

Zu beachten ist dabei, dass das Zielarray sowohl im Report als auch in der Formatierungsfunktion und ggf. in dazwischen liegendem Code definiert ist.
Die Längen müssen halt überall >= Quellfeld sein.

In deinem Fall wird es evtl. das Array nicht betreffen, sondern den Parameter "Ort" in FormatAdr2() der zu klein dimensioniert ist.

Fehler in Übergabeparametern werden vom Debugger (meistens) mit einem Stop im Funktionskopf ausgeworfen.