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
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.
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
Cierre formulario
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
> 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
Cierre formulario
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
>
>
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
>
>
Cierre formulario
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
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
Cierre formulario
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
>
>
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
>
>
Cierre formulario
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
> 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
Cierre formulario
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
>
>
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
>
>