hi,
ok got it this Way
Code: Select all | Expand
XBROWSE oBrwDBF COLUMNS ColsNumber( DBSTRUCT() ) SIZE nWidth - 20, nHeight - 90 PIXEL OF oWnd ;
FONT oFontDefault ;
COLOR BFcolor, BGcolor ;
ALIAS cAlias CELL LINES NOBORDER FASTEDIT AUTOCOLS
FUNCTION ColsNumber(aDbfStruct)
LOCAL aStruc := SP_aDbfStruct() // Array from Picklist
LOCAL ii, iMax, nPosi
LOCAL aRet := {}
iMax := LEN( aStruc )
FOR ii := 1 TO iMax
nPosi := ASCAN(aDbfStruct,{|x| x[DBS_NAME] = aStruc[ii][DBS_NAME] } )
IF nPosi > 0
AADD(aRet, nPosi)
ENDIF
NEXT
RETURN aRet
so it must be a Array which Function return
---
when use "reduce" FIELDs in XBROWSE and call
it will open Form which include all FIELDs of DBF
how can i change to edit only FIELD that i define ?
---
i have try again Option FIELDS
@ 50, 2 XBROWSE oBrwDBF FIELDS Struc2Array( cAlias )
@ 50, 2 XBROWSE oBrwDBF FIELDS Struc2String( cAlias )
Code: Select all | Expand
STATIC FUNCTION Struc2String( cAlias )
LOCAL aStruc := SP_aDbfStruct()
LOCAL ii, iMax, cField, cRet := ""
iMax := LEN( aStruc )
FOR ii := 1 TO iMax
cField := aStruc[ ii ] [ DBS_NAME ]
// cRet += CHR( 34 ) + cField + CHR( 34 )
cRet += "'" + cAlias + "->" + cField + "'"
// cRet += cAlias +"->"+ cField
IF ii <> iMax
cRet += ", "
ENDIF
NEXT
RETURN cRet
Code: Select all | Expand
STATIC FUNCTION Struc2Array( cAlias )
LOCAL aStruc := SP_aDbfStruct()
LOCAL ii, iMax, cField, aRet := {}
iMax := LEN( aStruc )
FOR ii := 1 TO iMax
cField := aStruc[ ii ] [ DBS_NAME ]
AADD( aRet, cField )
NEXT
RETURN aRet
both show all FIELDs of DBF + 1 "extra" Column ...
so how will it work right when use FIELDS and a Function
![Idea :idea:](./images/smilies/icon_idea.gif)