machmal glaub ich einfach nicht was Xbase++ so macht.
Also ich hab ein ganz einfaches numerisches Feld und das will ich
zu einem String machen. Eigendlich keine Problem und doch knallt
er weg wegen STR() ???
oError:args :
-> VALTYPE: C VALUE:
-> VALTYPE: N VALUE: 12
oError:canDefault : N
oError:canRetry : N
oError:canSubstitute: J
oError:cargo : NIL
oError:description : Parameter hat falschen Typ
oError:filename :
oError:genCode : 2
oError:operation : str
oError:osCode : 0
oError:severity : 2
oError:subCode : 1025
oError:subSystem : BASE
oError:thread : 1
oError:tries : 0
Code: Alles auswählen
...
// diese funktionieren
REPLACE ZOLLINET->Z35A WITH IF(EMPTY(ZOLLIPOS->Z35A)
,"",STRTRAN(STR(ZOLLIPOS->Z35A,11,1),".",","))
REPLACE ZOLLINET->Z38A WITH IF(EMPTY(ZOLLIPOS->Z38A)
,"",STRTRAN(STR(ZOLLIPOS->Z38A,11,1),".",","))
ALTD()
// so ab hier geht es los, vorher läuft STR() wie gewohnt
// das geht NICHT
* REPLACE ZOLLINET->Z37N WITH IF(EMPTY(ZOLLIPOS->Z37N) ,"",STR(ZOLLINET->Z37N,12) )
// so geht es
IF EMPTY(ZOLLIPOS->Z37N)
yyy := ""
ELSE
xxx := ZOLLIPOS->Z37N
yyy := STR(xxx,12)
ENDIF
REPLACE ZOLLINET->Z37N WITH yyy
// das geht NICHT
* REPLACE ZOLLINET->Z37O WITH IF(EMPTY(ZOLLIPOS->Z37O) ,"", STR(ZOLLINET->Z37O,13) )
// so geht es
IF EMPTY(ZOLLIPOS->Z37O)
yyy := ""
ELSE
xxx := ZOLLIPOS->Z37O
yyy := STR(xxx,13)
ENDIF
REPLACE ZOLLINET->Z37O WITH yyy
...
ich weiss es ist kaum zu glauben aber es ist reproduzierbar.
Ich hab "vor" den beiden und "dahinter" die selbe Konstruktion und alle
ausser den beiden funktionieren ... dabei ist das Problem erst "plötzlich"
aufgetaucht nachdem die die Source erweitert habe (aber nicht an dem
Modul)
die ZOLLIPOS hat 38 Felder und die ZOLLINET 146 wobei es das 118
bzw 119 Feld ist was Probleme macht ...
mal sehen was Alaska dazu sagt ...
gruss by OHR
Jimmy