Página 1 de 1

ArrayBrowse en Edición

Publicado: Lun Abr 24, 2006 12:07 pm
por emilio gil[1]
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.

ArrayBrowse en Edición

Publicado: Lun Abr 24, 2006 10:47 pm
por Rene Flores
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.
>

ArrayBrowse en Edición

Publicado: Mar Abr 25, 2006 1:48 pm
por emilio gil[1]
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.
>>
>