Je fais une boucle de temps pour obtenir des enregistrements dans une vue classée.
Je souhaite rendre seulement le premier enregistrement qui répond à la condition IF et non à la catégorie entière.
Le code ci-dessous renvoie tous les enregistrements de la catégorie qui ont passé la condition "si". Voir ci-dessous: p> A > p> La flèche indique les enregistrements que j'aimerais revenir. p> p>
4 Réponses :
Avez-vous regardé la classe NoteViewNavigator? P>
Votre graphique vous suggère de souhaiter le premier document de chaque catégorie qui répond à une condition?
Pour la question, comme demandé: p> qui devrait le faire p > p>
Essayez de sortir de la boucle une fois que le DOC est trouvé:
var vView:NotesView = database.getView("Document"); var doc:NotesDocument = vView.getFirstDocument(); var done = false; while(doc != null && !done){ if(doc.getItemValueString("Status") == 'Live'){ //get the first in the category here where condition is met var pVersion = doc.getItemValueString("Version"); var pPro = doc.getItemValueString("Pro"); done = true; } var tmpDoc:NotesDocument = vView.getNextDocument(doc); doc.recycle(); doc = tmpDoc; }
Si c'est l'idée de garder Doc quand vous sortez de la boucle, je suggérerais d'exécuter les trois dernières commandes uniquement lorsque cela est fait est faux.
var vView:NotesView = database.getView("Document"); var doc:NotesDocument = vView.getFirstDocument(); var product; while(doc != null){ if(product != doc.getItemValueString("Product")){ //get only the first in the category var pVersion = doc.getItemValueString("Version"); var product = doc.getItemValueString("Product"); } var tmpDoc:NotesDocument = vView.getNextDocument(doc); doc.recycle(); doc = tmpDoc; }
Je pense que votre code est extrêmement inefficace. Plan en conséquence. Créez une vue avec la catégorie combinée à partir de votre condition. Ensuite, utilisez NOTESVIEWNAVIGATOR, traverser uniquement les catégories et obtenez le premier document dans chaque catégorie.