|
|
|
|
|
- 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
Lenguaje externo: Programación en Cobol
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. 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 WLanguageTodas 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|