In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

ArrayBrowse en Edición

Foro de Xailer profesional en español
Responder
emilio gil[1]
Mensajes: 16
Registrado: Jue Abr 06, 2006 6:22 pm

ArrayBrowse en Edición

Mensaje 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.
Rene Flores
Mensajes: 620
Registrado: Jue Mar 23, 2006 2:39 am

ArrayBrowse en Edición

Mensaje 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.
>
emilio gil[1]
Mensajes: 16
Registrado: Jue Abr 06, 2006 6:22 pm

ArrayBrowse en Edición

Mensaje 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.
>>
>
Responder