2017-05-12 1 views
1

J'essaie de créer une vue dans Domino pour trouver le dernier document créé dans chaque catégorie. La base de données Domino contient des enregistrements sur les rapports de classe collégiale et j'ai créé une vue avec la première colonne comme CollegeClass et la deuxième colonne comme DateCreated et la troisième colonne comme ReportTitle. La colonne CollegeClass peut évidemment avoir plusieurs entrées de rapports et ce que je veux faire est d'utiliser une formule Lotus Notes sur la colonne DateCreated pour afficher uniquement le dernier rapport pour chaque classe College. J'ai essayé d'utiliser @created de plusieurs façons, mais pas encore de succès. Comment puis-je filtrer cela pour afficher uniquement le dernier rapport?Rechercher le dernier document créé dans la vue

Répondre

1

Vous ne pouvez pas réaliser ceci avec une vue. Un document dans une vue ne peut pas être masqué en fonction d'un autre document.

+1

Merci pour vos commentaires. Cela m'évite de perdre plus de temps sur ce – AJF

0

S'il s'agit d'une application client Notes (et peut-être aussi s'il s'agit d'une application Web), le mieux est de faire deux vues. Celui qui montre ce que vous voulez (sauf qu'il montre tous les rapports, mais montre le dernier rapport d'abord), et l'autre étant un dossier avec les mêmes colonnes de vue.

Ensuite, écrivez une bibliothèque de scripts LotusScript qui a une fonction qui définit/efface ce champ LatestReportInCategory afin que cette deuxième vue montre exactement ce que vous désirez. J'imagine la fonction serait ...

  1. Obtenez un NotesViewEntryCollection de tous les documents dans ce dossier.
    (par exemple Set col = db.GetView("LatestReportsPerCategory").AllEntries)

  2. Obtient un objet NotesViewNavigator pour la vue.

  3. Utilisez le NotesViewNavigator de se promener dans l'obtention du premier document dans chaque catégorie et ...

    Set doc = entry.Document
    doc.PutInFolder "LatestReportsPerCategory"
    col.Subtract doc

  4. Après avoir traversé la vue de cette façon, tous les Les documents que vous voulez dans la deuxième vue apparaîtront ici, mais nous n'avons pas encore effacé le champ LatestReportInCategory pour les rapports ayant appartenu à la deuxième vue. Cependant, tous ces documents supplémentaires sont maintenant les seuls documents au sein du NotesDocumentCollection parce que nous avons soustrait tous ceux qui appartiennent, vous pouvez maintenant faire
    col.RemoveAllFromFolder "LatestReportsInCategory"

Une fois que vous avez ce travail, vous pouvez appeler cette fonction à partir d'un agent qui s'exécute sur les documents Nouveau/Modifié, ou tous les soirs, à partir de l'événement de sauvegarde et/ou de suppression du document de rapport, ou à tout autre moment approprié. En outre, s'il est utilisé via le client Notes, définissez l'événement QueryAddToFolder du dossier pour renvoyer False car le code voulu, et non les utilisateurs, modifie ce dossier.