IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Documents Java Discussion :

[iText] Boucle affichage données par colonne


Sujet :

Documents Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 54
    Par défaut [iText] Boucle affichage données par colonne
    Bonjour à tous,

    J'ai besoin d'afficher des données dans un tableau qui provient d'une base.

    donc j'ai créé mon tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Table table = new Table(8);
    			table.setWidths(new int[]{10,10,10,10,10,10,10,10});	
    			table.setWidth(100);
    			table.setPadding(0);
    et pour afficher mes données, je fait une boucle for du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for(Objet monobjet : objets){
     
    	table.addCell(new Paragraph(monobjet.getNom,normal));
     }
    Mon problème est que les données s'affiche comme ceci :

    1 2 3 4 5 6 7 8
    9 10 11 12 13 14
    etc...

    Je voulais savoir si il y avait un moyen simple d'afficher comme ceci :

    1 4 7 10 13 16 19 22
    2 5 8 11 14 17 20 23
    3 6 9 12 15 18 21 24

    Merci à tous,

    Cordialement

  2. #2
    Membre chevronné
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Par défaut
    Bonjour,

    Suggestion : vous pouvez trier votre collection "objets" avant de créer vos cellules

  3. #3
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 54
    Par défaut
    Oui, peut-être mais je dois trier comment pour avoir ce genre d'affichage?

  4. #4
    Membre chevronné
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Par défaut
    Quel est le type de Collection de objets ?

  5. #5
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 54
    Par défaut
    c'est une ArrayList

    Merci pour ton aide.

    Cordialement

  6. #6
    Membre chevronné
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Par défaut
    Voici une méthode de tri, un peu barbare et que je n'ai pas testée ... je vous laisse la comprendre / tester / modifier à votre goût ... le principe y est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    /**
     * Méthode qui tri un ArrayList en matrice 2D à nbColonnes colonnes. 
     * @param liste la liste à trier. 
     * @param nbColonnes le nombre de colonnes de la matrice. 
     * @return la matrice. 
     **/
    public ArrayList<ArrayList<E>> tri(ArrayList<E> liste, int nbColonnes) {
      // La matrice retournee
      ArrayList<ArrayList<E>> resultat;
     
      // La ligne courante
      ArrayList<E> listeCourante;
     
      // Variables temporaires
      int nbLignes, indiceColonneCourante;
     
      // Calcul du nombre de lignes de la matrice
      nbLignes = liste.size() / nbColonnes;
     
      // Initialisation de la matrice de retour
      resultat = new ArrayList<ArrayList<E>>(nbLignes);
     
      // Initialisation de l'indice de la colonne courante
      indiceColonneCourante = 0;
     
      // Initialisation de la ligne courante
      listeCourante = new ArrayList<E>(nbColonnes);
     
      // Ajout de la première ligne à la matrice
      resultat.add(listeCourante);
     
      // Parcours des éléments de la liste à trier
      for (E donneeCourante : liste) {
        if (indiceColonneCourante >= nbColonnes) {
          // Si l'indice de la colonne courante est égal au nombre de colonnes
     
          // Remise à 0 de l'indice de la colonne courante
          indiceColonneCourante = 0;
     
          // Création d'une nouvelle ligne
          listeCourante = new ArrayList<E>(nbColonnes);
     
          // Ajout de la nouvelle ligne dans la matrice
          resultat.add(listeCourante);
        } else {
            // Sinon, incrémentation de l'indice de la colonne courante
            indiceColonneCourante ++;
        }
        // Insertion de la valeur courante dans la matrice
        // dans la colonne courante (d'indice indiceColonneCourante)
        // et la ligne courante
        listeCourante.add(donneeCourante);
      }
      // Retour de la matrice
      return resultat;
    }
    et son utilisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    int nbColonnes = 8;
    ArrayList<ArrayList<Objet>> listeListeObjets = tri(objets, int nbColonnes);
    // Parcours des lignes de la matrice
    for (ArrayList<Objet> listeObjetsCourante : listeListeObjets) {
      // Parcours des colonnes dans la ligne courante
      for (Objet monobjet: listeObjetsCourante) {
        // Ajout de l'objet courant
        table.addCell(new Paragraph(monobjet.getNom,normal));
      }
    }

Discussions similaires

  1. [AC-2010] Boucle affichage données
    Par Lologolas dans le forum IHM
    Réponses: 3
    Dernier message: 25/11/2011, 16h39
  2. [2K8] Groupement de données par colonne
    Par abbepierre94 dans le forum SSRS
    Réponses: 7
    Dernier message: 02/12/2010, 17h59
  3. [MySQL] affichage données par rapport à une date
    Par johan0510 dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 10/03/2010, 15h28
  4. Affichage "grouper par colonne"
    Par gracouille dans le forum SharePoint
    Réponses: 0
    Dernier message: 27/05/2008, 16h30
  5. [PDO] afficher mes données par colonnes dynamiquement
    Par mariafan dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 24/07/2007, 09h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo