Extracción de valores de palabras clave no válidos subordinados en Lotus Notes de campo
Sé que el título de este consejo no significa mucho. Pero yo no podía venir para arriba con un título significativo en tan sólo unas pocas palabras. Así que permítanme describir la situación. Digamos que usted tiene unos campos de palabras clave de varios valores que contienen nombres de los estados. Y otro campo de palabras clave de valor múltiple que contiene nombres de ciudades. Las opciones para los nombres de las ciudades provienen de los nombres de los estados seleccionados. Si usted elige algunas ciudades, y luego volver y quitar un estado, ¿cómo eliminar esas ciudades seleccionadas que ya no son las opciones?
El formulario comienza con un campo editable, Lista de diálogo, que permite a varios valores, llamados Estado. Las opciones para este campo provienen de un @ DbColumn. El campo tiene la opción "Actualizar campos en cambio la palabra clave" activado.
El segundo campo es también un campo editable, Lista de diálogo que permite a varios valores. El segundo campo se llama la ciudad. Las opciones se basan en el estado seleccionado. Por ejemplo, aquí está la "fórmula de uso para las opciones de" la opción en una aplicación de ejemplo:
Búsqueda: = @ DbLookup (""; ""; "vwLookupCityState"; Estado, 2);
@ If (@ IsError (de búsqueda); ""; de búsqueda)
El campo de la Ciudad tiene las opciones "Actualizar campos en el cambio palabra clave" y "Actualizar opciones sobre el documento de actualización" activado. Por lo tanto, cuando el usuario selecciona uno o más Estados (por ejemplo, California, Washington), las opciones para el campo Ciudad se actualizan (por ejemplo, San Diego, Los Ángeles, San Francisco, Seattle, Olympia).
En situaciones normales, si el usuario selecciona todas las ciudades, y luego va y cambia las opciones de estado de California (sólo permanece seleccionado, por ejemplo), entonces las opciones para el campo Ciudad se regenerará, pero los valores seleccionados de edad no se . Así que las ciudades de Seattle y Olympia están todavía en los valores del campo a pesar de que ya no son opciones válidas. Esa es la situación de este código corrige.
En realidad, es bastante fácil de manejar esta situación. Debido a que tanto el Estado como los campos de la ciudad tienen la opción "Actualizar campos en cambio la palabra clave" está habilitado, el documento se actualizará cuando sea cambios en el campo. Una fórmula de traducción de entrada en el campo de la ciudad puede quitar los valores seleccionados que no son opciones más.
La primera cosa a hacer en la fórmula de traducción de entrada es duplicar la "fórmula de uso para las opciones de" código para el formulario se obtiene una lista de las opciones válidas.
Búsqueda: = @ DbLookup (""; ""; "vwLookupCityState"; Estado, 2);
ValidChoices: = @ If (@ IsError (de búsqueda); ""; de búsqueda);
Entonces, para tomar los valores de corriente de campo y mantener sólo los válidos se convierte en un proceso de dos pasos. El primer paso es obtener una lista de todos los que no deberían estar en el campo, y el segundo paso es eliminar todos los que no deberían estar allí.
InvalidEntries: @ = Trim (@ Replace (@ ThisValue; ValidChoices; ""));
@ Trim (@ Replace (@ ThisValue; InvalidEntries; ""))
Eso es todo por la fórmula de traducción de entrada. Por lo tanto, cuando el usuario regresa y elimina un estado de la lista, el documento se actualizará. La actualización se ejecuta la fórmula de traducción de entrada. La fórmula hace una búsqueda para obtener una lista de lo que las elecciones van a ser. Puesto que la fórmula exacta de búsqueda se utilizó la misma como en las opciones de palabras clave, y porque no hizo uso de la "NoCache" opción, el rendimiento no será un problema. (Los resultados en caché se utilizará por lo que se ejecuta segundos). A partir de los valores actuales en el campo de la ciudad, todos los que siguen siendo válidas son reemplazados por cadenas vacías. Esto deja una lista de todas las opciones no válidas. Estas opciones no válidas se retira entonces de los valores actuales y que es el resultado nuevo para el campo.
Visto 6528 veces por 1913 espectadores














Trabajo fenomenal! Este es el tipo de información que debe ser compartido en la web. Vergüenza en los motores de búsqueda para no colocar este post más arriba!