FORMULA LANGUAGE
Conv_ID := @DDEInitiate("123W";"Presup96.wk3.wk3"); @If (@IsError(Conv_ID); @Do(@Prompt([Ok];"Error"; "Imposible iniciar la conversación");@Return("")); @Do(@DDEPoke(Conv_ID;"A:B6"@Text(Importe)); @DDEExecute(Conv_ID;"[RUN(\"{Ir}A:B6~\")]"); @DDEExecute(Conv_ID;"[RUN(\"/rfc~~\")]"); @DDEExecute(Conv_ID;"[RUN(\"{Ir}A:B10~{Edición-Copiar}\")]"); @DDETerminate(Conv_ID); @Command([EditNextField]); @Command([EditPaste])))
Aquí tiene las explicaciones para cada línea de la fórmula.
Conv_ID := @DDEInitiate("123W";"Presup96.wk3");
Inicia una conversación entre Domino y 1-2-3. Esta sentencia especifica el archivo de hoja de cálculo que se debe emplear (PRESUP96.WK3) y almacena el ID de la conversación en la variable ID_Conv. Tenga en cuenta que el archivo que indique debe encontrarse abierto antes de ejecutar la función @DDEInitiate.
@If (@IsError(Conv_ID); @Do(@Prompt([Ok];"Error"; "Imposible iniciar la conversación"); @Return(""));
Determina si la conversación DDE se ha iniciado correctamente. Si es así, la fórmula continúa; en caso contrario, muestra un mensaje y la fórmula detiene inmediatamente su ejecución.
@Do(@DDEPoke(Conv_ID;"A:B6";@Text(Importe));
Convierte en texto el contenido del campo numérico Importe y pasa el valor correspondiente a la celda A:B6 de la hoja de cálculo de 1-2-3. El valor debe convertirse en texto debido a que @DDEPoke sólo permite pasar texto a la otra aplicación.
@DDEExecute(Conv_ID;"[RUN(\"{Ir}A:B6~\")]");
Sitúa el indicador de celda en A:B6.
@DDEExecute(Conv_ID;"[RUN(\"/rfm~~\")]");
Pasa a 1-2-3 el comando Rango Formato Monetario; este comando asigna a la celda A:B6 el formato monetario.
@DDEExecute(Conv_ID;"[RUN(\"{Ir}A:B10~{Edición-Copiar}\")]");
Pasa a 1-2-3 los comandos Ir y Edición Copiar; el primero de estos comandos sitúa el indicador de celda en A:B10 y el segundo copia en el Portapapeles de Windows el valor contenido en ella.
@DDETerminate(Conv_ID);
Finaliza la conversación DDE.
@Command([EditNextField]);
Sitúa el cursor en el siguiente campo del documento actual de Domino.
@Command([EditPaste])))
Pega en el campo el contenido del Portapapeles (el valor de la celda A:B10).
Véase también