by mastintin » Thu Apr 16, 2015 6:55 am
¡¡Perfecto Sr.Rao !!!. Gracias.
Respecto al comportamiento creo que está bien que no permita editar por defecto pero deberiamos implementar un comando EDIT .
Mi propuesta para no mover casi el codigo es que el parametro lFastEdit pase a ser nEdit ...
nEdit := 0 -> no editable
nEdit:= 1 -> lFastEdit:= .t.
nEdit:= 2 -> editable
comandos a usar EDIT AND FASTEDIT seria algo asi :
# xcommand XBROWSER [<uData>] ;
[ TITLE <cTitle> ] ;
[ <autosort:AUTOSORT> ] ;
[ SETUP <fnSetUp> ] ;
[ COLUMNS <aCols,...> ] ;
[ SELECT <fnSelect> ] ;
[ <excel: CALC> ];
[ FASTEDIT] [ <nEdit: 1> ] ;
[ EDIT ] [ <nEdit: 2> ] ;
[ VALID <uValid> ] ;
[ [SHOW] <sl: RECID,SLNUM> ] ;
=> ;
XBrowse( [<uData>], [<cTitle>], [<.autosort.>], ;
[\{|oBrw|<fnSetUp>\}], [\{<aCols>\}], ;
[\{|oBrw,oCol|<fnSelect>\}],!<.excel.>, <nEdit>, [\{|oBrw|<uValid>\}], <(sl)> )
cambios en codigo de xbrowser ...
function XBrowse( uData, cTitle, lAutoSort, bSetUp, aCols, bSelect, lExcel, nEdit, ;
bValid, cSerial )
DEFAULT nEdit:= 0
.......
line 117+-
XBrwSetDataSource( oBrw, uData, lAddCols, lAutoSort, aCols ) // function in XBrowse.Prg
AEval( oBrw:aCols, { |o| If( o:cDataType == 'L', o:SetCheck(), nil ) } )
if nEdit == 1
oBrw:lFastEdit := .t.
AEval( oBrw:aCols, { |o| o:nEditType := 1 } )
elseif nEdit == 2
oBrw:bDataRow := { |o,c,l| TDataRow():New( o:uDataSource, c, l ) }
endif
......
Todo esto esta planteado al vuelo , como idea, no está probado ya que ahora mismo no estoy sobre el ordenador ...