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 :

Utilisation des paramètres BIRT


Sujet :

BIRT

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Utilisation des paramètres BIRT
    Bonjour,
    J'ai une petite question concernant les paramètres dans un rapport birt, je m'explique:

    Pour pouvoir générer un rapport sur des collaborateurs et leurs differents heures (prestés,congé payé, formation, maladie,...)

    Pour cela je suis passé par une fonction qui prend en parametres un id_collaborateur, date_debut, date_fin, et un type (Maladie, Formation...) et qui me renvoi un entier qui correspond au nombre d'heures.

    Voila la fonction :
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
    CREATE OR REPLACE FUNCTION "public"."count_jours" (id_coll integer, date1 date, date2 date, param text) RETURNS integer AS
    $body$
    DECLARE
        rec record; 
    	result INTEGER;
    BEGIN
       result=0;
    	FOR rec IN select * from rapport_activite where id_collaborateur = id_coll and date_rapport_activite between date1 and date2  LOOP
     
        	IF rec.jour1_am_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour1_pm_rapport_activite = param THEN result := result+1; END IF; 
            IF rec.jour2_am_rapport_activite = param THEN result := result+1; END IF; 
            IF rec.jour2_pm_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour3_am_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour3_pm_rapport_activite = param THEN result := result+1; END IF;  
            IF rec.jour4_am_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour4_pm_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour5_am_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour5_pm_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour6_am_rapport_activite = param THEN result := result+1; END IF; 
            IF rec.jour6_pm_rapport_activite = param THEN result := result+1; END IF; 
            IF rec.jour7_am_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour7_pm_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour8_am_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour8_pm_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour9_am_rapport_activite = param THEN result := result+1; END IF;  
            IF rec.jour9_pm_rapport_activite = param THEN result := result+1; END IF; 
            IF rec.jour10_am_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour10_pm_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour11_am_rapport_activite = param THEN result := result+1; END IF;  
            IF rec.jour11_pm_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour12_am_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour12_pm_rapport_activite = param THEN result := result+1; END IF; 
            IF rec.jour13_am_rapport_activite = param THEN result := result+1; END IF; 
            IF rec.jour13_pm_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour14_am_rapport_activite = param THEN result := result+1; END IF; 
            IF rec.jour14_pm_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour15_am_rapport_activite = param THEN result := result+1; END IF; 
            IF rec.jour15_pm_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour16_am_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour16_pm_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour17_am_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour17_pm_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour18_am_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour18_pm_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour19_am_rapport_activite = param THEN result := result+1; END IF; 
            IF rec.jour19_pm_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour20_am_rapport_activite = param THEN result := result+1; END IF; 
            IF rec.jour20_pm_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour21_am_rapport_activite = param THEN result := result+1; END IF; 
            IF rec.jour21_pm_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour22_am_rapport_activite = param THEN result := result+1; END IF; 
            IF rec.jour22_pm_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour23_am_rapport_activite = param THEN result := result+1; END IF; 
            IF rec.jour23_pm_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour24_am_rapport_activite = param THEN result := result+1; END IF; 
            IF rec.jour24_pm_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour25_am_rapport_activite = param THEN result := result+1; END IF; 
            IF rec.jour25_pm_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour26_am_rapport_activite = param THEN result := result+1; END IF; 
            IF rec.jour26_pm_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour27_am_rapport_activite = param THEN result := result+1; END IF; 
            IF rec.jour27_pm_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour28_am_rapport_activite = param THEN result := result+1; END IF; 
            IF rec.jour28_pm_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour29_am_rapport_activite = param THEN result := result+1; END IF; 
            IF rec.jour29_pm_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour30_am_rapport_activite = param THEN result := result+1; END IF; 
            IF rec.jour30_pm_rapport_activite = param THEN result := result+1; END IF;
            IF rec.jour31_am_rapport_activite = param THEN result := result+1; END IF; 
            IF rec.jour31_pm_rapport_activite = param THEN result := result+1; END IF;
     
            END LOOP;
        RETURN result;
    END;
    $body$
    LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
    Je souhaite utiliser cette fonction plusieurs fois dans la requete de mon dataset de la maniere suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    select 
    	nom_collaborateur,
    	prenom_collaborateur,
    	public.count_jours(id_collaborateur,?,?,'MAL')
    	public.count_jours(id_collaborateur,?,?,'FO')
    	public.count_jours(id_collaborateur,?,?,'CP')
     
    from collaborateur
    Les "?" correspondent à des dates de début et de fin de période qui reste les même pour chaque appel de la fonction.
    Comment faire pour utiliser plusieurs fois un meme parametre?
    Peut on définir des "variables globales"?

    Merci d'avance

  2. #2
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 8
    Points : 5
    Points
    5
    Par défaut La suite
    Bon j'ai trouvé la reponse à ma question,

    Il suffisait de créer de nouveau paramètres et de les mapper avec le même parametre de rapport que pour les premier paramètres

    Et ca fonctionne!!!

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 15/01/2009, 16h09
  2. [2.2.0] Utilisation des Paramètres
    Par GAEREL dans le forum BIRT
    Réponses: 7
    Dernier message: 25/06/2008, 13h54
  3. Réponses: 3
    Dernier message: 14/03/2008, 22h09
  4. Utilisation des paramètres avec rowsource - 97 et 2003
    Par IntenseM3 dans le forum Access
    Réponses: 1
    Dernier message: 10/05/2006, 09h18

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