|
|
|
|
- Presentación
- Implementación
- Incluyendo los archivos de la interfaz Fortran 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 Fortran
Vamos a llamar a los elementos desarrollados en WINDEV (proyecto, ventanas, análisis,...) desde el lenguaje Fortran. 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.dsp (en formato Fortran) suministrado en el subdirectorio "ExternalLanguages\Fortran" del directorio instalación de WINDEV. Observaciones: - El lenguaje Fortran no permite utilizar el motor HyperFileSQL. Para manipular el motor HyperFileSQL, realice los procesos necesarios en WINDEV.
- El lenguaje externo Fortran no soporta el carácter chino set.
Incluyendo los archivos de la interfaz Fortran de WINDEV Los siguientes archivos deben estar incluidos en un proyecto de Fortran para poder llamar a la interfaz de Fortran de WINDEV: - WDDEBUT.FI
- WDFIN.FI
- WINDEV.FI
- WinDeve.FI
- WINDEV.FD
- wd170FC.LIB
Las siguientes líneas deben estar incluidas en el código del archivo principal ".FOR" de su proyecto Fortran: * Mandatory declaration file include 'WINDEV.fd' include 'WINDEV.fi' Character*2 Chn * Mandatory initialization of WINDEV include 'WDDebut.fi' 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(LOC('LIBRA,Disk,city.wdl'C)) if (WDInt .EQ. 0) then ....... else * Library not found CALL CALLWD(Loc('Error, Library not found'C)) endif 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 Procedure * open the first window of the program that contains the menu CALL CALLWD(LOC('Open, menufc.wdw'C)) 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, etc.), debe implementar un sistema basado en un bucle en su programa Fortran. 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 Fortran qué botón fue pulsado por ejemplo. Ejemplo: Código Fortran * open the first window of the program that contains the menu CALL CALLWD(LOC('Open,menufc.wdw'C)) * the program loops until the File Exit option * is selected DO While (WDKey .NE. 'ESC') * perform the input of the menu CALL CALLWD(Loc('Screen,Input'C)) * the status report WDKey is set to *M* when a menu choice * was selected if (WDKey .EQ. '*M*') then Str = WDString ... * Display the list. if (Str .EQ. 'DD') then Call CALLWD(LOC('Open,lstdepfc.wdw'C)) Call CALLWD(Loc('Screen,Input'C)) Call CALLWD(Loc('Close'C)) endif * Print. if (Str .EQ. 'DI') then Call CALLWD(LOC('Open,impdep.wdw'C)) WDKey = ' ' endif ... Código para interceptar la selección de "File...Exit" de la ventana "Menu" de WINDEV: DO While (WDKey .NE. 'ESC') * the status report WDKey is set to *M* when a menu choice * was selected if (WDKey .EQ. '*M*') then Str = WDString endif ... if (Str .EQ. 'FE') then WDKey = 'ESC' endif ... END DO * Exit application Cuando el usuario hace clic en "Archivo... Salir": - WDKey será igual a "*M*".
- WDString contendrá los accesos directos en el orden en que se seleccionen los menús. En nuestro ejemplo, WDString contiene "FE".
Finalización de la aplicación Para finalizar el uso de la interfaz externa, escriba las siguientes líneas de código: * Done... include 'wdfin.fi' END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|