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 :

BIRT 4.3.2 problème paramètre date dataset


Sujet :

BIRT

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mai 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2014
    Messages : 46
    Points : 34
    Points
    34
    Par défaut BIRT 4.3.2 problème paramètre date dataset
    Bonjour,

    Voila j'ai un problème au niveau de parametre que j'utilise pour faire un data set
    En gros dans mon rapport j'ai deux paramètre : ParameterMois (ex : 05 pour mai) et ParameterAnnée (ex : 2014).
    Je souhaite utilisé ces paramètres dans une requete sql pour lister une liste de ticket avant une certaine date

    Quand je mets en dur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ticket.create_time <  '2014-07'
    cela me retourne bien toute ma liste ensuite j'ai voulu mettre avec des paramètres ...
    Quand je mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ticket.create_time < ?'-'?
    avec comme premier paramètre l'année et le 2e le mois je n'ai que les tickets de 2013 ...
    Quand je mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (MONTH(ticket.create_time) < ? AND YEAR(ticket.create_time) <= ?)
    avec comme premier paramètre le mois et le 2e l'année je n'ai que les tickets de 2014 ...

    Je ne vois pas quoi faire ...

    Merci d'avance

  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,

    Les dates sont souvent un peu délicates à gérer. Ta première solution est syntaxiquement fausse car les bases de données n'autorisent pas de concaténer des paramètres SQL (cela ouvrirait potentiellement la portes aux attaques par injection SQL). Quant à la deuxième solution elle ne fait pas ce que tu souhaites car le test du mois s'applique à toutes les années: cela signifie qu'en sélectionnant juillet 2014, on "perd" les mois de juillet à décembre 2013.

    Une solution élégante est de ne créer qu'un seul paramètre de dataset:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ticket.create_time <= ?
    On ne lie pas ce paramètre à un paramètre de rapport, mais à une expression dans le champs "Default value":

    Nom : date-filter.png
Affichages : 331
Taille : 24,1 Ko

    L'expression correspondante doit retourner une date à partir des paramètres de rapport mois et année. Dans ton exemple le mois sélectionné n'est pas à inclure dans le résultat, une astuce est de se positionner sur le premier jour du mois sélectionné, et de "reculer" d'un jour avec la fonction birt diffDay. C'est pourquoi dans la requête de cet exemple il faut mettre "<=" et pas "<":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var date=new Date(params["Year"].value,params["Month"].value,1); //crée une date au premier jour du mois sélectionné
    BirtDateTime.diffDay(date,1); //on recule d'un jour pour obtenir le dernier jour du mois précédent

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mai 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2014
    Messages : 46
    Points : 34
    Points
    34
    Par défaut
    J'avais pas pensé à créer une expression. En effet tout est plus simple avec une expression qui définie le paramètre que l'on souhaite
    Merci encore pour l'aide ^^

  4. #4
    Candidat au Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2012
    Messages
    0
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2012
    Messages : 0
    Points : 3
    Points
    3
    Par défaut
    bonjour à tous
    j 'ai moi aussi une difficulté avec des rapports paramétrés
    J'ai en effet créé un rapport dont des défini un paramètre de rapport et du data set en créant un data set avec le symbole ? dans la clause WHERE pour etre remplacé par la valeur du paramètre qui est une sélection d'un élément d'une liste déroulante.

    Et lors de l'exécution j 'ai la page de sélection de paramètres qui s'affiche mais elle est toute blanche avec rien dessus,
    personnellement j 'ai refait la procédure plusieurs fois mais je ne vois pas ce qui cloche

    Si vous auriez des idées qui pourraient m'aider dans ma démarche, j'en serait ravie
    Merci d'avance pour votre aide

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

Discussions similaires

  1. Birt 4.3.2 calendrier paramètre date
    Par fripou dans le forum BIRT
    Réponses: 4
    Dernier message: 11/07/2014, 10h41
  2. [8i] Problème avec date en paramètre d'une procédure
    Par cmaignan dans le forum PL/SQL
    Réponses: 2
    Dernier message: 12/11/2013, 12h04
  3. Problème avec paramètre date dans Crystal Report
    Par callo dans le forum Windows Forms
    Réponses: 3
    Dernier message: 09/10/2008, 18h44
  4. Problème avec les paramètres date BDE/ODBC Oracle/XP Pro
    Par Bloon dans le forum Bases de données
    Réponses: 3
    Dernier message: 06/10/2004, 10h09
  5. Encore un probléme de date avec TADO !
    Par bNoureddine dans le forum Bases de données
    Réponses: 2
    Dernier message: 22/02/2004, 18h22

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