DISEÑO DE APLICACIONES


Campos de fórmulas
Los campos de fórmulas se utilizan para rellenar listas de suscripciones, que funcionan conjuntamente con la base de datos Headlines.nsf. La base de datos Suscripciones se utiliza como página de inicio del cliente IBM® Lotus® Notes®. La base de datos Suscripciones incluye una función denominada suscripciones. Todos los diseñadores cuentan con la opción de incluir un formulario de suscripciones en cada base de datos. Cuando un usuario se suscribe a una base de datos (seleccionando Crear > Suscripción), activa una tarea del servidor que se encarga de notificarle si se ha guardado en ella un documento de interés. El criterio que utiliza el servidor se encuentra en un campo de fórmulas que hay en el formulario de suscripción. Aunque los usuarios rellenen el formulario de suscripción en la base de datos en cuestión, los documentos de suscripción se almacenan en las bases de datos de suscripciones (la base de datos predeterminada es headlines.nsf) de su cliente local.

Si desea crear un formulario de suscripción personalizado en su base de datos, puede comenzar con el formulario de suscripción predeterminado, denominado $Subscription, de la base de datos Headlines.nsf o Headlines.ntf que incluye IBM® Lotus® Domino(TM) Designer. En primer lugar, copie y pegue el formulario en su base de datos y, a continuación, personalícelo. Cuando lo haga, incluya el campo de fórmulas. El campo de fórmulas del formulario $Subscription se denomina $HLFormula y se encuentra en la segunda ficha de la tabla con fichas que hay a la derecha del mismo El campo $HLFormula es un campo calculado. Si decide conservar este campo como campo calculado, deberá escribir una fórmula que dé como resultado una fórmula de selección para la lista de suscripciones. Un campo de fórmulas debe dar como resultado una fórmula de selección para que el servidor pueda emplearlo para obtener el criterio de suscripción del usuario.

Otra opción consiste en seleccionar Campos como literales en la ficha Info. campo del cuadro de propiedades del campo. Al hacerlo, estará programando el campo de fórmulas para que acepte la fórmula sin compilarla. Si está haciendo literal una fórmula, las referencias de los campos deberán ser: texto, listas de texto, números, listas de números, fechas/horas, intervalos o listas de fechas/horas. Si el campo al que se hace referencia es de cualquier otro tipo, se quedará como una referencia de campo.

El siguiente ejemplo es una fórmula para un campo de fórmulas en el que se ha seleccionado la opción Campos como literales:

Select (Nombres = EjemploNombres) & (Números = EjemploNúmeros) & (Categorías = EjemploCategorías)& (Fechas = EjemploFechas)

Si el documento actual posee estos campos y valores:
CampoValor
EjemploNombres"CN=Sara Rivas/O=HyD" : "CN=Javier Tenorio/O=HyD"
EjemploNumeros1: 2: 3
EjemploCategorias"Huelva" : "Almería" : "Valencia"
EjemploFechas[26/03/82]:[10/08/86]:[30/05/98]
Entonces la fórmula se hará literal de este modo:

Select (Nombres = "Sara Rivas/HyD" : "Javier Tenorio/HyD" ) & (Números = 1 : 2 : 3) & (Categorías = "Huelva" : "Almería" : "Valencia") & (Fechas = [26/03/82]:[10/08/86]:[30/05/98]

Si selecciona la opción calculada, la fórmula que escriba deberá dar como resultado otra fórmula. Esto proporciona la capacidad de mejorar fórmulas complicadas antes de que se guarden. Una vez que la fórmula ha sido evaluada, la fórmula resultante se guarda.

Si la fórmula resultante no es válida, el campo se guarda con un valor de tipo de error. Ello provoca, en ciertos casos, que el usuario no pueda abandonar el documento. Para diferenciar entre acierto y fallo, el desarrollador de plantillas debería probar la fórmula con el evento QuerySave para determinar si el campo de fórmula es efectivamente del tipo fórmula. Si no lo es, el cálculo no dará como resultado una fórmula válida.

Por ejemplo, un campo de fórmula calculada posee la fórmula siguiente:

tLitNombres := "\"" + @Implode( EjemploNombres; "\" : \"") + "\"";

tLitNumeros := @Implode( @Text(EjemploNumeros); " : ");

tLitCategorias := "\"" + @Implode( EjemploCategorias; "\" : \"") + "\"";

"Select (Nombres = " + tLitNombres + ") & (Numeros = " + tLitNumeros + ") & (Categorias = " + tLitCategorias + ")"

Si el documento actual posee estos campos y valores:
CampoValor
EjemploNombres"CN=Sara Rivas/O=HyD" : "CN=Javier Tenorio/O=HyD"
EjemploNumeros1: 2: 3
EjemploCategorias"Huelva" : "Almería" : "Valencia"
Entonces la fórmula recopilará esto:

Select (Nombres = "Sara Rivas/HyD" : "Javier Tenorio/HyD" ) & (Numeros = 1 : 2 : 3) & (Categorias = "Huelva" : "Almería" : "Valencia")

Véase también


Glosario
¿Desea opinar sobre la Ayuda o sobre la utilidad del producto?