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 :

Edition si dataset vide


Sujet :

BIRT

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 41
    Points : 28
    Points
    28
    Par défaut Edition si dataset vide
    Bonjour
    je voudrais savoir s'il est possible d'arrêter une édition si le résultat du dataset est vide

    l'applicatif envoi régulièrement des éditions à différentes personnes par mail, mais quand l'édition n'a rien a dire elle renvoi une édition avec seulement l'entête

    je préférerais que rien ne soit transmis dans ce cas

    ma seule action possible est dans la personnalisation du rapport dans BIRT n'ayant pas accés au reste de l'applicatif .

    un moyen permettant d'arrêter birt a un moment ou un autre serait une information très intéressante .

    a moins que dans les script il y ai le moyen de ne par générer l'Edition

    d'avance merci pour votre aide

    Erick

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2009
    Messages
    529
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2009
    Messages : 529
    Points : 836
    Points
    836
    Par défaut
    Salut,

    En partant du principe que tu sais déjà comment tester à l'intérieur du rapport si le dataset est vide, on peut effectivement stopper l'exécution. Par exemple si on a stocké dans une variable "nblignes" le nombre de lignes du dataset, on peut faire dans un script du rapport:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (vars["nblignes"]==0){
       reportContext.cancel();
    }
    Selon l'applicatif utilisé le comportement sera différent, la plupart du temps le rapport tombera en erreur ce qui dans ton cas devrait correspondre au besoin. Pour ceux qui utilisent l'API on peut tester proprement si un rapport a été annulé avec la méthode "getStatus()" de la tache birt, qui doit correspondre à la constante IEngineTask.STATUS_CANCELLED.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 41
    Points : 28
    Points
    28
    Par défaut
    salut
    merci Beaucoup pour la réponse je vais tester de ce pas

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 41
    Points : 28
    Points
    28
    Par défaut
    je viens tester cela dans beforeOpen de mon rapport

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    this.queryText="select HOPEMPLMATRI,HOPEMPLNOMPRE,HOPEMPLHORSECT,HOPEMPLGROUPH,HOPHJOUDAT,CMPEHANOLIBANO,CMPEPOINPOINTAGE,CMPEHABSPRESABS,HOPSECOSECTORGA from " + params["table"] + " order by NUMCOL"
     
    var nblignes = 0
     
    //nblignes = "count hopmatri from " + params["table"]
    //nblignes = dataset.size()
    nblignes = 0
    if (VARS["nblignes"] == 0){
       reportContext.cancel();
    }
    normalement l'Edition devrais s'arrêter , je me sui trompé ou

    d'avance merci

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 41
    Points : 28
    Points
    28
    Par défaut
    Bonjour

    1/ j'ai crée dans birt une variable (nbl) de type report variable.
    2/ j'ai initié cette variable par le nombres de ligne d'une table.
    3/ j'ai fait afficher la variable dans l’état pour voir si elle était bien alimentée .
    4/ j'ai mis la procédure ci dessous dans le script "afterRender"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (VARS["nbl"] == 0){
       reportContext.cancel();
    }
    5/ j'ai essayer également le code dans les scripts body /table

    et pourtant l’édition ne s’arrête pas .
    ni par l'applicatif ni par le view report de report désigner

    je doit me tromper quelque part mais ou

    un petit coup de pouce svp

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 41
    Points : 28
    Points
    28
    Par défaut
    bonjour

    en fait , je me rend compte que j'ai le message suivant :

    une idée ?

    The following items have errors:


    Data (id = 162):
    + There are errors evaluating script "if (vars["nbl"] > 100){
    reportContext.cancel();
    vars["nblb"] = 999
    }":
    TypeError: Cannot find function cancel in object org.eclipse.birt.report.engine.script.internal.ReportContextImpl@10b0c91. (/report/body/data[@id="162"]/method[@name="onRender"]#2)
    birt.core.JavascriptCommonError ( 1 time(s) )
    detail : org.eclipse.birt.report.engine.api.EngineException: There are errors evaluating script "if (vars["nbl"] > 100){
    reportContext.cancel();
    vars["nblb"] = 999
    }":
    TypeError: Cannot find function cancel in object org.eclipse.birt.report.engine.script.internal.ReportContextImpl@10b0c91. (/report/body/data[@id="162"]/method[@name="onRender"]#2)

Discussions similaires

  1. Tester si résultat Dataset vide
    Par Tomus dans le forum BIRT
    Réponses: 6
    Dernier message: 16/10/2008, 17h20
  2. col vide du dataset
    Par bicho dans le forum Général Dotnet
    Réponses: 10
    Dernier message: 22/03/2007, 12h49
  3. [VB.NET][CR] Etat vide sur Dataset
    Par axel_info dans le forum SDK
    Réponses: 1
    Dernier message: 26/03/2006, 10h25
  4. [VB.NET] chargement d'un datagrid avec un dataset vide
    Par lucie.houel dans le forum ASP.NET
    Réponses: 4
    Dernier message: 23/01/2006, 11h21
  5. sous formulaire vide edit=#error
    Par hocine dans le forum IHM
    Réponses: 7
    Dernier message: 17/12/2005, 17h44

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