AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / Gestión de lenguajes externos / COBOL
  • Presentación
  • Implementación
  • Incluyendo los archivos de la interfaz Cobol de WINDEV
  • Carga de la biblioteca WINDEV (WDL)
  • Ejecutar códigos WINDEV desde el idioma externo
  • Finalización de la aplicación
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Presentación
Vamos a llamar a los elementos desarrollados en WINDEV (proyecto, ventanas, análisis, etc.) del lenguaje Cobol. El código WLanguage utilizado desde el lenguaje externo se compilará dinámicamente y se ejecutará durante la llamada.
Este modo se ilustra con el proyecto City.cbl (en formato Cobol) suministrado en el subdirectorio "ExternalLanguages\Cobol" del directorio instalación de WINDEV.
Observación: El lenguaje Cobol no permite utilizar el motor HFSQL. Para manipular el motor HFSQL, realice los procesos WLanguage necesarios en WINDEV.
Implementación

Incluyendo los archivos de la interfaz Cobol de WINDEV

Los siguientes archivos deben estar incluidos en un proyecto Cobol para poder llamar a la interfaz Cobol de WINDEV:
  • WDDEB.CBL
  • WDFIN.CBL
  • WINDEV.CPY
Las siguientes líneas deben ser encontradas en el código del archivo principal ".CBL" de su proyecto Cobol:
* set ans85 noosvs mf defaultbyte"00"
IDENTIFICATION DIVISION.
PROGRAM-ID. WINDEV.
special-names.
call-convention 3 is WINAPI.
data division.
working-storage section.
* Mandatory declaration file
copy "WINDEV.cpy".
77  STRCH pic x(255).
77  Control pic x(255).
77  Key pic x(255).
77  SearchType pic 9.
77  chn pic xx.
local-storage SECTION.
linkage section.
01  hInst pic xx comp-5.
01  hPrevInstance pic xx comp-5.
01  lpszCmdLine pic x(120).
01  nCmdShow pic xx comp-5.
procedure division WINAPI using  by value hInst
by value hPrevInstance
by reference lpszCmdLine
by value nCmdShow.
MyWinMain section.
* Mandatory initialization of WINDEV
copy "WDDEB.CBL".
Estas líneas le permiten recuperar las declaraciones mínimas necesarias para utilizar la interfase externa.
Carga de la biblioteca WINDEV (WDL)
La biblioteca WINDEV (extensión.WDL) contiene todos los elementos del proyecto (ventanas, informes, clases, consultas, análisis,...). Por lo tanto, debe ser cargado en la memoria para que sus componentes puedan ser llamados.
Atención: Si la biblioteca a cargar contiene ventanas, el código de cada una de estas ventanas debe ser incluido en el correspondiente archivo ".WDW" ("Incluir el código compilado" debe ser comprobado en la pestaña "Detalles" de la description de cada ventana).
* Opening the library
* if WDInt is not null, the library
* was not found!
call CALLWD using
by reference "Library,disk,city.wdl" & x"00"
if (WDInt = 0)
move " " to WDKey
...
else
* Library not found
call CALLWD using
by reference "Error, Library not found" & x"00"
end-if
Ejecutar códigos WINDEV desde el idioma externo
1. Llamar a un código de WLanguage
Todas las funciones WLanguage se pueden llamar desde el idioma externo. El comportamiento de estas funciones WLanguage, así como los valores devueltos, son idénticos tanto si se llaman:
  • de WINDEV o
  • desde la interfaz del lenguaje externo
Para conocer los parámetros y los valores de retorno de una función WLanguage, consulte la ayuda en línea o la documentación sobre WLanguage.
La llamada a un WLanguage Procedure desde la interfaz externa es realizada por Llame a CallWD. Por ejemplo:
* open the first window of the program that contains the menu
call CALLWD using
by reference "Open, menuWdn.wdw" & x"00"
2. Recuperación de los eventos lanzados en las ventanas WINDEV
La entrada en las ventanas WINDEV requiere recuperar los eventos desencadenados en estas ventanas.
Para recuperar los eventos de usuario (haga clic en un menú, en un botón,...), debe implementar un sistema basado en un bucle en su programa Cobol. Este bucle permanecerá Active mientras se abra la ventana WINDEV y se utilizará para interceptar cada acción del usuario.
Para averiguar el tipo de acción que realiza el usuario, tiene la posibilidad de utilizar una cadena de caracteres Variable (en WLanguage) llamada 'WDKey'. Esta Variable se usará en su código WLanguage para señalar al programa Cobol qué botón ha sido pulsado, por ejemplo.
Ejemplo: Cobol code
* open the first window of the program that contains the menu
call CALLWD using
by reference "Open,menuWdn.wdw" & x"00"
* the program loops until the File Exit option
* is selected
Perform MENUINPUT with test before until (WDKey = "ESC")
...
MENUINPUT.
* perform the input of the menu
call CALLWD using
by reference "Screen,Edit" & x"00"
* the status report WDKey is set to *M* when a menu choice
* was selected
if (WDKey = "*M*")
move WDString to chn
*---------------------------------------
* Decode the selected option.
* WDString contains the sequence of shortcut letters
* that are used to select the menu choice
*---------------------------------------
if (Str = "FQ")
Move "ESC" TO WDKey
end-if
...
end-if.
Código para interceptar la selección de "File...Exit" de la ventana "Menu" de WINDEV:
* the program loops until the File Exit option
* is selected
Perform MENUINPUT with test before until (WDKey = "ESC")
...
if (Str = "FQ")
Move "ESC" TO WDKey
end-if
...
* Done...
copy "wdfin.cbl".
exit program returning zero.
stop run.
Cuando el usuario hace clic en "File...Exit", WDKey será igual a "ESC".
señalar: La variable WDKey siendo una cadena de caracteres, su contenido puede ser un description detallado de la acción a realizar. Por ejemplo, "Cerrar la aplicación".
Finalización de la aplicación
Para finalizar el uso de la interfaz externa, escriba las siguientes líneas de código:
* Done...
copy "wdfin.cbl".
exit program returning zero.
stop run.
Versión mínima requerida
  • Versión 9
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 27/05/2022

Señalar un error o enviar una sugerencia | Ayuda local