Hi All,
ich muss eine alte SW REST-Full machen. Die Daten in JSON wandeln.
Habe mich durch zig Foren und Beitäge gewühlt und festgestellt, daß alle bloß Klassen serialisieren.
Mit Infos zu Records sieht es recht mau aus. Oder ich habe falsch gefragt
habe aber u.a. in:
https://github.com/RRUZ/blog/tree/ma...xplorer%20Lite ein nettes Prog gefunden um diverse
Rtti anzuzeigen.
Mein Problem ist jetzt bei diesen beiden Strukturen (und vielen anderen mehr)
Delphi-Quellcode:
D_DatRecTyp = RECORD
D_BuildStr : BuildStr; {hier neu seit A006}
D_AbtlDabei : D_AbtlDabeiTyp;
D_AbtlZuord : D_AbtlZuordTyp;
D_InstDabei : D_InstDabeiTyp;
D_InstKenn : D_InstKennTyp; {0 = allgemein, 1 Med.Inst}
D_InstZuord : D_InstZuordTyp;
D_FallDabei : D_FallDabeiTyp;
D_FallZuord : D_FallZuordTyp; {dummy ?}
D_AbtlFall : D_AbtlFallTyp;
D_FreigabeF : D_FreigabeFTyp;
D_FreigabeI : D_FreigabeITyp;
D_RepFreiAb : D_RepFreiAbTyp;
D_AnschafM : D_AbtlDrealTyp; {alle MVZ neu seit A005}
D_InvestiM : D_AbtlDrealTyp;
D_InstndM : D_AbtlDrealTyp;
D_VerwaltM : D_AbtlDrealTyp;
D_LebensmM : D_AbtlDrealTyp;
D_TechnikM : D_AbtlDrealTyp;
D_MVZ_EignPaAntNormal : D_AbtlDrealTyp;
D_MVZ_EignPaZusErlNorm: D_AbtlDrealTyp;
D_MVZ_EignPaAntWahl : D_AbtlDrealTyp;
D_MVZ_EignPaZusErlWahl: D_AbtlDrealTyp;
D_MVZ_EignPaVersTage : D_AbtlDrealTyp;
D_MVZ_FrmdPaAntNormal : D_AbtlDrealTyp;
D_MVZ_FrmdPaZusErlNorm: D_AbtlDrealTyp;
D_MVZ_FrmdPaAntWahl : D_AbtlDrealTyp;
D_MVZ_FrmdPaZusErlWahl: D_AbtlDrealTyp;
D_MVZ_FrmdPaVersTage : D_AbtlDrealTyp;
D_ArztMinM : D_AbtlDrealTyp;
{Achtung! hier wird was reingerechent, entspricht B-Dat aber PerUNabhängig }
D_KPIBasisW : BasisWFld; {die Basiswerte zum Punkte ermitteltn }
D_KPIPunkte : KPIPktFld; {die daraus resultierenden Punkte }
D_SSkPktSum : SSkSumFld; {Hier steht die Summe aller SoftSkillPunkte}
END; {of D_DatRecTyp}
Delphi-Quellcode:
{Entscheidungsdaten ---------------------------------------------------------- }
EInvAltFldTyp = ARRAY[InvAlternTyp] OF BOOLEAN;
EInstRecTyp = RECORD
InvAlt : EInvAltFldTyp;
OutSourc : BOOLEAN;
DienstlE : LONGINT;
dummy : REAL; {für ev einheiten in real}
DienstlP : REAL;
END;
EInstFldTyp = ARRAY[InstTypD] OF EInstRecTyp;
ENutzRecTyp = RECORD
UmwZi : SMALLINT;
ErwZi : SMALLINT;
BettErl : REAL;
END;
ENutzFldTyp = ARRAY[AbtlTypD,StatTypD] OF ENutzRecTyp;
EPersRecTyp = RECORD
Einst : WORD;
Entla : WORD;
Train : WORD; {tage}
NebKo : REAL;
END;
EPersFldTyp = ARRAY[AbtlTypD,DienstATyp] OF EPersRecTyp; {einstel, entl usw}
EVersetzung = ARRAY[AbtlTypD,AbtlTypD] OF WORD; {interne versetzung}
EFinaRecTyp = RECORD
KrdKurz : REAL; {eventuell ein ARRAY mit Aufzähltyp}
KrdLang : REAL;
Dividen : REAL;
WpKauf : REAL;
dummy : REAL;
END;
EGenFldTyp = ARRAY[GenEntTyp] OF REAL;
E_Pg3Typ = RECORD
PersEntFld: EPersFldTyp;
Versetzung: EVersetzung;
PNebKoInst: REAL;
END;
E_Pg5Typ = RECORD {A004}
EGenFld : EGenFldTyp;
CodDienst: BOOLEAN;
END;
E_DatRecTyp = RECORD
E_BuildStr: BuildStr; {hier neu seit A006}
E_Pg0 : FallVertFldTyp;
E_Pg1 : EInstFldTyp;
E_Pg2 : ENutzFldTyp;
E_Pg3 : E_Pg3Typ;
E_Pg4 : EFinaRecTyp;
E_Pg5 : E_Pg5Typ; {A004}
END; {of E_DatRecTyp}
das Folgende:
Den Typ E_DatRecTyp bekomme ich angezeigt, den Typ D_DatRecTyp aber NICHT.
Emit runtime type information ist true und mir ist nicht klar, wo der Unterschied zu suchen ist???
Die beiden Definitionen stehen in der
Unit, in der alles definiert ist, direkt hintereinander.
Und das Ganze ist im Interfaceteil nach "type" zu finden.
Vieleicht hat jemand einen Tip
Charly