Ver la Versión Completa : [Duda] respecto a GLOBAL EXTERNAL
Socavi
6 de abril de 2022, 13:48
Tengo un problema al mover una variable declarada como GLOBAL EXTERNAL, con el mismo nombre y valor
En el programa A introduzco el valor " fecha" a la variable y llamo al programa B en el que al solicitar el valor de la veriable declarada en A, no me da ningun resultado.
Cómo hay que 'decíselo' ?:hincha:
fastpho
6 de abril de 2022, 16:25
Ejemplo para compartir variables entre programas . Declarar las variables en WORKING del mainform.
Program A
DATA-WORKING-STORAGE
01 PROCESO-FECHA IS EXTERNAL GLOBAL.
03 FED-DD PIC 99.
03 FED-MM PIC 99.
03 FED.
05 FED-SG PIC 99.
05 FED-AA PIC 99.
PROCEDURE DIVISION.
MOVE 06 TO FED-DD.
MOVE 04 TO FED-MM.
MOVE 20 TO FED-SG.
MOVE 22 TO FED-AA.
Program B
DATA-WORKING-STORAGE
01 PROCESO-FECHA IS EXTERNAL GLOBAL.
03 FED-DD PIC 99.
03 FED-MM PIC 99.
03 FED.
05 FED-SG PIC 99.
05 FED-AA PIC 99.
Opened del mainform
display "Fecha Proceso" , FED-DD , FED-MM , FED.
Saludos....
JCantero
6 de abril de 2022, 17:05
Yo en RM Cobol lo hago igual pero sin GLOBAL.
En los programas que declaro la variable external asi
01 codigo pic x(12) external.
tiene el mismo valor.
fastpho
6 de abril de 2022, 18:45
Hola @JCantero, la declaración GLOBAL es para poder usar esa variable en cualquier section del programa
Saludos.....
Socavi
6 de abril de 2022, 19:51
Muchas gracias, @fastpho y @JCantero, se pueden manejar estas variables con los tradicionales MOVE , para situarlas donde decidimos, o solo son visibles con el display ?
Mañana hare las pruebas necesarias para comprobar si las puedo manejar a mi necesidad o necesito un empujon mas.
fastpho
6 de abril de 2022, 19:55
Hola @Socavi, podes darle el uso como a cualquier variable declarada y usar las instrucciones o verbos que quieras .
Saludos ...
JCantero
6 de abril de 2022, 21:56
Hola @Socavi, podes darle el uso como a cualquier variable declarada y usar las instrucciones o verbos que quieras .
Saludos ...
Al tener el mismo nombre y misma dimensión es la misma variable en todo el programa y puedes utilizarla en cualquier sitio.
Yo por ejemplo las utilizo mucho para pasar información de un programa a otro sin utilizar parámetros entre programas. De esta forma puedes simular la "sobrecarga de funciones" que tienen lenguajes de programación avanzados y base de datos (c++, c#, java, postgressql [estos son los que conozco y utilizo habitualmente])
---------- Post añadido el 6 de abril de 2022 a las 21:59 ----------
Hola @JCantero, la declaración GLOBAL es para poder usar esa variable en cualquier section del programa
Saludos.....
Yo hace mucho tiempo que no utilizo secciones.
Antes lo utilizaba por el tema de memoria, pero ahora las he suprimido.
Kuk
6 de abril de 2022, 22:58
Antes lo utilizaba por el tema de memoria
A ver a ver, interesante esto lo que dices. Cuenta cuenta :piensa:
fastpho
6 de abril de 2022, 23:08
@JCantero, en powercobol 5.0 que es el que utilizo no podes utilizar una variable que no fue declarada GLOBAL en cualquier parte del programa , en cambio si la declaro GLOBAL la puedo llamar o utilizar desde cualquier parte del programa un boton un procedure un label desde cualquier componente etc
Saludos......
Socavi
23 de abril de 2022, 22:30
Amigos, he descubierto casuísticamente un problema, inédito, en este, probablemente último programa a realizar y que me ha tenido muy ocupado buscando y probando diferentes alternativas, total ha sido una constante en los programas que he realizado, el declarar las variables en grupo, me explico:, debajo de la declaraciión:
01 variables global. luego
02 tal pic 9(2).
02 otra pic xx.
etc, etc
pues tengo un programa que funciona, asi en grupo, sin problema, pero con las variables global external y será casualidad, pero coincide con el cambio de sistema operativo a Windows 11, que por ése motivo, me daba el inexplicable error 22829.
Una vez modificada la declaración en la Working, he podido continuar sin problemas y en esto ando metido.
Gracias a todos los que han intentado ayudarme y aqui dejo mi testimonio, por si con ello puedo ayudar a alguien que se encuentre en una situación parecida.
vBulletin v3.8.7, Derechos ©2000-2026, Jelsoft Enterprises Ltd.