FORMULA LANGUAGE


Ejemplos: @DDEExecute
Esta fórmula mantiene una conversación DDE entre 1-2-3 para Windows y Domino.

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