0
votes

Xpages: Comment obtenir uniquement le premier enregistrement d'une vue classée

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". xxx

Voir ci-dessous:

 Entrez la description de l'image ici

La flèche indique les enregistrements que j'aimerais revenir.


1 commentaires

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.


4 Réponses :


1
votes

Avez-vous regardé la classe NoteViewNavigator?


0 commentaires

2
votes

Votre graphique vous suggère de souhaiter le premier document de chaque catégorie qui répond à une condition?

Pour la question, comme demandé: xxx

qui devrait le faire


0 commentaires

1
votes

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;
}


1 commentaires

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.



0
votes
       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;
       }

0 commentaires