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 :

Est-il possible de définir une requête dans une librairie avec un paramètre de type date?


Sujet :

BIRT

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 17
    Points : 11
    Points
    11
    Par défaut Est-il possible de définir une requête dans une librairie avec un paramètre de type date?
    Bonjour,

    Est-ce qu'il est possible de définir une requête dans une librairie , avec un paramètre de type date? (la requête est visible de plusieurs rapports)

    Le message suivant s'affiche si j'essaye de tester la requête dans la bibliothèque (preview):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cannot set the date value (null) to parameter 1

    Ci-Après les détails techniques:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select ID, date_stat
    from stat_threads
    where date_stat > ?
    Le paramètre ? est associé au paramètre dtDate défini comme suit, dans la même librairie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Nom: dtDate
    Data type: Date
    Display Text: Text Box
    Default value: BirtDateTime.today();
    Display as 'is required' est coché


    Si je crée la même requête en local dans un rapport, il n'y a pas d'erreur.
    De plus, si j'utilise dans la requête un filtre avec paramètre d'un autre type (ex: décimal), je n'ai pas d'erreur.

    Est-ce que quelqu'un a déjà rencontré ce problème?

    Merci

  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,

    Je crois qu'il faut que tu passes ton paramètre avec le nom suivant :
    nomLibrairie.nomParametre

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    Bonjour BIM,

    J'ai essayé de rajouter la librairie, avec les 2 tests suivants:
    1/ <scalar-parameter name> et <property name="paramName">
    puis dans
    2/ <property name="paramName">

    Il y a une erreur supplémentaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Linked report parameter "tstlib.dtDatMin" of the data set parameter "param_1" does not exist now
    Tout se passe comme si le paramètre était inconnu au niveau de la librairie, et/ou la date non initialisée (à sa valeur par défaut).
    Le message d'erreur suivant s'affiche également
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Reference Error: "params" n'est pas défini
    J'ai bien essayé de faire une initialisation par le biais d'un fichier .js inclu dans la librairie, sans plus de résultat...

    Si je définis un autre paramètre à la place de la date, de type entier par ex, il n'y a pas d'erreur!


    Ci-après les extraits de code:
    Définition paramètre dans la librairie (test 2/):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        <parameters>
            <scalar-parameter name="dtDatMin" id="143">
                <text-property name="helpText">Format date jj/mm/yyyy</text-property>
                <text-property name="promptText">Période du :</text-property>
                <property name="valueType">static</property>
                <property name="dataType">date</property>
                <property name="distinct">true</property>
                <simple-property-list name="defaultValue">
                    <value type="javascript">BirtDateTime.today()</value>
                </simple-property-list>
                <property name="paramType">simple</property>
                <property name="controlType">text-box</property>

    Association bind variable/paramètre pour la requête dans la librarie (test 2/)):
    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
            <oda-data-set extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet" name="req_tst" id="71">
                <list-property name="parameters">
                    <structure>
                        <property name="name">param_1</property>
                        <property name="paramName">tstlib.dtDatMin</property>
                        <property name="dataType">date</property>
                        <property name="position">1</property>
                        <property name="isInput">true</property>
                        <property name="isOutput">false</property>
                    </structure>
                </list-property>
                <structure name="cachedMetaData"/>
                <property name="dataSource">ds_oracle</property>
                <xml-property name="queryText"><![CDATA[select ID, date_stat,operator_id
    from stat_threads
    where date_stat > ?]]

  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
    Je cherche des solutions, je n'ai pas dit que je l'avais.

    Revenons à ce que tu avais au début et je vais te poser quelques questions :
    • A quel niveau est défini ton DataSource ? (librairie ou rapport)
    • A quel niveau est défini ton DataSet ? (librairie ou rapport)
    • A quel niveau est défini le paramètre ? (librairie ou rapport) On parle ici de la définition du paramètre et non pas du lien entre le paramètre et le DataSet.
    • Le DataSet est-il bien celui de la librairie liée au rapport ? (Est-ce que le DataSet est-il importé de la librairie vers le rapport ?)
    • Le paramètre est-il bien celui de la librairie liée au rapport ? (Est-ce que le paramètre est-il importé de la librairie vers le rapport ?)

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    Désolée, pour le manque de précisions
    Le datasource, le dataset, le paramètre (dtDatMin), la requête sont tous définis dans la même librairie (tstLib).
    Le paramètre dtDatMin correspond au paramètre de la requête. Dans le champ 'parameters' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Name= param_1
    Data Type= Date
    Direction= Input
    Default value=N/A
    Linked to Report Parameter= dtDatMin

  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
    Tu as ta librairie avec :
    • Ton DataSource
    • Ton DataSet qui appèle le paramètre MaSaisie
    • Ton paramètre MaSaisie


    Dans ton rapport, tu dois :
    • Lier le rapport à la librairie
    • Importer le DataSet de la librairie
    • Importer le paramètre MaSaisie de la librairie pour pouvoir l'initialiser tranquillement


    Et après tests, ça fonctionne (sachant que j'ai une très très vieille version sous la main là...).

  7. #7
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    Les 6 conditions que tu viens de citer sont OK.
    C'est quand j'exécute le rapport dans la librairie que j'ai les messages d'erreur: est-ce normal?
    De plus dans le fichier XML de mon rapport, il y a des références aux colonnes du dataset, alors que ce devrait être au niveau de la librairie.

    J'observe aussi un dysfonctionnement lors du rafraîchissement en cas de modification.
    Ainsi, si je rajoute une colonne dans la requête au niveau de la librairie:
    • le message d'erreur suivant apparait de nouveau
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
       référence error: "params" n'est pas défini
    • la nouvelle colonne n'est pas visible en dépliant la 'vue' de la requête au niveau du rapport, malgré un refresh de la librairie
    • (j'effectue la modification au niveau du dataset de la librairie). Le contenu de la requête (Query) est synchro avec la librairie
    • pour synchroniser le binding du dataset du rapport, je dois faire un remove du dataset dans le rapport et le réimporter


    Est-ce que ce ne serait pas un bug de la version BIRT 2.5.1?
    J'envoie mes 2 fichiers de test, est-ce que ce serait possible de m'envoyer les tiens par MP, afin que je teste/compare sur ma plateforme?

    Merci pour ton aide
    Fichiers attachés Fichiers attachés

  8. #8
    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
    Je regarderais chez moi ce soir.

    Je ne peux pas uploader de fichiers d'ici ni télécharger BIRT 2.5.1.

  9. #9
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    Le message n'apparait pas dans les rapports cibles (utilisant la librairie), et la requête s'exécute normalement.
    S'il y a une désynchronisation entre la requête au niveau de la librairie, et le lien vers cette requête au niveau du rapport:
    il suffit d'oter, au niveau du rapport, le code xml rajouté entre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <oda-data-set extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet" name="maRequete" id="7265"
     extends="librairie.maRequete">
    et

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

Discussions similaires

  1. Réutiliser des données d'une requête dans une requête
    Par mims1664 dans le forum Requêtes
    Réponses: 12
    Dernier message: 06/02/2009, 14h12
  2. Est-il possible de retourner la source d'une page dans une variable ?
    Par sachav dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/12/2007, 18h02
  3. [SQL] Est-il possible d'afficher le résultat d'une requête dans un cadre
    Par dessinateurttuyen dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 18/07/2006, 17h52
  4. Réponses: 2
    Dernier message: 02/06/2006, 11h26
  5. Réponses: 4
    Dernier message: 01/12/2005, 14h36

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