Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Fujitsu COBOL PowerCOBOL (ActiveX, v4 - v11)
PowerCOBOL (ActiveX, v4 - v11) Versiones del IDE basadas en ActiveX
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Sintaxis] Incluir ventana de un proyecto en otro Tigre PowerCOBOL v3 (V3L10, Win32) 1 19 de noviembre de 2023 17:27
[Sintaxis] Cerrar ventana de consola... Fito PowerCOBOL (ActiveX, v4 - v11) 7 29 de agosto de 2019 23:48
[Duda] Minimizar ventana padre desde la ventana hijo Roger PowerCOBOL (ActiveX, v4 - v11) 7 7 de julio de 2017 22:06
[PowerCOBOL v3] Abre ventana con boton derecho mouse Adrianeloy Cocina PowerCOBOL 0 31 de mayo de 2017 16:59
[Sintaxis] Desactivar la [X] de cerrar ventana Ciro PowerCOBOL (ActiveX, v4 - v11) 3 28 de octubre de 2015 13:26

Respuesta
 
Herramientas

  #1
Antiguo 3 de abril de 2020, 10:32
Breew
Patrocinador del Foro
Última Actividad 09.05.2022 07:47
Posts Posts: 125
Likes enviados Enviados: 104
Likes recibidos Recibidos: 8
GUI Inhibir ventana de error
0 Inactivo Inactivo

Hola.
Tengo una llamada externa a un editor de texto hecha con CmDDE.
Contemplo la posibiidad de que este el editor en version64 o en version32.
Efectuo la llamada al de 32 y si no existe, que lance directamente el de 64.
Pero me encuentro que aunque chequee el returnvalue, la ventana de aviso de que no existe, me aparece igual y el returnvalue siempre me sale a cero.
Como puedo eliminar el aviso sin que me espere el aceptar de la ventana de aviso?
Código COBOL:
  1.      STRING
  2.      "UEDIT32.EXE LISTADO.TXT"   DELIMITED BY SIZE INTO  DDE-WORD.
  3.      INVOKE CmDDE1 "Execute" USING DDE-WORD POW-SWSHOWNORMAL RETURNING ReturnValue
  4.      
  5.      IF ReturnValue = POW-FALSE THEN GO ULTRAEDIT64 ELSE EXIT PROGRAM.

Muchas gracias.
Breew is offline   Responder Con Cita
  #2
Antiguo 3 de abril de 2020, 11:19
Joseg
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras en varias ocasiones 
Última Actividad 17.09.2026 18:23
Posts Posts: 401
Likes enviados Enviados: 130
Likes recibidos Recibidos: 179

Citación del post de Breew Ver Mensaje
Hola.
Tengo una llamada externa a un editor de texto hecha con CmDDE.
Contemplo la posibiidad de que este el editor en version64 o en version32.
Efectuo la llamada al de 32 y si no existe, que lance directamente el de 64.
Pero me encuentro que aunque chequee el returnvalue, la ventana de aviso de que no existe, me aparece igual y el returnvalue siempre me sale a cero.
Como puedo eliminar el aviso sin que me espere el aceptar de la ventana de aviso?
Código COBOL:
  1.      STRING
  2.      "UEDIT32.EXE LISTADO.TXT"   DELIMITED BY SIZE INTO  DDE-WORD.
  3.      INVOKE CmDDE1 "Execute" USING DDE-WORD POW-SWSHOWNORMAL RETURNING ReturnValue
  4.      
  5.      IF ReturnValue = POW-FALSE THEN GO ULTRAEDIT64 ELSE EXIT PROGRAM.

Muchas gracias.
MinHa sugestão:
Código COBOL:
  1.  SPECIAL-NAMES.
  2.        ENVIRONMENT-NAME  IS ENV1
  3.        ENVIRONMENT-VALUE IS ENV2
  4.  
  5.  WORKING-STORAGE.
  6.   01  WENVVALOR  PIC X(100).
  7.  
  8.  PROCEDURE DIVISION.
  9.           DISPLAY "ProgramW6432" UPON ENV1
  10.           ACCEPT WENVVALOR FROM ENV2
  11.           IF WENVVALOR = SPACES
  12.              MOVE "prog32" TO wPprog  *> 32Bits
  13.           ELSE
  14.              MOVE "prog64" TO wPprog  *> 64Bits
  15.           END-IF
Joseg is offline   Responder Con Cita
  #3
Antiguo 3 de abril de 2020, 16:25
Breew
Patrocinador del Foro
Última Actividad 09.05.2022 07:47
Posts Posts: 125
Likes enviados Enviados: 104
Likes recibidos Recibidos: 8

Hola.
No me sale :eek:
No me reconoce el special names.
Código COBOL:
  1.       ENVIRONMENT-NAME  IS ENV1
  2.       ENVIRONMENT-VALUE IS ENV2
(Powercobol v9)


Código:
listar-base SPECIAL-NAMES(2) :  JMN1123I-S  An invalid word 'ENVIRONMENT-NAME' was found. The invalid word and any following code is ignored until the next valid paragraph, section or division.

listar-base (283) :  JMN5100I-S  The class-name specified in the USAGE OBJECT REFERENCE clause is invalid. The class-name is ignored.

Citación del post de Joseg Ver Mensaje
MinHa sugestão:
Código COBOL:
  1.  SPECIAL-NAMES.
  2.        ENVIRONMENT-NAME  IS ENV1
  3.        ENVIRONMENT-VALUE IS ENV2
  4.  
  5.  WORKING-STORAGE.
  6.   01  WENVVALOR  PIC X(100).
  7.  
  8.  PROCEDURE DIVISION.
  9.           DISPLAY "ProgramW6432" UPON ENV1
  10.           ACCEPT WENVVALOR FROM ENV2
  11.           IF WENVVALOR = SPACES
  12.              MOVE "prog32" TO wPprog  *> 32Bits
  13.           ELSE
  14.              MOVE "prog64" TO wPprog  *> 64Bits
  15.           END-IF
Breew is offline   Responder Con Cita
  #4
Antiguo 3 de abril de 2020, 16:41
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Breew, elimina lo de SPCEIAL-NAMES y reemplaza en PROCEDURE por :

Código COBOL:
  1.           DISPLAY "ProgramW6432" UPON ENVIRONMENT-NAME
  2.           ACCEPT WENVVALOR FROM ENVIRONMENT-VALUE
  3.           IF WENVVALOR = SPACES
  4.              ...

A ver qué tal, debería cogerlo



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #5
Antiguo 3 de abril de 2020, 21:12
Breew
Patrocinador del Foro
Última Actividad 09.05.2022 07:47
Posts Posts: 125
Likes enviados Enviados: 104
Likes recibidos Recibidos: 8

Hola.

Nada , me indica error en compilacion

Código:
    JMN2503I-S  User word 'ENVIRONMENT-NAME' is undefined.
    JMN2503I-S  User word 'ENVIRONMENT-VALUE' is undefined.
    JMN2503I-S  User word 'WPPROG' is undefined.
Citación del post de Kuk Ver Mensaje
Breew, elimina lo de SPCEIAL-NAMES y reemplaza en PROCEDURE por :

Código COBOL:
  1.           DISPLAY "ProgramW6432" UPON ENVIRONMENT-NAME
  2.           ACCEPT WENVVALOR FROM ENVIRONMENT-VALUE
  3.           IF WENVVALOR = SPACES
  4.              ...

A ver qué tal, debería cogerlo
Breew is offline   Responder Con Cita
  #6
Antiguo 4 de abril de 2020, 11:45
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Breew, en este caso pasa por WinAPI : GetEnvironmentVariable function (winbase.h) - Win32 apps | Microsoft Docs

Ejemplo:

Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  01  envVarName  PIC X(50).
  5.  01  envVarValue PIC X(250).
  6.  PROCEDURE       DIVISION.
  7.  
  8.      MOVE "ProgramW6432" & X"00" TO envVarName
  9.      
  10.      CALL "GetEnvironmentVariableA" WITH STDCALL USING BY CONTENT envVarName
  11.                                                        BY REFERENCE envVarValue
  12.                                                        BY VALUE LENGTH OF envVarValue
  13.      
  14.      DISPLAY envVarValue

No olvides de añadir la directiva de compilación ALPHAL(WORD) haciendo clic botón derecho en (Script) [COBOL Script] y seleccionando "Properties".

Asimismo, añade al módulo C:\Program Files (x86)\Fujitsu NetCOBOL for Windows\KERNEL32.LIB



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #7
Antiguo 4 de abril de 2020, 19:25
Breew
Patrocinador del Foro
Última Actividad 09.05.2022 07:47
Posts Posts: 125
Likes enviados Enviados: 104
Likes recibidos Recibidos: 8

Hola Kuk.
La aplicacion donde me hace falta, utilizo unas rutinas que Rapinto puso para hacer unas busquedas en una base .mdb con ole.
Al añadir en la directiva del script compilador el ALPHAL(WORD), hay ciertas rutina que me dan error en compilacion. He echado un vistazo por encima y no entiendo el motivo.

Código:
listar-base.obj : error LNK2001: unresolved external symbol _Leer-base
listar-base.obj : error LNK2001: unresolved external symbol _abrir-base
listar-base.obj : error LNK2001: unresolved external symbol _leer-base-ventas
Si elimino el ALPHAL(WORD), vuelve a funcionar.
Para no liarlo mas, lo hare en un proyecto nuevo, y lo llamare cuando me haga falta.



He abierto un proyecto nuevo para probarlo.
Si que funciona, pero no se como lo puedo utilizar.
El problema que tengo es que el editor que intento abrir , hay maquinas que lo tienen en su version de 32 bytes y otras de 64. Concretamente serian los ejecutables de uedit32.exe y uedit64.exe.
Para capearlo, normalmente hago una llamada a los dos ( como puse en el primer mensaje ).
Supongo que en la variable envVarName deberia poner el ejecutable, pero envVarvalue sale espacios.
Como deberia hacerlo?

Gracias
Breew is offline   Responder Con Cita
  #8
Antiguo 4 de abril de 2020, 19:34
Joseg
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras en varias ocasiones 
Última Actividad 17.09.2026 18:23
Posts Posts: 401
Likes enviados Enviados: 130
Likes recibidos Recibidos: 179

Citación del post de Breew Ver Mensaje
Hola.

Nada , me indica error en compilacion

Código:
    JMN2503I-S  User word 'ENVIRONMENT-NAME' is undefined.
    JMN2503I-S  User word 'ENVIRONMENT-VALUE' is undefined.
    JMN2503I-S  User word 'WPPROG' is undefined.
Ver exemplo, talvez seja mais fácil !!
Archivos Adjuntos
Tipo de Archivo: zip 3264bits.zip (4,3 KB)Descargas: 129
Joseg is offline   Responder Con Cita
  #9
Antiguo 4 de abril de 2020, 22:47
Breew
Patrocinador del Foro
Última Actividad 09.05.2022 07:47
Posts Posts: 125
Likes enviados Enviados: 104
Likes recibidos Recibidos: 8

Hola.

Suelto si funciona , pero al implementarlo en mi programa, en el special names, junto al decimal-point is comma, me da error.
No se si a vosotros os pasa tambien?.

En todo caso la solucion que podria hacer es una llamada al ejecutable desde la aplicacion.

Gracias
Breew is offline   Responder Con Cita
  #10
Antiguo 5 de abril de 2020, 00:06
Joseg
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras en varias ocasiones 
Última Actividad 17.09.2026 18:23
Posts Posts: 401
Likes enviados Enviados: 130
Likes recibidos Recibidos: 179

Citación del post de Breew Ver Mensaje
Hola.

Suelto si funciona , pero al implementarlo en mi programa, en el special names, junto al decimal-point is comma, me da error.
No se si a vosotros os pasa tambien?.

En todo caso la solucion que podria hacer es una llamada al ejecutable desde la aplicacion.

Gracias
Ponga su código aquí en particular "special names". Tiene que funcionar
Joseg is offline   Responder Con Cita
Respuesta



Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 14:46.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.