![]() |
wie wird aus einem Mapping '_1', '1' ein '1' bei der Antwort bzw. wie lese es aus?
Hallo Ihr Lieben,
ich kommuniziere mit einem BiPro konformen Webservice und erhalte als Antwort CT_VertragsauskunftResponse ( ![]() Die Zahlart oder auch der Status werden als '1' oder ähnliches geliefert. In der aus der WDSL erzeugten Pas findet ein Mapping statt:
Code:
und
ST_Vertragsstatus = (
_1, _2, _3, _4, _5, _6, _7, _8, _9, _A, _B );
Code:
Ich verstehe nicht, wie ich jetzt den Wert auslesen kann. Lasse ich mir im Debbuger den Vertragsstatus anzeigen, wird '_1' gezeigt. Ich würde das Ganze gerne in eine Integer Variable lesen, aber wie? Ich stelle mich zu dusselig an.
RemClassRegistry.RegisterXSInfo(TypeInfo(ST_Vertragsstatus), 'http://www.bipro.net/namespace/datentypen', 'ST_Vertragsstatus');
RemClassRegistry.RegisterExternalPropName(TypeInfo(ST_Vertragsstatus), '_1', '1'); RemClassRegistry.RegisterExternalPropName(TypeInfo(ST_Vertragsstatus), '_2', '2'); RemClassRegistry.RegisterExternalPropName(TypeInfo(ST_Vertragsstatus), '_3', '3'); RemClassRegistry.RegisterExternalPropName(TypeInfo(ST_Vertragsstatus), '_4', '4'); RemClassRegistry.RegisterExternalPropName(TypeInfo(ST_Vertragsstatus), '_5', '5'); RemClassRegistry.RegisterExternalPropName(TypeInfo(ST_Vertragsstatus), '_6', '6'); RemClassRegistry.RegisterExternalPropName(TypeInfo(ST_Vertragsstatus), '_7', '7'); RemClassRegistry.RegisterExternalPropName(TypeInfo(ST_Vertragsstatus), '_8', '8'); RemClassRegistry.RegisterExternalPropName(TypeInfo(ST_Vertragsstatus), '_9', '9'); |
AW: wie wird aus einem Mapping '_1', '1' ein '1' bei der Antwort bzw. wie lese es au
Das Mapping kommt erstmal wegen dem ENUM, da "1" kein gültiger Bezeichner ist. (Bezeichner fangen niemals mit Ziffern an)
Und wie willst du die Strings "A" oder "B" in Integer umwandeln? Gut, du könntest ja einfach den führende "_" entfernen und StrToInt verwenden, aber bei "_A" oder "_B" hilft das auch nicht viel, da das keine Zahlen sind. Wenn du unbedingt einen Integer willst, dann wandle besser den ENUM um und nicht die Namen der enthaltenen Werte.
Delphi-Quellcode:
Alternativ via RTTI die Werte des ENUM umwandeln lassen, also
var
E: ST_Vertragsstatus; i: Integer; E := ST_Vertragsstatus(i); i := Ord(E); ![]() ![]() ENUMs fangen bei 0 an, also wäre jetzt
Code:
Aber das liese sich über einen Offset lösen.
_1 = 0
_2 = 1 ... _9 = 8 _A = 9 ...
Delphi-Quellcode:
E := ST_Vertragsstatus(i - 1);
i := Ord(E) + 1;
Code:
_1 = 1
_2 = 2 ... _9 = 9 _A = 10 ... |
AW: wie wird aus einem Mapping '_1', '1' ein '1' bei der Antwort bzw. wie lese es au
Erstmal vielen Dank für Deine Hilfe.
Ja, Du hast Recht, Integer ist keine gute Wahl wegen dem A und dem B. Ich probiere mal Zitat:
Dankeschön, Samashy |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz