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 :

Cross tab afficher tous les jours du mois


Sujet :

BIRT

  1. #1
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut Cross tab afficher tous les jours du mois
    Bonjour à tous et à toutes,

    Comment fait on pour afficher tous les jours d'un mois passé en paramètre avec date_debut et date_fin dans une crosstab.

    Merci d'avance pour votre aide

  2. #2
    Membre averti

    Inscrit en
    Avril 2010
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 178
    Points : 418
    Points
    418
    Par défaut
    C'est au niveau de la construction de ton dataset que ça va se jouer. Si tu veux voir affiché chaque jour, tu devras avoir une ligne de dataset au moins par jour, avec une date correspondant au jour.

    Ton besoin a plus l'air d'un graphique que d'un data cube. Tu veux faire quoi, simuler un calendrier ?

  3. #3
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Citation Envoyé par nicolas.1.vives Voir le message
    C'est au niveau de la construction de ton dataset que ça va se jouer. Si tu veux voir affiché chaque jour, tu devras avoir une ligne de dataset au moins par jour, avec une date correspondant au jour.

    Ton besoin a plus l'air d'un graphique que d'un data cube. Tu veux faire quoi, simuler un calendrier ?
    Oui en quelque sorte je voudrai simuler un calendrier. J'ai eu se besoin à plusieurs reprise lorsque je veux faire des statistiques sur un mois complet. (cf. ici)

  4. #4
    Membre averti

    Inscrit en
    Avril 2010
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 178
    Points : 418
    Points
    418
    Par défaut
    Bon, bah tu es bon pour changer ton modèle de données.
    Tu vas devoir insérer une ligne pour chaque jour entre tes dates, avec la date correspondant quelque part et des valeurs nulles dans les autres champs.
    Car on ne peut pas afficher des lignes relatives à un groupe sur une valeur de champ si cette valeur n'existe pas dans le jeu de données.
    Bon courage.

  5. #5
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Citation Envoyé par nicolas.1.vives Voir le message
    Bon, bah tu es bon pour changer ton modèle de données.
    Tu vas devoir insérer une ligne pour chaque jour entre tes dates, avec la date correspondant quelque part et des valeurs nulles dans les autres champs.
    Car on ne peut pas afficher des lignes relatives à un groupe sur une valeur de champ si cette valeur n'existe pas dans le jeu de données.
    Bon courage.
    Le soucis étant que le modèle de donnée m'a été donnée telle quel et je n'ai pas le droit de le changer. Donc j'en déduit qu'il n'y a pas de solution de cette façon la!

    D'après toi est il possible de le faire via le script?

  6. #6
    Membre averti

    Inscrit en
    Avril 2010
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 178
    Points : 418
    Points
    418
    Par défaut
    Je ne m'y connais pas assez en scripting javascript ou SQL pour te proposer une solution. Personnellement j'utilise des dataset alimentés en java (cia les Scripted Data Sources et les Data Set Event Handlers), et en java ce serait assez facile, mais si tu n'as pas ce genre d'architecture en place ca serait couteux de le faire juste pour ça.
    Tu vas devoir fouiller. Tu peux aussi demander de l'aide sur le forum anglophone, ils sont plus nombreux et plus compétents là bas (sur birt-exchange).

    Bon courage.

  7. #7
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    D'accord je vais essayer sur birt-exchange!
    Merci pour ton aide

  8. #8
    Membre averti

    Inscrit en
    Avril 2010
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 178
    Points : 418
    Points
    418
    Par défaut
    Si VRAIMENT tu n'as pas de solution, tu peux tenter cet énorme bidouillage qui consiste à construire un calendrier mensuel à la main.

    Je m'explique :
    • Tu fais un tableau avec un groupe sur la date, groupé par mois (il faut au minimum une date dans le mois pour qu'il s'affiche).
    • Dans la ligne de group header, tu mets un autre tableau. Ce sous-tableau est constitué de 5 lignes et 7 colonnes.
    • Tu filtres les données du sous-tableau en fonction du mois actuel de ton super-tableau.
    • Dans chaque case du sous-tableau, tu mets une agrégation sur la donnée que tu veux afficher (somme de quantité, comptage de dates, etc).
    • Sur CHAQUE agrégation, tu mets un filtre de date correspondant au jour de la case :
      • Un filtre sur le jour de la semaine, indentique pour chaque case d'une même colonne (lundi pour la première, mardi pour la seconde, etc) ;
      • Un filtre sur le jour du mois, identique pour chaque ligne (première ligne, entre 1 et 7 ; deuxième, entre 8 et 15 ; etc).


    Tu as ton calendrier. Je sais, c'est pourri, c'est la vie

    Edit :
    A vrai dire, tu n'as pas besoin de faire de sous-tableau : fais juste 5 lignes de group header dans ton premier tableau et construis ton calendrier dedans directement.

  9. #9
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Merci, je vais tout de même essayer de trouver une solution avec une cross tab afin d'avoir tout les jours sur une seul ligne.
    Cependant, je vais tout de même essayer ce que tu me propose par curiosité

  10. #10
    Membre averti

    Inscrit en
    Avril 2010
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 178
    Points : 418
    Points
    418
    Par défaut
    Le principe est le même, tu vas avoir une ligne de 31 cases et un filtre sur le jour du mois.

    Tu me diras ce que ça aura donné.

    Bon courage.

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 229
    Points : 137
    Points
    137
    Par défaut
    Bonjour

    Exemples de Script SQL (Oracle) permettant de lister tous les jours entre 2 dates

    L'idée étant de faire son select sur une table relativement grosse en nombre de lignes et pouvant contenir l'ensemble des jours à générer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT TO_DATE ('MaDatedeDebut', 'dd/mm/yyyy') + ROWNUM -1 AS jour
              FROM  commandes
             WHERE ROWNUM <= TO_DATE ('MaDatedeFin', 'dd/mm/yyyy') - TO_DATE ('MaDatedeDebut', 'dd/mm/yyyy') + 1
    Autre méthode moins gourmande en ressources car elle n'utilise pas de table du modele
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT LEVEL + to_date('01/01/2009', 'dd/mm/yyyy') - 1 as jour FROM dual
    CONNECT BY LEVEL < to_date('01/02/2009', 'dd/mm/yyyy') - to_date('01/01/2009', 'dd/mm/yyyy') + 1
    Peut-être s'en inspirer si vous n'utilisez pas Oracle.
    J'espere que cela pourra aider.

  12. #12
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Merci pour cette réponse.
    Cependant, je n'utilise pas Oracle et ceci ne fonctionne pas lorsque je l'execute (TO_DATE n'existe pas, ROWNUM impossible a definir,...)
    Merci tout de même car ceci pourrait me servir une autre fois

Discussions similaires

  1. afficher tous les jours d'une année
    Par gagalive dans le forum SQL
    Réponses: 9
    Dernier message: 13/07/2009, 10h37
  2. afficher tous les enregistrement du mois courant
    Par toxicoakatox dans le forum Bases de données
    Réponses: 15
    Dernier message: 08/07/2009, 18h05
  3. lu tous les jours mais exécuté une seule fois par mois
    Par sianto dans le forum Scripts/Batch
    Réponses: 13
    Dernier message: 17/11/2008, 09h08
  4. tous les jours depuis x mois
    Par wwluigi dans le forum SQL
    Réponses: 3
    Dernier message: 10/07/2008, 13h35
  5. [Dates] Afficher les jours du mois dans un formulaire
    Par Jimmy Monkey dans le forum Langage
    Réponses: 7
    Dernier message: 30/12/2007, 11h27

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