Non, vue formules de sélection ne peuvent pas contenir LotusScript
pas en vue, mais vous êtes sur quelque chose là-bas. Je l'ai fait dans le passé en utilisant des dossiers. Les vues contiennent un ensemble de documents correspondant à une formule de sélection d'affichage. D'un autre côté, les dossiers peuvent contenir une collection de documents placés par un utilisateur ou par un code. Dans le monde Lotusscript, vous accédez à un dossier de la même manière qu'une vue, en utilisant la classe NotesView. Vous pouvez ensuite appeler la méthode PutInFolder du document ou la méthode PutAllInFolder d'un documentcollection pour ajouter des documents à ce dossier. Non. Vous pouvez cependant spécifier la formule utilisée par les vues par programmation via la propriété SelectionFormula. Mais cette propriété attend une chaîne écrite en langage de formule. Je ne suis pas très familier avec l'API C, mais je parie que vous ne pouvez faire que la même chose que # 3 - spécifiez la formule utilisée comme formule de sélection. Cela ne vous aidera pas à sélectionner des documents basés sur le code LotusScript.
J'ai déjà parcouru cette route dans quelques projets, et la meilleure solution que j'ai trouvée était ce que je suggère dans la réponse 2. C'est-à-dire que vous pouvez effacer, puis remplir un dossier par programme, puis amener l'utilisateur dans ce dossier en tant qu'étape finale de votre code. En utilisant cette méthode, vous êtes libre d'utiliser LotusScript pour filtrer les documents et construire votre vue "Résultats de la requête".
Une autre méthode moins idéale mais fonctionnelle que vous pouvez utiliser consiste à marquer un élément dans tous les documents avec une valeur spéciale, puis filtrer une vue pour afficher uniquement les documents avec des éléments égaux à cette valeur spéciale. Par exemple, vous pouvez lancer une recherche dans LotusScript pour créer une collection de documents à l'aide de la méthode db.Search. Utilisez ensuite la méthode documentcollection.StampAll pour définir l'élément "SHOWME" sur "YES". Ensuite, votre vue devra simplement être définie pour afficher uniquement les documents où SHOWME = "YES".Bien sûr, vous devez supprimer cet élément SHOWME de tous les documents de la base de données comme première étape de ce code, de sorte que vous démarrez avec une table rase à chaque fois. Cette méthode deviendrait de plus en plus lente, plus vous auriez de documents, mais si vous n'avez que quelques centaines de documents, cela fonctionnerait bien.
Espérons que cela aide!
votre (3) n'est pas tout à fait vrai - vous pouvez créer des « formules définies par l'utilisateur » en écrivant un pilote de base de données et en utilisant @DbCommand, @DbLookup ou @DbColumn (Ben Langhinrichs utilisé que astuce avec son jeu d'outils @Midas). Le "pilote de base de données" serait une DLL contenant des appels API C. Le problème étant que vous ne pouvez pas non plus utiliser @DbCommand ou @DbLookup dans une formule de sélection de vue, mais si vous avez les côtelettes pour construire l'outil, vous pouvez donner aux "développeurs" uniquement la possibilité de créer des applications qu'ils ne pourraient pas sinon écris. (Et, si vous connaissez des enregistrements de CD comme Ben, vous pouvez faire @DbLookup contre les tables de texte enrichi.) –
Good stuff Stan, merci. –