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

BIRT Discussion :

Générer deux rapports dans un seul WS


Sujet :

BIRT

  1. #1
    Membre habitué Avatar de Juwan
    Femme Profil pro
    Data manager
    Inscrit en
    Avril 2011
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Data manager
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 172
    Points : 137
    Points
    137
    Par défaut Générer deux rapports dans un seul WS
    Bonjour à tous,

    j'ai ce WS qui me génère un rapport :

    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
     public Response ListeAction(final MultivaluedMap<String, String> searchForm) throws EngineException,
          UnsupportedEncodingException {
     
        final ParamSyntheseListeActionDto syntheseListeActionDto = birtService
            .mapFormToParamSyntheseListeAction(searchForm);
     
        final ByteArrayOutputStream output = new ByteArrayOutputStream();
        final BufferedOutputStream out = new BufferedOutputStream(output);
     
     
        try {
     
          // report engine
          final BirtEngineFactory bef = BirtEngineFactory.getInstance();
          final IReportEngine birtEngine = bef.getObject();
     
          // déclaration du rapport
          IReportRunnable runnable = null;
     
          final Resource[] schemaLocation = new PathMatchingResourcePatternResolver()
              .getResources("classpath:/birtsample/listeActionV2.rptdesign");
          if (schemaLocation != null && schemaLocation.length > 0) {
     
            // ouverture du rapport et création d'une nouvelle tache
            runnable = birtEngine.openReportDesign(schemaLocation[0].getInputStream());
            final IRunAndRenderTask runAndRenderTask = birtEngine.createRunAndRenderTask(runnable);
    ....
    ....
    runAndRenderTask.setParameterValue("RparamTitreSynthese", titre_synthese);
    final EXCELRenderOption xlsOptions = new EXCELRenderOption(options);
              xlsOptions.setOutputFormat("xls");
              xlsOptions.setOption(IExcelRenderOption.OFFICE_VERSION, "office2003");
              runAndRenderTask.setRenderOption(xlsOptions);
              xlsOptions.setOutputStream(out);
              runAndRenderTask.run();
              runAndRenderTask.close();
     } catch (final Exception e) {
          throw new WebApplicationException(e);
        }
    ....
    ....
    return Response.ok(output.toByteArray(), MediaType.APPLICATION_OCTET_STREAM)
            .header("content-disposition", "attachment; filename = " + name + ext).build();
    cela me génère un rapport mais j'aimerai pouvoir en générer deux différents, les zipper et les renvoyer dans le .....

    Je ne vois pas comment faire... une idée ?

    Merci
    La perfection n’est pas de ce monde. Ne sont parfaites que les intentions.
    Sagesse orientale.

  2. #2
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Bonjour,

    Pour en générer deux je ne vois pas le problème, tu génères le premier puis le deuxième, après à toi de voir sur le forum Java comment créer un zip et comment le renvoyer avec le bon mime-type et tout le tintouin.

  3. #3
    Membre habitué Avatar de Juwan
    Femme Profil pro
    Data manager
    Inscrit en
    Avril 2011
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Data manager
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 172
    Points : 137
    Points
    137
    Par défaut
    Bonjour,

    c'est ce à quoi je pensais mais je ne vois pas comment faire car dans l'exemple précédent il n'y a qu'un seul "out" et un seul "output", un seul "schemalocation".... et dans le "response.ok", je ne passe qu'un seul output.

    J'ai du mal à voir la syntaxe que je peux utiliser ;-)
    La perfection n’est pas de ce monde. Ne sont parfaites que les intentions.
    Sagesse orientale.

  4. #4
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Tu as un OutputStream, à partir de ça, tu peux créer un File, que tu ajoutes dans un ZIP, tu fais pareil pour la deuxième génération, et au lieu de mettre l'OutputStream dans la réponse, tu mets le ZIP.

    Pour info, apache-commons propose un ZipArchiveOutputStream, mais tu ne trouveras pas de réponses précises à ce sujet sur ce forum, il faut aller dans la partie Java.

  5. #5
    Membre habitué Avatar de Juwan
    Femme Profil pro
    Data manager
    Inscrit en
    Avril 2011
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Data manager
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 172
    Points : 137
    Points
    137
    Par défaut
    Bonjour,

    j'ai un souci de thread avec votre solution. Pouvez vous me donner un exemple de syntaxe ?

    Merci
    La perfection n’est pas de ce monde. Ne sont parfaites que les intentions.
    Sagesse orientale.

  6. #6
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Citation Envoyé par Juwan Voir le message
    Bonjour,

    j'ai un souci de thread avec votre solution. Pouvez vous me donner un exemple de syntaxe ?

    Merci
    Bonjour,

    C'est à dire ? Tu essayes de générer deux rapports en même temps. BIRT n'aime pas ça. Il faut gérer tes threads avec une file d'attente ou un bloc synchronized.

Discussions similaires

  1. récupération de deux valeurs dans une seule checkbox
    Par khayri dans le forum Struts 1
    Réponses: 2
    Dernier message: 10/04/2007, 10h31
  2. [CR10] Regrouper deux rapports dans un seul
    Par reda-ziad dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 17/01/2007, 15h44
  3. [PrintJob] Deux impressions dans un seul job ?
    Par n!co dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 11/01/2007, 14h18
  4. integrer deux requetes dans une seule requete access
    Par laurent.w dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 27/12/2006, 15h11
  5. enregistrer deux fichier dans un seul fichier
    Par Bourak dans le forum Langage
    Réponses: 9
    Dernier message: 05/11/2005, 09h48

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