ADT Feldname im Programm ändern

Advantage Database Server

Moderator: Moderatoren

Antworten
wibo050447
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 26
Registriert: Di, 22. Jul 2008 18:27

ADT Feldname im Programm ändern

Beitrag von wibo050447 »

Hallo bin nach längere Zeit mal wieder da.

Habe folgendes Problem.

Ich möchte in einem Program auf Feldname Daten schreiben wie folgt

oSrv:Menge_2021 der nächste Datensatz soll aber in z.B. oSrv:Menge_2020 schreiben
Da aber Daten von 2000 bis 2021 vorliegen würde ich gerne den Feldname im Programm entsprechend vorgeben wie z.B.
cJahr := 2020

oSrv:"MENGE_"+String(cJahr) <<< Kann mir hier einer Helfen bekomme das nicht hin

Das sollte dann oSrv:MENGE_2020 sein

Im voraus besten Dank
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: ADT Feldname im Programm ändern

Beitrag von Tom »

Wenn cJahr := 2020 ist (also ohne Anführungszeichen), dann wäre zwecks nachvollziehbarer Notation "nJahr" sinnvoller, denn das ist numerisch. Abseits hiervon:

Code: Alles auswählen

oSrv:"MENGE_"+Str(cJahr,4,0)
sollte den Job tun. Wie das Feld dann angefasst wird, ist eine andere Sache.
Herzlich,
Tom
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: ADT Feldname im Programm ändern

Beitrag von Marcus Herz »

oSrv:"MENGE_"+Str(cJahr,4,0)
Bist du dir Sicher? Bei mir funktioniert das nie.
entweder mit

Code: Alles auswählen

oSrv:fieldget("MENGE_"+Str(cJahr,4,0))
oder Makro

Code: Alles auswählen

oSrv:&("MENGE_"+Str(cJahr,4,0))
Verrat mir den Trick
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
wibo050447
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 26
Registriert: Di, 22. Jul 2008 18:27

Re: ADT Feldname im Programm ändern

Beitrag von wibo050447 »

Hallo Danke an euch zwei

das hat nicht funktioniert
oSrv:"MENGE_"+Str(cJahr,4,0)

dies auch nicht
oSrv:fieldget("MENGE_"+Str(cJahr,4,0))

nur dies oDbf_2:&("MENGE_"+AllTrim(s_Jahr)) := oDbf_1:MENGE

s_jahr ist schon z.B 2021
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: ADT Feldname im Programm ändern

Beitrag von Marcus Herz »

Shitt, in original xbase will fieldget die Feldposition, hab ich bei mir überschieben also

Code: Alles auswählen

srv:fieldget(osrv:fieldpos("menge"+str(njahr,4,0))
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Antworten