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.

Utilizar variables Publicas

Foro de Xailer profesional en español
Responder
PILO
Mensajes: 583
Registrado: Vie Jul 06, 2007 5:18 pm

Utilizar variables Publicas

Mensaje por PILO »

Hola otra pregunta para alguien grupo:
quiero utilizar unas variables para todo los formularios y programas que
estoy haciendo, yo la pongo en el main así
PUBLIC TNOMBRE := SPACE(35)
PUBLIC TEXPLO := SPACE(1)
PUBLIC TANO := 0
PUBLIC VALEURO := 166.386
PUBLIC TIPO := "A"
PUBLIC TCUPOMADRE := 0
PUBLIC NTIPO := SPACE(30)
PUBLIC FECHAACTUAL := DATE()
Es esto correcto o hay que hacerlo de otro forma
las variables las asigno un valor en determinado momento y pueden cambiar
cuando
yo lo quiera, ya que me habren las bases de datos que tengo que utilizar
"tnombre" es el nombre de la dbf
ssi-quita-esto
Mensajes: 109
Registrado: Mié Dic 05, 2007 9:51 am

Utilizar variables Publicas

Mensaje por ssi-quita-esto »

Pilo:
Creo que tienes que utilizar APPDATA, para que se vea por toda la
aplicación.
Paco V
"PILO" <srmpilo@hotmail.com> escribió en el mensaje
news:[email=45699bfa@news.xailer.com...]45699bfa@news.xailer.com...[/email]
> Hola otra pregunta para alguien grupo:
> quiero utilizar unas variables para todo los formularios y programas que
> estoy haciendo, yo la pongo en el main así
> PUBLIC TNOMBRE := SPACE(35)
> PUBLIC TEXPLO := SPACE(1)
> PUBLIC TANO := 0
> PUBLIC VALEURO := 166.386
> PUBLIC TIPO := "A"
> PUBLIC TCUPOMADRE := 0
> PUBLIC NTIPO := SPACE(30)
> PUBLIC FECHAACTUAL := DATE()
>
> Es esto correcto o hay que hacerlo de otro forma
> las variables las asigno un valor en determinado momento y pueden cambiar
> cuando
> yo lo quiera, ya que me habren las bases de datos que tengo que utilizar
> "tnombre" es el nombre de la dbf
>
>
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Utilizar variables Publicas

Mensaje por jfgimenez »

PILO,
> Hola otra pregunta para alguien grupo:
> quiero utilizar unas variables para todo los formularios y programas que
> estoy haciendo, yo la pongo en el main así
> PUBLIC TNOMBRE := SPACE(35)
> PUBLIC TEXPLO := SPACE(1)
> PUBLIC TANO := 0
> PUBLIC VALEURO := 166.386
> PUBLIC TIPO := "A"
> PUBLIC TCUPOMADRE := 0
> PUBLIC NTIPO := SPACE(30)
> PUBLIC FECHAACTUAL := DATE()
>
> Es esto correcto o hay que hacerlo de otro forma
> las variables las asigno un valor en determinado momento y pueden cambiar
> cuando
> yo lo quiera, ya que me habren las bases de datos que tengo que utilizar
> "tnombre" es el nombre de la dbf
Sí, esto tiene que funcionar. Pero deberías declarar todas esas variables
como MEMVAR en todos y cada uno de los módulos donde las vayas a utilizar, o
de lo contrario te aparecerán 'warnings' al compilar.
También puedes meter todos los comandos MEMVAR dentro de un fichero .ch y
usarlo (con #include) en todos los módulos; así, si después añades alguna
variable, sólo tienes que modificar el fichero .ch
--
Un saludo,
José F. Giménez
http://www.xailer.com
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
PILO
Mensajes: 583
Registrado: Vie Jul 06, 2007 5:18 pm

Utilizar variables Publicas

Mensaje por PILO »

Un pequeño ejemplo de donde se pondria
Gracias
PILO
Mensajes: 583
Registrado: Vie Jul 06, 2007 5:18 pm

Utilizar variables Publicas

Mensaje por PILO »

Un pequeño ejemplo de lo del include por favor
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Utilizar variables Publicas

Mensaje por jfgimenez »

PILO,
> Un pequeño ejemplo de lo del include por favor
Sólo tienes que crear un fichero .ch (una buena idea es usar el mismo nombre
del proyecto con extensión .ch, pongamos como ejemplo MiPrograma) y poner
líneas del tipo:
MEMVAR TNOMBRE
MEMVAR TEXPLO
MEMVAR TANO
MEMVAR VALEURO
...
Y después, en cada .prg sólo tienes que poner la línea:
#include "MiPrograma.ch"
justo después de la línea #include "Xailer.ch"
--
Un saludo,
José F. Giménez
http://www.xailer.com
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
PILO
Mensajes: 583
Registrado: Vie Jul 06, 2007 5:18 pm

Utilizar variables Publicas

Mensaje por PILO »

"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:456a12bd$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> PILO,
>
>> Un pequeño ejemplo de lo del include por favor
>
> Sólo tienes que crear un fichero .ch (una buena idea es usar el mismo
> nombre del proyecto con extensión .ch, pongamos como ejemplo MiPrograma) y
> poner líneas del tipo:
>
> MEMVAR TNOMBRE
> MEMVAR TEXPLO
> MEMVAR TANO
> MEMVAR VALEURO
las tengo que poner en algun sitio com PUBLIC o APPDATA
para utilizarlas
Y gracias de antemano
> ...
>
> Y después, en cada .prg sólo tienes que poner la línea:
>
> #include "MiPrograma.ch"
>
> justo después de la línea #include "Xailer.ch"
>
> --
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
>
Martin del Angel[1]
Mensajes: 114
Registrado: Dom Dic 18, 2005 7:50 pm

Utilizar variables Publicas

Mensaje por Martin del Angel[1] »

Hola !
El Pasado mes de Junio tome el Curso de Xailer en Mexico con el Maestro Rene
Flores, nos paso un proyecto completo donde utiliza Variables publicas en
archivos Include
el cual al compilarse no marca ningun error, ningun warning.
Tengo un programa donde utilizo la misma tecnica y a mi si me marca errores
de warnings al compilar, no entiendo si hago la mismo que Rene Flores.
tengo un archivo .inc. en cual muestro algunas lineas de este.
Dymsa.ch
#DEFINE ALIAS_RETIROS aPublics[15]
#DEFINE ALIAS_VENTASTASACERO aPublics[16]
#DEFINE ALIAS_EDITAVENDET aPublics[17]
#DEFINE ALIAS_VENDET aPublics[18]
#DEFINE ALIAS_VENCAB aPublics[19]
#DEFINE ALIAS_MVBACB aPublics[20]
#DEFINE ALIAS_MOVSINV aPublics[21]
#DEFINE ALIAS_CAJPAGTMP aPublics[22]
Tengo el Programa principal donde inicializo la variable public aPUBLICS
REQUEST HB_LANG_ES
PUBLIC aPublics := ARRAY(23)
PUBLIC aSucursales:=ARRAY(18)
El archivo include lo agrego en cada programa donde vaya a utilizar estas
variables
ejemplo en el programa PolizaContado.prg agrego Dymsa.ch
#include "Xailer.ch"
#Include 'Dymsa.ch'
#include 'Ado.ch'
#include "REPORT.CH"
y la hora de compilar me salen warnings.
el programa de Rene Flores cuando se compila no marca ningun warning
Porque , si utililo la misma tecnica que Rene utiliza ?
Rene no utiliza MEMVAR
Gracias!
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Utilizar variables Publicas

Mensaje por jfgimenez »

PILO,
>> Sólo tienes que crear un fichero .ch (una buena idea es usar el mismo
>> nombre del proyecto con extensión .ch, pongamos como ejemplo MiPrograma)
>> y poner líneas del tipo:
>>
>> MEMVAR TNOMBRE
>> MEMVAR TEXPLO
>> MEMVAR TANO
>> MEMVAR VALEURO
> las tengo que poner en algun sitio com PUBLIC o APPDATA
> para utilizarlas
Como PUBLIC, tal y como lo habías puesto antes en el ejemplo.
--
Un saludo,
José F. Giménez
http://www.xailer.com
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Utilizar variables Publicas

Mensaje por jfgimenez »

Martin,
> el programa de Rene Flores cuando se compila no marca ningun warning
>
>
> Porque , si utililo la misma tecnica que Rene utiliza ?
>
> Rene no utiliza MEMVAR
Sí tiene que usarlo en algún sitio, salvo que haya anulado los warnings al
compilar ("Nivel de avisos"=0 en las propiedades del proyecto), lo que
desaconsejo completamente. Revísalo bien, porque tiene que estar; ahora
bien, al usar arrays para contener los valores, la única declaración MEMVAR
necesaria es la del array, no de los elementos.
--
Un saludo,
José F. Giménez
http://www.xailer.com
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Francisco Sanchez
Mensajes: 532
Registrado: Mié Feb 09, 2005 6:20 pm

Utilizar variables Publicas

Mensaje por Francisco Sanchez »

Te recomendaria crear una clase con tantas datas como variables publicas
necesites e instanciar esta clase con el Appdata.
Un saludo
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:456ab0e0$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> PILO,
>
>>> Sólo tienes que crear un fichero .ch (una buena idea es usar el mismo
>>> nombre del proyecto con extensión .ch, pongamos como ejemplo MiPrograma)
>>> y poner líneas del tipo:
>>>
>>> MEMVAR TNOMBRE
>>> MEMVAR TEXPLO
>>> MEMVAR TANO
>>> MEMVAR VALEURO
>> las tengo que poner en algun sitio com PUBLIC o APPDATA
>> para utilizarlas
>
> Como PUBLIC, tal y como lo habías puesto antes en el ejemplo.
>
> --
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
>
PILO
Mensajes: 583
Registrado: Vie Jul 06, 2007 5:18 pm

Utilizar variables Publicas

Mensaje por PILO »

Francisco me puede poner un pequeño ejemplo, soy un gran novato en esto y
muchas cosas no entiendo lo que se dice
Gracais de antemano
Francisco Sanchez
Mensajes: 532
Registrado: Mié Feb 09, 2005 6:20 pm

Utilizar variables Publicas

Mensaje por Francisco Sanchez »

CLASS MisPublicas
DATA varpublica1
DATA varpublica2
DATA varpublica3
METHOD New() CONSTRUCTOR
METHOD End()
ENDCLASS
//--//
METHOD New() CLASS MisPublicas
::varpublica1 := "valor1"
::varpublica2 := "valor2"
::varpublica3 := "valor3"
RETURN SELF
//--//
METHOD End() CLASS MisPublicas
::varpublica1 := NIL
::varpublica2 := NIL
::varpublica3 := NIL
RETURN NIL
//--//
Despues lo llamas asi :
#include "Xailer.ch"
Procedure Main()
Application:cTitle := "TUAPLICACION"
Application:oIcon := "TUICONO"
Load_Main()
Application:Run()
Return
//-//
procedure Load_Main()
AppData:AddData( "oPublicas", MisPublicas():New( ) )
RETURN
//--//
Despues lo utilizas asi alla donde necesites acceder a cualquiera de las
datas de esa clase :
msginfo( Appdata:oPublicas:varpublica1 )
msginfo( Appdata:oPublicas:varpublica2 )
msginfo( Appdata:oPublicas:varpublica3 )
esto te mostraria en los correspondientes msginfo el valor que contienen
cada una de esas datas que puedes cambiar en cualquier momento de la
ejecucion de la aplicacion :
Appdata:oPublicas:varpublica1 := "nuevovalor1"
Appdata:oPublicas:varpublica2 := "nuevovalor2"
Appdata:oPublicas:varpublica3 := "nuevovalor3"
Bueno espero no haberme equivocado mucho en esta explicacion que ya es tarde
y hoy estoy muy cansado, espero haberte ayudado.
Un saludo
Rolando
Mensajes: 191
Registrado: Lun May 08, 2006 2:10 pm

Utilizar variables Publicas

Mensaje por Rolando »

Hola:
Estoy viendo que se estan enrollando y la cuestion es mucho mas
sencilla, AppData es una clase hecha para albergar varibles publicas con lo
cual lo expuesto anteriormente resulta redundante y se puede resumir de la
siguiente manera: en el evento OnInitialize de TForm1 ubicamos lo siguiente:
METHOD FormInitialize( oSender ) CLASS TForm1
AppData:AddData( "VarPublica1", ValorInicial )
AppData:AddData( "VarPublica2", ValorInicial )
AppData:AddData( "VarPublica3", ValorInicial )
RETURN Nil
Para utilizarlo en cualquier lugar del programa:
LOCAL VarLocal := AppData:VarPublica1
Y para cambiar el valor:
AppData:VarPublica1 := NuevoValor
Un saludo.
"FRANCISCO SANCHEZ" <francisco@softwaretotal.biz> escribió en el mensaje
news:456b4b00$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> CLASS MisPublicas
>
> DATA varpublica1
> DATA varpublica2
> DATA varpublica3
>
> METHOD New() CONSTRUCTOR
> METHOD End()
>
> ENDCLASS
> //--//
> METHOD New() CLASS MisPublicas
>
> ::varpublica1 := "valor1"
> ::varpublica2 := "valor2"
> ::varpublica3 := "valor3"
>
> RETURN SELF
> //--//
> METHOD End() CLASS MisPublicas
>
> ::varpublica1 := NIL
> ::varpublica2 := NIL
> ::varpublica3 := NIL
>
> RETURN NIL
> //--//
>
> Despues lo llamas asi :
>
> #include "Xailer.ch"
>
> Procedure Main()
>
> Application:cTitle := "TUAPLICACION"
> Application:oIcon := "TUICONO"
>
> Load_Main()
>
> Application:Run()
>
> Return
> //-//
> procedure Load_Main()
>
> AppData:AddData( "oPublicas", MisPublicas():New( ) )
>
> RETURN
> //--//
>
> Despues lo utilizas asi alla donde necesites acceder a cualquiera de las
> datas de esa clase :
>
> msginfo( Appdata:oPublicas:varpublica1 )
> msginfo( Appdata:oPublicas:varpublica2 )
> msginfo( Appdata:oPublicas:varpublica3 )
>
> esto te mostraria en los correspondientes msginfo el valor que contienen
> cada una de esas datas que puedes cambiar en cualquier momento de la
> ejecucion de la aplicacion :
>
> Appdata:oPublicas:varpublica1 := "nuevovalor1"
> Appdata:oPublicas:varpublica2 := "nuevovalor2"
> Appdata:oPublicas:varpublica3 := "nuevovalor3"
>
> Bueno espero no haberme equivocado mucho en esta explicacion que ya es
> tarde y hoy estoy muy cansado, espero haberte ayudado.
>
> Un saludo
>
PILO
Mensajes: 583
Registrado: Vie Jul 06, 2007 5:18 pm

Utilizar variables Publicas

Mensaje por PILO »

Rolando esto me parece mas sencillo que lo anterior y mas facil de
complimentar, muchas gracias
>
> METHOD FormInitialize( oSender ) CLASS TForm1
> AppData:AddData( "VarPublica1", ValorInicial )
> AppData:AddData( "VarPublica2", ValorInicial )
> AppData:AddData( "VarPublica3", ValorInicial )
> RETURN Nil
>
> Para utilizarlo en cualquier lugar del programa:
> LOCAL VarLocal := AppData:VarPublica1
>
> Y para cambiar el valor:
> AppData:VarPublica1 := NuevoValor
>
> Un saludo.
>
> "FRANCISCO SANCHEZ" <francisco@softwaretotal.biz> escribió en el mensaje
> news:456b4b00$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> CLASS MisPublicas
>>
>> DATA varpublica1
>> DATA varpublica2
>> DATA varpublica3
>>
>> METHOD New() CONSTRUCTOR
>> METHOD End()
>>
>> ENDCLASS
>> //--//
>> METHOD New() CLASS MisPublicas
>>
>> ::varpublica1 := "valor1"
>> ::varpublica2 := "valor2"
>> ::varpublica3 := "valor3"
>>
>> RETURN SELF
>> //--//
>> METHOD End() CLASS MisPublicas
>>
>> ::varpublica1 := NIL
>> ::varpublica2 := NIL
>> ::varpublica3 := NIL
>>
>> RETURN NIL
>> //--//
>>
>> Despues lo llamas asi :
>>
>> #include "Xailer.ch"
>>
>> Procedure Main()
>>
>> Application:cTitle := "TUAPLICACION"
>> Application:oIcon := "TUICONO"
>>
>> Load_Main()
>>
>> Application:Run()
>>
>> Return
>> //-//
>> procedure Load_Main()
>>
>> AppData:AddData( "oPublicas", MisPublicas():New( ) )
>>
>> RETURN
>> //--//
>>
>> Despues lo utilizas asi alla donde necesites acceder a cualquiera de las
>> datas de esa clase :
>>
>> msginfo( Appdata:oPublicas:varpublica1 )
>> msginfo( Appdata:oPublicas:varpublica2 )
>> msginfo( Appdata:oPublicas:varpublica3 )
>>
>> esto te mostraria en los correspondientes msginfo el valor que contienen
>> cada una de esas datas que puedes cambiar en cualquier momento de la
>> ejecucion de la aplicacion :
>>
>> Appdata:oPublicas:varpublica1 := "nuevovalor1"
>> Appdata:oPublicas:varpublica2 := "nuevovalor2"
>> Appdata:oPublicas:varpublica3 := "nuevovalor3"
>>
>> Bueno espero no haberme equivocado mucho en esta explicacion que ya es
>> tarde y hoy estoy muy cansado, espero haberte ayudado.
>>
>> Un saludo
>>
>
>
Responder