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.

Ayuda con Browse

Foro público de Xailer en español
Responder
correo
Mensajes: 109
Registrado: Mar Nov 22, 2005 7:15 pm

Ayuda con Browse

Mensaje por correo »

Tengo un browse oDbBrowse cuyo dataset es una Base de datos de la clase
tSQLQuery .
Bien .
La base de datos es el resultado de hacer una select previa que "escoge" un
CENTRO y CODPERSON especificos
Lo hago con un metodo
METHOD SetPrgAgen(nCentro,nCodPer) CLASS TProgAge
with object ::oDbfProg
:lUpdLinked(.f.)
:Close()
:cSelect :="Select * from [PROGAGE] WHERE CENTRO = "+str(nCentro,4)+"
and CODPERSON = "+str(nCodPer,3)
:Open()
:lUpdLinked(.t.)
end with
::oDbBrowse:oDataSet:=::oDbfProg
retu nil
Esto funciona perfectamente .Ah los datos ya vienen ordenados por el campo
CENTRO + CODPERSON + HORAI
Debo hacer una edición en linea de los datos .
Para ello me creo un método Add como sigue
METHOD Add( oSender,lRepetir ) CLASS TProgAge
::nAlta := 1
with object ::otSQLProg
:lUpdLinked(.f.)
:AddNew()
:CENTRO := ::oCentro:Value
:CODPERSON := ::oDbfPrf:CODPERSON
:LUN := "S"
:MAR := "S"
:MIE := "S"
:JUE := "S"
:VIE := "S"
:SAB := "N"
:DOM := "N"
:FECHAI := ctod(" - - ")
:FECHAF := ctod(" - - ")
:COLOR := 0
:TAREA := 0
:HORAI :=" : "
:Update()
:lUpdLinked(.t.)
end with
::oDbBRowse:GoBottom()
::oDbBrowse:Edit()
retu nil
Todo va Ok
1º Crea un registro
2º Inicializa los campos como se indica
3º Graba los datos
4º Como el registro queda al final ,fuerzo el foco en el último registro y
lo edito
El problema es que al salir de la edición , el registro se queda al final y
no se "recoloca" hasta que ejecuto el método SetPrgAgen
He probado a colocarlo debajo de la última linea ( ::oDbBrowse:Edit() )
pero compruebo que el flujo de la aplicación no se corta mientras se ejecuta
el edit() .¿Como puedo incorporar la instrucción ?
Lo he intentado en el OnPostEdit() del Browse pero se ejecuta antes de la
grabación física del registro y necesito hacerlo después de la grabación
Gracias y espero que se me entienda.
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9462
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Ayuda con Browse

Mensaje por ignacio »

Juan Jose,
Introduzca la cláusula 'ORDER BY' en su instrucción SELECT.
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Juan José García" <correo@jjgsoft.biz> escribió en el mensaje
news:462cd526$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Tengo un browse oDbBrowse cuyo dataset es una Base de datos de la clase
> tSQLQuery .
> Bien .
> La base de datos es el resultado de hacer una select previa que "escoge"
> un CENTRO y CODPERSON especificos
> Lo hago con un metodo
>
> METHOD SetPrgAgen(nCentro,nCodPer) CLASS TProgAge
>
> with object ::oDbfProg
> :lUpdLinked(.f.)
> :Close()
> :cSelect :="Select * from [PROGAGE] WHERE CENTRO = "+str(nCentro,4)+"
> and CODPERSON = "+str(nCodPer,3)
> :Open()
> :lUpdLinked(.t.)
> end with
> ::oDbBrowse:oDataSet:=::oDbfProg
> retu nil
>
> Esto funciona perfectamente .Ah los datos ya vienen ordenados por el campo
> CENTRO + CODPERSON + HORAI
>
> Debo hacer una edición en linea de los datos .
> Para ello me creo un método Add como sigue
>
> METHOD Add( oSender,lRepetir ) CLASS TProgAge
> ::nAlta := 1
> with object ::otSQLProg
> :lUpdLinked(.f.)
> :AddNew()
> :CENTRO := ::oCentro:Value
> :CODPERSON := ::oDbfPrf:CODPERSON
> :LUN := "S"
> :MAR := "S"
> :MIE := "S"
> :JUE := "S"
> :VIE := "S"
> :SAB := "N"
> :DOM := "N"
> :FECHAI := ctod(" - - ")
> :FECHAF := ctod(" - - ")
> :COLOR := 0
> :TAREA := 0
> :HORAI :=" : "
> :Update()
> :lUpdLinked(.t.)
> end with
> ::oDbBRowse:GoBottom()
> ::oDbBrowse:Edit()
> retu nil
> Todo va Ok
> 1º Crea un registro
> 2º Inicializa los campos como se indica
> 3º Graba los datos
> 4º Como el registro queda al final ,fuerzo el foco en el último registro y
> lo edito
>
> El problema es que al salir de la edición , el registro se queda al final
> y no se "recoloca" hasta que ejecuto el método SetPrgAgen
> He probado a colocarlo debajo de la última linea ( ::oDbBrowse:Edit() )
> pero compruebo que el flujo de la aplicación no se corta mientras se
> ejecuta el edit() .¿Como puedo incorporar la instrucción ?
>
> Lo he intentado en el OnPostEdit() del Browse pero se ejecuta antes de la
> grabación física del registro y necesito hacerlo después de la grabación
>
> Gracias y espero que se me entienda.
>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Responder