Page 1 of 1

xbrowse - SetArray

Posted: Sun Dec 30, 2007 9:11 pm
by nageswaragunupudi
Now, SetArray method resets all columns already defined if any ( ::aCols := {} ). If we use the new command set provided for xbrowse like this :

Code: Select all

function xbrindialog( alin )
local odlg, obrw

	define dialog odlg size 640,440 pixel

	@ 10,10 xbrowse obrw ;
		fields str(alin[obrw:narrayat][1],2), ;
				 alin[obrw:narrayat][2], ;
				 alin[obrw:narrayat][3]  ;
		headers 'cod','description','cd' ;
		size 300,200 pixel of odlg
        // at this stage the columns are arleady defined
	obrw:setarray(alin)  // now setarray erases all the column defs

	obrw:createfromcode()
	activate dialog odlg centered

	return nil
If the following change is made in SetArray method to automatically define the columns only if the columns are not already defined, the above code works as expected. The suggested change is

Code: Select all

if empty( ::acols )  // NEW
    ::aCols := {}
    for nFor := 1 to len( aData[ 1 ] )
         < ........... code ......... >
   next
endif  // NEW 
With this change the above code works well