Muchas gracias amigo René, esto era lo que buscaba, imaginaba que se
hacía de esta forma , valiendose del OnPosEdit e indicándole que saltara
a la siguiente columna, pero como en otros browses que he utilizado con
FiveWin (como el de M.Mercado o el propio Grid de CanalFive) la cosa era
mucho más sencilla, pues pensaba que me estaba complicando la vida y que
habría alguna forma mas elegante de hacerlo.
Abrazos, amigo.
1000y1.
Rene Flores escribió:
> emilio:
>
> Y lo hago así, en el evento postedit de cada columna:
>
> WITH OBJECT ::oArrayBrowse1
> :SetArray(::aMovs,{"Cuenta","Concepto","Debe","Haber"})
> WITH OBJECT :aCols[1]
> :cPicture := "@R 9999-9999-9999-9999"
> :nWidth := 120
> :OnDrawCell := {|oSender,cText, nClrText,nClrPane| nClrPane :=
> IIF(oSender:oParent:nArrayAt%2 == 0,RGB(254,241,171),RGB(251,255,166))
> ,.T.}
> :nEditType := beGet
> :OnPostEdit := {|oSender,xValue|
> ::oArrayBrowse1:aArrayData[::oArrayBrowse1:nArrayAt,1] := xValue,;
>
> ::oArrayBrowse1:aArrayData[::oArrayBrowse1:nArrayAt,1] :=
> ::ChkCuenta(xValue),;
>
> IIF(::oArrayBrowse1:aArrayData[::oArrayBrowse1:nArrayAt,1] <>
> "0000000000000000" ,::oArrayBrowse1:GoRight(),::oArrayBrowse1:aCols[1]:Edit())}
>
> END
> WITH OBJECT :aCols[2]
> :cPicture := REPLICATE("!",30)
> :cFooter := "Sumas Iguales:"
> :nWidth := 230
> :OnDrawCell := {|oSender,cText, nClrText,nClrPane| nClrPane :=
> IIF(oSender:oParent:nArrayAt%2 == 0,RGB(254,241,171),RGB(251,255,166))
> ,.T.}
> :nEditType := beGET
> :OnEdit := {|oSender,xValue| xValue :=
> ::oArrayBrowse1:aArrayData[::oArrayBrowse1:nArrayAt,5] }
> :OnPostEdit := {|oSender, xValue|
> ::oArrayBrowse1:aArrayData[::oArrayBrowse1:nArrayAt,5] :=
> xValue,::oArrayBrowse1:GoRight()}
> END
> WITH OBJECT :aCols[3]
> :cPicture := "999,999,999.99"
> :nWidth := 95
> :cFooter := TRANSFORM(::aMovs[1,3],"999,999,999.99")
> :OnDrawCell := {|oSender,cText, nClrText,nClrPane| nClrPane :=
> IIF(oSender:oParent:nArrayAt%2 == 0,RGB(254,241,171),RGB(251,255,166))
> ,.T.}
> :nEditType := beGET
> :OnPostEdit := {|oSender, xValue|
> ::oArrayBrowse1:aArrayData[::oArrayBrowse1:nArrayAt,3]:= xValue ,
> ::oArrayBrowse1:GoRight()}
> END
> WITH OBJECT :aCols[4]
> :cPicture := "999,999,999.99"
> :cFooter := TRANSFORM(::aMovs[1,4],"999,999,999.99")
> :nWidth := 95
> :OnDrawCell := {|oSender,cText, nClrText,nClrPane| nClrPane :=
> IIF(oSender:oParent:nArrayAt%2 == 0,RGB(254,241,171),RGB(251,255,166))
> ,.T.}
> :nEditType := beGET
> :OnPostEdit := {|oSender,xValue|
> ::oArrayBrowse1:aArrayData[::oArrayBrowse1:nArrayAt,4] := xValue,;
> IIF(::oArrayBrowse1:nArrayAt
> ==
> LEN(::oArrayBrowse1:aArrayData),(::InsertRiow(::oArrayBrowse 1)),(::oArrayBrowse1:GoDown(),::oArrayBrowse1:GoLeftMost())) }
>
> END
> WITH OBJECT :aCols[5]
> :lVisible := .F.
> END
> END WITH
>
> Saludos
>
> Rene Flores
>
http://www.ciber-tec.com
>
> gil escribió:
>
>> Alguien me podría facilitar un pequeño ejemplo de edición de
>> ArrayBrowse en el que al pulsar Tab/Intro la edición pase a la
>> siguiente columna y que al llegar a la ultima columna esta misma
>> acción situe el foco en la primera columna de la siguiente fila.
>>
>> Anticipadamente gracias,
>> Emilio Gil.
>>
>