hi,
saul hat geschrieben:
Mein Problem ist, das ich nicht weiß wie die Zeile aussieht um ein Array als Spalte anzuzeigen.
Code: Alles auswählen
oTBColumn := TBColumn():new( "Heading", FieldBlock("name") )
erzeugt eine Spalte in Tbrowse() für ein Feld einer Datenbank.
Wie heißt diese Zeile bei einem Array welches ich mit anzeigen lassen möchte?
siehe dir mal die Beispiele :
C:\ALASKA\XPPW32\SOURCE\samples\basics\GuiBrow\FBROWSE.prg
C:\ALASKA\XPPW32\SOURCE\samples\basics\GuiBrow\EBROWSE.prg
an. Das sind Browser mit Arrays.
Ok die sind GUI, aber das Prinzip mit Arrays ist das selbe.
Code: Alles auswählen
// das geht NICHT so !
FOR i:=1 TO anzdat
oTBColumn:= tbcolumn():new("Info Nr.",{|| afiles[i,F_NAME]})
tausw : AddColumn( oTBColumn )
NEXT
Dein 1st. Problem ist das dein Codeblock "so" nicht stimmt. Das "
i"
(war vorher "n" ) in deinem Codeblock {|| afiles[
i,F_NAME]}
stimmt nicht zur Laufzeit sondern hat "immer" den Wert "anzdat".
Code: Alles auswählen
FOR i:=1 TO anzdat
oCol := tbcolumn():new()
oCol:heading := "Info Nr."
bBlock := "{|| afiles["+ STR(i) + ",F_NAME]}"
oCol:block := &bBlock
tausw : AddColumn( oCol )
NEXT
nun aber zu deinem 2nd. "Problem" : Du hast keinen "passenden" Array
"Skipper" den der "normale" von TBrowse ist ja für DBF mit SKIP etc ...
Code: Alles auswählen
:skipBlock := {| nSkip | - np+(np := MAX(1,MIN(LEN(aArray),np+nSkip)))}
:goTopBlock := {|| np := 1}
:goBottomBlock := {|| np := LEN(aArray)}
:posBlock := {|| np}
:phyPosBlock := {|| np}
:lastPosBlock := {|| LEN(aArray)}
:firstPosBlock := {|| 1}
Dieses wäre nun ein 1-Dim Skipper. "np" ist also der "bewegliche" Teil
und entspricht sowas wie RECNO() bei DBF zum navigieren im Browse.