Arrays und Tbrowse [erledigt]

Zugriff, Engines, Konvertierung. Von ADS über DBF bis zu SQL.

Moderator: Moderatoren

Antworten
Benutzeravatar
messing
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 216
Registriert: Mi, 13. Jan 2010 9:42
Wohnort: Lauterbach / Hessen

Arrays und Tbrowse [erledigt]

Beitrag von messing »

Servus,

habe ein zweidim. Array!

Läßt sich der Spaltenaufbau in einer FOR NEXT Schleife reallisieren / automatisch an die vorhandenen Spalten?

Code: Alles auswählen

for x=1 to len(aArray[1])
oTbrowse:AddColumn ( TBColumn():new(  "Spalte "+Alltrim(str(x)), {|| aArray[nRecno,x] } ) )
next
So bekomme ich eine Fehlermeldung.
bei

Code: Alles auswählen

oTbrowse:AddColumn ( TBColumn():new(  "Spalte "+Alltrim(str(x)), {|| aArray[nRecno,1] } ) )
gibt es keine Fehlermeldung.
sobald ich hinter nRecno das x aus der FOR NEXT Schleife einsetze gibt es einen Fehler bei der Arrayindizierung.
Zuletzt geändert von messing am Mi, 07. Mär 2012 12:03, insgesamt 1-mal geändert.
Gruß
Bruno
Messing
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12913
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: Arrays und Tbrowse

Beitrag von AUGE_OHR »

messing hat geschrieben:

Code: Alles auswählen

for x=1 to len(aArray[1])
oTbrowse:AddColumn ( TBColumn():new(  "Spalte "+Alltrim(str(x)), {|| aArray[nRecno,x] } ) )
next
ich tippe mal auf das "bekannte" Codeblock Problem ... du muss es zur Laufzeit "auflösen" ...

btw. erzeuge zuerst das Columne Object und versehe es mit den Eigenschaften (String->Codeblock) vor dem :AddColumn ( oCol )
gruss by OHR
Jimmy
CRT
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 123
Registriert: Mo, 18. Aug 2008 9:33
Wohnort: Kärnten / Österreich
Hat sich bedankt: 10 Mal
Danksagung erhalten: 2 Mal
Kontaktdaten:

Re: Arrays und Tbrowse

Beitrag von CRT »

versuche x als PRIVATE zu deklarieren
Zeiterfassung . Zutrittskontrolle
www.CRT-software.com
:wav:
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9394
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 104 Mal
Danksagung erhalten: 364 Mal
Kontaktdaten:

Re: Arrays und Tbrowse

Beitrag von Tom »

versuche x als PRIVATE zu deklarieren
Das hülfe nichts. x steht in dem Moment, in dem der Codeblock der Column evaluiert wird, auf Len(aArray)+1. Deshalb gibt es einen "Fehler bei der Arrayindizierung". Alle Spalten zeigen auf dieselbe Arrayspalte, nämlich eine, die es nicht gibt.

So - in etwa - funktioniert es (ungetestet, mag noch ein Syntaxfehler drin sein):

Code: Alles auswählen

bColBlock := &("{||aArray[nRecNo,"+Trim(Str(x))+"]}")
oTbrowse:AddColumn ( TBColumn():new(  "Spalte "+Alltrim(str(x)), bColBlock ) )
Dadurch enhält der Codeblock den zur Iterationszeit richtigen Wert von "x", da der Codeblock über den Makroexpander aus dem Text zusammengesetzt wird, der nicht mehr auf "x" verweist, sondern "x" auflöst.

Edit: "nRecNo" muss hierfür PRIVATE sein oder analog zu "x" behandelt werden. Sonst knallt es mit "unbekannte Variable".
Herzlich,
Tom
Antworten