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

Jasper Discussion :

pré-compile du .jrxml pour générer du .jaspr


Sujet :

Jasper

  1. #1
    Membre confirmé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Points : 559
    Points
    559
    Par défaut pré-compile du .jrxml pour générer du .jaspr
    Bonjour,

    j'ai le besoin de générais le .jaspr en temps réel avec la génération du document (bien sûr en utilisant le .jrxml).

    Comment je eux faire ça en java ? (quel changement je doit faire si ça existe)

    voilà mon code qui permet la génération de document.
    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
     
        public void init() throws JRException {
            try {
                JasperCompileManager.compileReportToFile(pathJrxml);
                File reportFile = new File(pathJasper);
                JRBeanCollectionDataSource beanCollectionDataSource = new JRBeanCollectionDataSource(listOfDataTable);
                jasperPrint = JasperFillManager.fillReport(reportFile.getAbsolutePath(), new HashMap(), beanCollectionDataSource);
            } catch (Exception e) {
                JsfUtil.addWarningMessage("Forte chance que les Chemeins d'un des fichise de jasperreports n'est pas Bon. !!");
                Logger.getLogger(Ireport.class.getName()).log(Level.SEVERE, e.toString());
            }
        }  
     
        /**
         * Méthode réutilisable pour l'exportation de document en format PDF. 
         * 
         * @param actionEvent
         * @throws JRException
         * @throws IOException 
         */
        public void PDF(ActionEvent actionEvent) throws JRException, IOException {
            init();
     
            try {
                HttpServletResponse httpServletResponse = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
                httpServletResponse.addHeader("Content-disposition", "attachment; filename=report.pdf");
                ServletOutputStream servletOutputStream = httpServletResponse.getOutputStream();
                JasperExportManager.exportReportToPdfStream(jasperPrint, servletOutputStream);        
            } catch (Exception e) {
                JsfUtil.addWarningMessage("Le document est corrompu ou mal télécharger... !!");
                Logger.getLogger(Ireport.class.getName()).log(Level.SEVERE, e.toString());
            } finally {
            }
        }
    Merci

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations forums :
    Inscription : Mars 2007
    Messages : 616
    Points : 556
    Points
    556
    Par défaut
    Citation Envoyé par geforce Voir le message
    Bonjour,

    j'ai le besoin de générais le .jaspr en temps réel avec la génération du document (bien sûr en utilisant le .jrxml).

    Merci
    Si tu compile en temps réel à quoi va te servir le fichier .jasper?

  3. #3
    Membre confirmé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Points : 559
    Points
    559
    Par défaut
    Désolés je me suis pas bien fait comprendre (je reformule) :
    - j'utilise les .jrxml (existe déjà dans mon projet) pour gênés à temps réel (si besoin d'export d’états) le fichier .jaspr (dans un dossier temporaire par exemple)

    Merci de me dire comment il est possible faire ça.

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations forums :
    Inscription : Mars 2007
    Messages : 616
    Points : 556
    Points
    556
    Par défaut
    Ce n'est toujours pas clair.

    Avec quoi tu génère ton document? Je suppose que tu utilises un programme en Java qui compile, remplit et exporte ton rapport.
    Si tu compile à chaque fois le jrxml à quoi va te servir le .jasper?
    A moins que ton programme en Java ne compile pas et utilise que les .jasper, dans ce cas là tu dois compiler tous les fichiers, tu peux le faire avec iReport.

  5. #5
    Membre confirmé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Points : 559
    Points
    559
    Par défaut
    Citation Envoyé par cmako Voir le message
    Je suppose que tu utilises un programme en Java qui compile, remplit et exporte ton rapport.
    Non mais je cherche justement à faire ça, comment je peux faire pour ne pas utiliser les .jasper directement intégrais dans mon projet.

    Actuellement j'utilise un programme en Java qui ne compile pas les .jrxml et utilise que les .jasper, oui je compiler tous mes fichiers, en utilisant iReport. (Sais justement ce que je veux changer)

    Merci pour un début de solution

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations forums :
    Inscription : Mars 2007
    Messages : 616
    Points : 556
    Points
    556
    Par défaut
    Ok, là je comprends. Dans notre projet nous utilisons uniquement les jrxml sans faire les .jasper.

    Pour ça il faut que tous tes jrxml soient accessibles depuis le chemin CLASSPATH.
    Ensuite ton code Java, doit ressembler à ça :
    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
        // compilation
        String jrxmlFile = "/com/toto/rapportX/RapportPrincipal.jrxml";
        jasperReport = JasperCompileManager.compileReport(getClass().getResourceAsStream(jrxmlFile));
     
        // remplissage
        JRXmlDataSource datasource = new JRXmlDataSource(in);
        datasource.setDatePattern(XML_DATA_PATTERN);
        datasource.setNumberPattern(XML_NUMBER_PATTERN);
        datasource.setLocale(XML_LOCALE);
        HashMap<Object, Object> params = new HashMap<Object, Object>();
        params.put(JRParameter.REPORT_LOCALE, REPORT_LOCALE);
     
        JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, datasource);
     
        // export en PDF
        JRExporter exporter = new JRPdfExporter();
        exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, outputFilename);
        exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
        exporter.exportReport();
    Dans chaque appel de sous-rapport il faut mette l'expression suivante: net.sf.jasperreports.engine.JasperCompileManager.compileReport(getClass().getResourceAsStream("/com/toto/rapportX/sousRapport1.jrxml"))
    le type : net.sf.jasperreports.engine.JasperReport

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Compiler un .cpp pour générer un .so
    Par sengra dans le forum C++
    Réponses: 10
    Dernier message: 24/06/2013, 18h42
  2. Réponses: 3
    Dernier message: 25/02/2009, 18h09
  3. Quel outil UML (industriel) pour générer du code C# ?
    Par matsri2003 dans le forum Outils
    Réponses: 3
    Dernier message: 17/01/2005, 13h45
  4. Réponses: 10
    Dernier message: 22/09/2003, 21h58

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