Impression dans ireport

Résolu
asetabularia Messages postés 12 Date d'inscription lundi 23 juillet 2012 Statut Membre Dernière intervention 11 mai 2013 - 23 juil. 2012 à 14:01
asetabularia Messages postés 12 Date d'inscription lundi 23 juillet 2012 Statut Membre Dernière intervention 11 mai 2013 - 3 août 2012 à 11:22
bonjour tout le monde je m'appelle hicham j'habite au Maroc et j'ai besoin de votre aide :D

bon voila j'ai crée une application java avec ireport qui me permet d'imprimer des informations selon les lignes sélectionnées dans une jtable voici un apercu comme vous le constater les informations de chaque ligne sélectionner et afficher dans une vue différente et ma question est comment je peux afficher toute les information sélectionner dans la même vue sachant quand je clic sur une ligne l'identifiant de cette ligne est envoyer dans un arraylist et quand j'imprime je parcours cet arraylist voici mon code
// mon arraylist contient le Rc qui est l'identifiant avec le quel j'imprime 
java.util.List<String> listrc = new ArrayList<String>();

            Iterator<String> i = listrc.iterator();
            //ici je parcoure le arraylist
while(i.hasNext()){
  String x = (String)i.next();
System.out.println(x);
                    try{
            // ici je récupère l&#8217;état de chaque ligne si les informations ont déjà était imprimer donc recupEtat="oui" il est impossible d'imprimer la meme ligne une seconde fois
    Statement stt=connexion.getCon().createStatement();
    ResultSet rss=stt.executeQuery("select imprimer from impression where rc='"+x+"'");
    while (rss.next()) {
    String recupEtat=rss.getString("imprimer");
    System.out.println(recupEtat);
    // si recupEtat="non" donc pas encore imprimer l'impression est permise 
    if(recupEtat.equalsIgnoreCase( "non") ){
        stt.executeUpdate("update impression set  imprimer='oui' where rc='"+x+"'");
        String url = "jdbc:mysql://localhost:3306/packbidayati";
        String login = "user";
        String password = "123";
        Connection connection = null;
        System.out.println(x);
        try {
            // - Connexion à la base    
            Driver monDriver = new com.mysql.jdbc.Driver();
            DriverManager.registerDriver(monDriver);
            connection = DriverManager.getConnection(url, login, password);
            // - Chargement et compilation du rapport     
     jasperDesign = JRXmlLoader.load("C:\\Users\\hicham\\Documents\\NetBeansProjects\\impression_carte_pack_bidayati_12\\src\\la_vue.jrxml");
            JRDesignQuery query=new JRDesignQuery();
            query.setText("select rs,rc,date_add(date_format(date_rc,'%y/%m/%d'),interval 3 year) as "
+ "  datex from impression where rc='" +x+"'");
            
            jasperDesign.setQuery(query);
            JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
    Map parameters = new HashMap();
    parameters.put("Titre", "Titre");
    JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, connection);
JasperExportManager.exportReportToPdfFile(jasperPrint,"C:\\Users\\hicham\\Documents\\NetBeansProjects\\impression_carte_pack_bidayati_12\\src\\la_vuei.pdf");
    JasperViewer.viewReport(jasperPrint);
            
        } catch (JRException e) {
              System.err.println(e.getMessage());
        } catch (SQLException e) {
            System.err.println(e.getMessage());
        } finally {
            try {
                 connection.close();
                } catch (SQLException e) {
                    System.err.println(e.getMessage());
                }   }
 
    }
    
    if(recupEtat.equalsIgnoreCase("oui")){
        JOptionPane.showMessageDialog(null,"cette carte est déja imprimée");
    }
    }
}catch(SQLException ee){
    
}
} 


voila donc j’espère que quelqu'un va m'aider et excuser moi si j'ai pas bien expliquer se que je cherche merci d'avance :)

16 réponses

Utilisateur anonyme
23 juil. 2012 à 15:36
Salut,

Je te rassure, ton post est assez clair.
Je ne connais pas vraiment Jasper pour l'instant, mais j'imagine que, quand tu parles des "vues", tu fais références aux trois petites fenêtres dans l'image en lien. A mon avis, je pense que c'est la ligne JasperViewer.viewReport(jasperPrint); qui est à l'origine de la création d'une vue. Et comme celle-ci est dans une boucle (ton while(i.hasNext()){), tu créés trois vues car je pense que cette boucle tourne trois fois. A mon avis, il faudrait voir si tu peux sortir ta ligne JasperViewer.viewReport(jasperPrint); de ta boucle, et voir si tu ne peux pas charger ton jasperPrint de sorte à ce que tu y regroupes les données de tes trois vues.

Vois-tu où je veux en venir ?


--
Pylouq
(Lire le Réglement n'a jamais tué personne, au pire ça a instruit des gens.)
3
Rejoignez-nous