Citación del post de
jmeza
|
❞
La solución fue GLOBAL EXTERNAL
Agradecido.
Estimados tengo otra duda como solucionar algo similar a lo anterior, pero de Pawercobol a Cobol
Como estoy emigrando todo de Rmcobol85 a Powercobolv9
Y mis reportes están en Cobol con Cobview
INVOKE el reporte que necesito desde un Form
INVOKE pow-self "executesync" USING "Runcobol lisorden.cob".
Pero necesito que lleve una variable con un valor para que el programa receptor
Ejecute el reporte Ejemplo: Nro_factura
Un amigo hace un tiempo me dio la solución que creara un archivo y grabara el valor
El programa receptor lee la variable del archivo y ejecuta el programa.
Esto funciona ok, pero es algo adicional que hay que hacer.
Si alguien sabe de alguna solución para que me diga cómo hacerlo
Así me evite de hacer los reportes de nuevo
Saludos
|
Hola ,
seria :
Pasaje de par*metros externos a los programas:
Código COBOL:
a)
linkage section.
01 var-param.
03 largo-param pic 9(4) binary.
03 texto-param.
05 filler pic x occurs 1 to 100
depending on largo-param.
PROCEDURE DIVISION using var-param.
En este caso se recibe un texto de hasta 100 caracteres que se
puede manejar moviendolo a otro campo por ej:
if largo-param not < 4
move texto-param(1:largo-param) to clavepan
El llamado del programa en DOS es el siguiente:
RUNCOBOL INT0001 A="01"
donde lo que va entre comillas es el campo de 0 a 100 posiciones.
b) se pueden con la misma filosof¡a traer variables de ambiente.
Podr¡amos por ejemplo cargar en una variable de ambiente (USUARIO)
el usuario de una red y la estaci¢n en la cual trabaja(PS)
el llamado ser¡a el siguiente:
RUNCOBOL PRUEBA A="%USUARIO%,%PS%"
dentro del programa el par*metro se toma como uno, igual al ejemplo
anterior, pero buscamos los 2 par*metros que est*n separados por
comas con el comando UNSTRING.
UNSTRING TEXTO-PARAM DELIMITED BY "," INTO
QUIEN, DONDE
espero que te sirva,
saludos
Armando