Lotus Notes Rimozione valido valori delle parole chiave subordinato
Sì, lo so il titolo di questo suggerimento non significa molto. Ma non potevo venire con un titolo significativo in poche parole. Quindi permettetemi di descrivere la situazione. Diciamo che sono un multi-valore campi di parole chiave che contiene i nomi di stato. E un altro multi-valore del campo chiave che contiene i nomi di città. Le scelte per i nomi delle città provengono dai nomi stato selezionato. Se si sceglie di alcune città, e poi tornare indietro e rimuovere uno stato, come si fa a eliminare quelle città selezionate che non sono più scelte?
La forma inizia con una modificabili, campo Lista di dialogo, che permette più valori, chiamato Stato. Le scelte per questo campo provengono da @ DbColumn. Il campo ha l'opzione "Aggiorna campi sul cambiamento parola chiave" abilitata.
Il secondo campo è anche modificabile, campo Lista di dialogo che consente di valori multipli. Il secondo campo è denominato City. Le scelte si basano sullo stato selezionato. Per esempio, ecco la "formula Usa per le scelte" opzione in un'applicazione di esempio:
Ricerca: = @ DbLookup ("", "", "vwLookupCityState"; Stato, 2);
@ If (@ IsError (Ricerca); ""; di ricerca)
Il campo City ha le opzioni "Aggiorna campi sul cambiamento parola chiave" e "scelte di aggiornamento sul documento di aggiornamento" abilitato. Così, quando l'utente seleziona uno o più Stati (ad esempio in California, Washington), le scelte per il campo città vengono aggiornati (ad esempio San Diego, Los Angeles, San Francisco, Seattle, Olympia).
In situazioni normali, se l'utente seleziona tutte le città, e poi torna e cambia le scelte di stato (solo California rimane selezionato, per esempio), poi le scelte per il campo Città verrà aggiornata, ma i vecchi valori selezionati non saranno . Così la città di Seattle e Olympia sono ancora in valori di campo anche se non sono più opzioni valide. Questa è la situazione di questo codice corregge.
In realtà è abbastanza facile da gestire questa situazione. Poiché sia lo Stato e campi City hanno l'opzione "Aggiorna campi sul cambiamento parola chiave" abilitato, il documento verrà aggiornato quando uno cambia campo. Una formula di traduzione input sul campo Città è possibile rimuovere i valori selezionati che non sono più opzioni.
La prima cosa da fare nella formula di traduzione input è duplicare la "formula Usa per le scelte" codice in modo che il modulo ottiene un elenco di scelte valide.
Ricerca: = @ DbLookup ("", "", "vwLookupCityState"; Stato, 2);
ValidChoices: = @ If (@ IsError (Ricerca); ""; di ricerca);
Poi, per prendere i valori di corrente di campo e mantenere solo quelli validi diventa un processo in due fasi. Il primo passo è quello di ottenere un elenco di tutti quelli che non dovrebbero essere in campo, e il secondo passo è quello di eliminare tutti quelli che non dovrebbero essere lì.
InvalidEntries: = @ Trim (Replace @ (@ ThisValue; ValidChoices; ""));
@ Trim (Replace @ (@ ThisValue; InvalidEntries, ""))
Che è per la formula di traduzione input. Così, quando l'utente ritorna e rimuove uno stato dalla lista, il documento di aggiornamento. L'aggiornamento esegue la formula di traduzione input. La formula fa una ricerca per ottenere una lista di ciò che le scelte saranno. Dal momento che la formula esatta di ricerca stesso è stato utilizzato come nella scelta delle parole chiave, e perché non ho usato l'opzione "Nessuna cache", le prestazioni non saranno un problema. (I risultati nella cache saranno utilizzati da qualsiasi gestisce secondo). Dai valori attuali nel campo città, tutti quelli che sono ancora validi vengono sostituiti con stringhe vuote. Questo lascia un elenco di tutte le opzioni valido. Quelle opzioni non valide vengono poi rimossi dai valori attuali e che è il nuovo risultato per il campo.
Visto 8431 volte da 2201 spettatori













