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.

Cierre formulario

Foro público de Xailer en español
Responder
Paco V
Mensajes: 380
Registrado: Jue Oct 27, 2005 9:08 am

Cierre formulario

Mensaje por Paco V »

Con objeto de realizar un proceso automático en unas Bases de Datos he creado
un Formulario. LLamo al formulario, realiza el proceso automático, pero se
me queda abierto el formulario.
¿Como puedo hacer que se cierre solito al terminar el proceso?.
Gracias
Paco V
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Cierre formulario

Mensaje por jfgimenez »

Paco,
> Con objeto de realizar un proceso automático en unas Bases de Datos he
> creado
> un Formulario. LLamo al formulario, realiza el proceso automático, pero se
> me queda abierto el formulario.
>
> ¿Como puedo hacer que se cierre solito al terminar el proceso?.
Llama a ::Close() al terminar
--
Un saludo,
José F. Giménez
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Paco V
Mensajes: 380
Registrado: Jue Oct 27, 2005 9:08 am

Cierre formulario

Mensaje por Paco V »

Jose:
Con ::close() se me queda abierto.
Lo llamo con:
METHOD oButton25click( oSender ) CLASS TForm00
CARGAPEA():NEW( application ):show()
Application:Run()
RETURN Nil
Y el form es asi:
/*
* Proyecto: AGESME
* Fichero: CARGAPEA.prg
* Descripción:Carga Automática de Pernoctaciones de Base Datos General(PERNOBA)
* A Base de Datos Parcial(PERNOLOC)
* Autor: Paco
* Fecha: 20/04/2006
*/
#include "Xailer.ch"
CLASS CARGAPEA FROM TForm
COMPONENT oCdxDataSource1
COMPONENT oDbfDataSet1
COMPONENT oCdxDataSource2
COMPONENT oDbfDataSet2
COMPONENT oMessageBox1
METHOD CreateForm()
METHOD CARGA( oSender )
ENDCLASS
#include "CARGAPEA.xfm"
//---------------------------------------------------------- --------------------
METHOD CARGA( oSender ) CLASS CARGAPEA
local dia1, dia2
if APPDATA:NivelOp < "90"
msginfo("SU NIVEL DE AUTORIZACIÓN NO PERMITE ESTA OPERACIÓN")
RETURN NIL
ENDIF
if MsgYesNo( "¿Está seguro de querer Realizar la Carga Automática de Datos
de Pernoctaciones?" )
::oDbfDataSet1:OrdSetFocus( 2 )
set century on
dia1 := substr(dtoc(date()+6),7,4)+substr(dtoc(date()+6),3,4)+substr (dtoc(date()+6),1,2)
dia2 := substr(dtoc(date()+7),7,4)+substr(dtoc(date()+7),3,4)+substr (dtoc(date()+7),1,2)
set century off
MSGINFO("CARGO LAS PERNOCTACIONES DESDE EL: "+DIA1+" HASTA EL: "+DIA2)
::oDBFdataSet1:Seek( dia1)
do while ::oDbfDataSet1:FTOMA < dia2
if ::oDbfDataSet1:SITUA == " "
::oDbfDataSet2:AddNew()
::oDbfDataSet2:CIUDAD := ::oDbfDataSet1:CIUDAD
::oDbfDataSet2:Update()
::oDbfDataSet1:EDIT()
::oDbfDataSet1:SITUA := "1"
::oDbfDataSet1:Update()
endif
::oDbfDataSet1:skip()
enddo
endif
::close()
RETURN Nil
//---------------------------------------------------------- --------------------
"Jose F. Gimenez" <jfgimenez@wanadoo.es> wrote:
>Paco,
>
>> Con objeto de realizar un proceso automático en unas Bases de Datos he
>> creado
>> un Formulario. LLamo al formulario, realiza el proceso automático, pero
se
>> me queda abierto el formulario.
>>
>> ¿Como puedo hacer que se cierre solito al terminar el proceso?.
>
>Llama a ::Close() al terminar
>
>--
>Un saludo,
>
>José F. Giménez
>
>
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Cierre formulario

Mensaje por jfgimenez »

Paco,
1) La llamada a Application:Run() no creo que sea procedente. En general
sólo debe haber una, que es la que aparece en la función Main() y que genera
automáticamente Xailer.
2) ¿Quién o qué evento llama al método Carga()?
--
Un saludo,
José F. Giménez
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Paco V
Mensajes: 380
Registrado: Jue Oct 27, 2005 9:08 am

Cierre formulario

Mensaje por Paco V »

Jose:
Llamo a Carga en el evento onInitialize del formulario.
Paco
"Jose F. Gimenez" <jfgimenez@wanadoo.es> wrote:
>Paco,
>
>1) La llamada a Application:Run() no creo que sea procedente. En general
>sólo debe haber una, que es la que aparece en la función Main() y que genera
>automáticamente Xailer.
>
>2) ¿Quién o qué evento llama al método Carga()?
>
>--
>Un saludo,
>
>José F. Giménez
>
>
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Cierre formulario

Mensaje por jfgimenez »

Paco,
> Llamo a Carga en el evento onInitialize del formulario.
ese es el problema. El evento OnInitialize se dispara antes incluso de que
se muestre el formulario, por lo tanto se está ejecutando ::Close() antes
del :Show(). Resultado, ::Close() no hace nada y después se muestra.
La solución en este caso es muy fácil. Modifica el método desde donde lo
estás llamando así:
METHOD oButton25click( oSender ) CLASS TForm00
WITH OBJECT CARGAPEA():NEW( application )
:show()
:Carga()
:Close()
END
RETURN Nil
Y quita la llamada a ::Close() del método Carga()
--
Un saludo,
José F. Giménez
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Paco V
Mensajes: 380
Registrado: Jue Oct 27, 2005 9:08 am

Cierre formulario

Mensaje por Paco V »

Muchas Gracias Jose. OK
Paco V
"Jose F. Gimenez" <jfgimenez@wanadoo.es> wrote:
>Paco,
>
>> Llamo a Carga en el evento onInitialize del formulario.
>
>ese es el problema. El evento OnInitialize se dispara antes incluso de que
>se muestre el formulario, por lo tanto se está ejecutando ::Close() antes
>del :Show(). Resultado, ::Close() no hace nada y después se muestra.
>
>La solución en este caso es muy fácil. Modifica el método desde donde lo
>estás llamando así:
>
>METHOD oButton25click( oSender ) CLASS TForm00
> WITH OBJECT CARGAPEA():NEW( application )
> :show()
> :Carga()
> :Close()
> END
>RETURN Nil
>
>Y quita la llamada a ::Close() del método Carga()
>
>--
>Un saludo,
>
>José F. Giménez
>
>
Responder