Ejemplo funciones WWPoke() WWRequest()

En la siguiente práctica vamos a ver un ejemplo de las funciones WWPoke() y WWRequest(), aunque le daremos mas importancia a la función WWRequest() por el planteamiento del ejercicio.

Primero de todo aclarar que estas y otras funciones son utilizadas para comunicaciones DDE, el objetivo de este ejemplo va a ser en una hoja de excel y guardando valores, por ejemplo una temperatura y la hora en la que se ha guardado.

Una de los puntos mas importantes a destacar es que para que dichas funciones trabajen correctamente, la aplicación con la que trabajemos tiene que estar ejecutandose, imaginamos que está será mi imagen principal y en sus propiedades

Vamos al botón Script, ya que lo primero que haremos cuando nuestra aplicación se inicie va a ser preguntar si queremos ejecutar Microsoft Excel, aunque podiamos haberla ejecutado directamente sin preguntar, pero aprovecharemos para ver como crear las ventanas emergentes

El Script es el siguiente y lo que hace es: en la primera linea, consultar si se esta ejecutando Excel, si se esta ejecutando devuelve Microsolf Excel - "Nombre del libro abierto mas extension".

Con la funcion StringCompare, voy a comparar lo que me ha devuelto la funcion InfoAppTitle con "nada", con lo cual, si me devuelve un 0 , no se esta ejecutando y creamos un Objeto del tipo Wscript.Shell, el cual vamos a aprovechar para preguntar al usuario si quiere ejecutar Excel, si la respuesta es que si, pasamos a utilizar las funcion StarApp pasandole como argumentos la ruta del archivo especifico si es el caso o el nombre de la aplicación si es el caso.

Una vez que ya tenemos abierto Excel, ya podemos hacer uso de las funciones WWPoke para escribir en la hoja de Excel o la funcion WWRequest para leer de la misma.

Yo para el ejemplo he creado un botón, aunque lo ideal sería que se ejecutase cada vez que se produce un cambio en la variable que nos interese mas una tolerancia, o según las necesidades.

El Script para registrar los datos es el siguiente, vamos a utilizar consecutivamente la función WWPoke() ya que en una celda del Excel escribiremos el dia y la fecha concatenados en una variable y en otra el valor de la variable a registrar.

Los argumentos de la función WWPoke son los siguientes: (1º Nombre de la aplicación, 2º Nombre del Tópico, 3º Nombre del Item, 4º String con el valor a escribir) Amplia información de todas las funciones en la ayuda.

He definido una variable a nivel Global y que la utilizaré como indice para ir cambiando de Celdas consecutivamente.

El nombre del item "3 Argumento", es una variable del tipo String que he utilizado para ir cambiando las celdas, ya que si queremos escribir en una celda solamente le tenemos que pasar la Fila y la Columna ejemplo "F1C1", considerando que el idioma de instalacion de Excel sea el Español, en caso de que sea Ingles seria Row and Column "R1C1".

Cada vez que pulso el botón en este caso hago lo siguiente: Una concatenación "f"+intToStr+"c1" -> donde intToStr es la conversion de la variable i a String para poder concatenar con el simbolo +

En este caso cuando llegara a los 65000 registros empezaria a borrar los antiguos y escribir nuevamente. El ejemplo de la función WWRequest es exactamente identico, leemos el item y lo guardamos en el String 4 Argumento de la función, posteriormente convertimos este String a formato Real

Para finalizar un pequeño video de funcionamiento en Runtime.

Un ejemplo del objetivo de esta práctica es el siguiente, cada vez que pulsamos hemos registrado fecha y hora mas el valor de la variable, ahora adaptarla según las necesidades.

25 de Mayo del 2013

Si te ha gustado o la información te ha sido útil, compartelo ...