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

iReport Discussion :

Edition tableau des jurys - complexe


Sujet :

iReport

  1. #1
    Membre à l'essai
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2012
    Messages : 14
    Points : 14
    Points
    14
    Par défaut Edition tableau des jurys - complexe
    Bonjour à vous,

    Voilà je dois imprimer à l'aide d'IReport un tableau synthétisant pour toute la promo leurs différentes notes ainsi que leurs notes Bullats et D'autres crédits.

    Mon soucis est le suivant c'est que je peux récupérer certaines informations à l'aide d'une requête sql et les autres informations à partir d'une autre requête.

    J'aurais aimer de l'aide afin de m'aider à concaténer les 2 requêtes pour qu'IReport l'accepte enfin.

    Voici les 2 requêtes :

    Requête 1:

    with q1 as (
    -- (R.1)
    select
    apprenant.objet_id as id_interne_aurion,
    module.code AS "Période",
    apprenant.ind_nom AS "Nom",
    apprenant.ind_prenom AS "Prénom",
    inscription_module.moyenne AS "Moyenne",
    inscription_module.classement AS "Classement",
    inscription_module.nombre_credits_potentiels AS "Crédits potentiels",
    inscription_module.nombre_credits_obtenus AS "Crédits obtenus",
    inscription_module.taux_credits_obtenus AS "Taux crédits obtenus/crédits potentiels"
    from (select o.* from auriga.t_individus o where true and o.est_apprenant) apprenant
    left join auriga.t_inscriptions_module inscription_module on inscription_module.apprenant_id = apprenant.objet_id
    left join auriga.t_modules module on module.objet_id = inscription_module.module_id
    where (true
    and (module.code = 'S7')
    )
    )
    , q2 as (
    -- BULATS (R.4)
    select
    apprenant.objet_id as id_interne_aurion,
    type_evenement.code AS "Code.Type d'événement",
    D1.attribut_valfloat AS "SCORE.Attestation de niveau de langue"
    from (select o.* from auriga.t_individus o where true and o.est_apprenant and exists (select 1 from q1 where id_interne_aurion = o.objet_id)) apprenant
    left join auriga.t_apprenants_evenements R1 on R1.apprenant_id = apprenant.objet_id
    left join auriga.t_evenements evenement on evenement.objet_id = R1.evenement_id
    left join auriga.t_types_evenement type_evenement on type_evenement.objet_id = evenement.type_evenement_id
    left join auriga.t_relations R2 on R2.source_id = evenement.objet_id and R2.relation_nom = 'evenement-type_evenement_7'
    left join auriga.t_objets type_evenement_7 on type_evenement_7.objet_id = R2.dest_id and type_evenement_7.type = 'type_evenement_7' and not (type_evenement_7.efface or type_evenement_7.obsolete)
    left join auriga.t_donnees D1 on (D1.objet_id, D1.attribut_id) = (type_evenement_7.objet_id, 246292)
    where (true
    and (type_evenement.code = 'ATTEST_NIV_LANGUE')
    )
    )
    , q3 as (
    -- bonif SP (R.3)
    select
    apprenant.objet_id as id_interne_aurion,
    cours.code AS "Cours Bonif SP",
    inscription_cours.nombre_credits_obtenus AS "Crédits Bonif SP"
    from (select o.* from auriga.t_individus o where true and o.est_apprenant and exists (select 1 from q1 where id_interne_aurion = o.objet_id)) apprenant
    left join auriga.t_inscriptions_cours inscription_cours on inscription_cours.apprenant_id = apprenant.objet_id
    left join auriga.t_cours cours on cours.objet_id = inscription_cours.cours_id
    where (true
    and (cours.code = '12_SP_BONIF_E1')
    )
    )
    , q4 as (
    -- bonif SA (R.2)
    select
    apprenant.objet_id as id_interne_aurion,
    cours.code AS "Cours Bonif SA",
    inscription_cours.nombre_credits_obtenus AS "Crédits bonif SA"
    from (select o.* from auriga.t_individus o where true and o.est_apprenant and exists (select 1 from q1 where id_interne_aurion = o.objet_id)) apprenant
    left join auriga.t_inscriptions_cours inscription_cours on inscription_cours.apprenant_id = apprenant.objet_id
    left join auriga.t_cours cours on cours.objet_id = inscription_cours.cours_id
    where (true
    and (cours.code = '12_SA_BONIF_E1')
    )
    )
    select
    (array_agg(distinct id_interne_aurion))[1] as id_interne_aurion,
    q1."Période",
    q1."Nom",
    q1."Prénom",
    q1."Moyenne",
    q1."Classement",
    q1."Crédits potentiels",
    q1."Crédits obtenus",
    q1."Taux crédits obtenus/crédits potentiels",
    q4."Cours Bonif SA",
    q4."Crédits bonif SA",
    q3."Cours Bonif SP",
    q3."Crédits Bonif SP",
    q2."Code.Type d'événement",
    (max(q2."SCORE.Attestation de niveau de langue")) as "Meilleur score au Bulats"
    from q1 full join q2 using (id_interne_aurion) full join q3 using (id_interne_aurion) full join q4 using (id_interne_aurion)
    where true /* and id_interne_aurion= any(('{' || $P{ObjectID_List} || '}')::integer[]) */
    and q1.id_interne_aurion is not null
    group by q1."Période", q1."Nom", q1."Prénom", q1."Moyenne", q1."Classement", q1."Crédits potentiels", q1."Crédits obtenus", q1."Taux crédits obtenus/crédits potentiels", q4."Cours Bonif SA", q4."Crédits bonif SA", q3."Cours Bonif SP", q3."Crédits Bonif SP", q2."Code.Type d'événement"
    order by q1."Classement" asc, q1."Moyenne" asc


    Requête 2:

    with cte_classements as (
    select srs.line_id, srs.student_id, nullif(srs.classement_final, 0) as classement_final
    from auriga.t_scola_result_entetes sre
    join t_scola_result_students srs on (srs.calcul_id, srs.line_id) = (sre.calcul_id, sre.line_id)
    where sre.calcul_id = ($P{Parametres}::hstore->'calcul_id')::integer
    )

    select bulletin.*, classement.classement_final as classement_racine
    from bulletin(
    ('{' || $P{ApprenantIDs} || '}')::integer[],
    ($P{Parametres}::text ||
    ',"avec_arborescence"=>"no"
    ,"avec_epreuves"=>"yes"
    ,"avec_appreciations_groupe"=>"no"
    ,"avec_appreciations_modules"=>"no"
    ,"avec_appreciations_cours"=>"no"
    ,"avec_appreciations_notes"=>"no"
    ,"avec_traduction_lignes"=>"yes"')::hstore

    -- Activer cette ligne et renseigner "${langue_id}" si on veut forcer l'utilisation d'une langue ayant l'id "id_langue"
    -- || ('"langue_id"=>${langue_id}')::hstore
    ) bulletin

    -- classement
    left join cte_classements classement on classement.student_id = bulletin.apprenant_id

    order by classement.classement_final, apprenant_nom, bulletin.apprenant_prenom, bulletin.destinataire_id, bulletin.adresse_id, bulletin.ligne_ordre;


    Je n'arrive pas à trouver la solution, est-ce que quelqu'un pourrait m'aider où m'orienter pour que je puisse récupérer tous les champs dans IReport et finaliser mon édition ?


    Merci beaucoup.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2012
    Messages : 14
    Points : 14
    Points
    14
    Par défaut travail avancé mais pas finit
    Bonjour,

    Voilà jusqu'où j'ai pu avancer dans cette requête :

    with cte_classements as (
    select srs.line_id, srs.student_id, nullif(srs.classement_final, 0) as classement_final
    from auriga.t_scola_result_entetes sre
    join t_scola_result_students srs on (srs.calcul_id, srs.line_id) = (sre.calcul_id, sre.line_id)
    where sre.calcul_id = ($P{Parametres}::hstore->'calcul_id')::integer
    ),
    q1 as (
    -- (R.1)
    select
    apprenant.objet_id as id_interne_aurion,
    module.code AS "Période",
    apprenant.ind_nom AS "Nom",
    apprenant.ind_prenom AS "Prénom",
    inscription_module.moyenne AS "Moyenne",
    inscription_module.classement AS "Classement",
    inscription_module.nombre_credits_potentiels AS "Crédits potentiels",
    inscription_module.nombre_credits_obtenus AS "Crédits obtenus",
    inscription_module.taux_credits_obtenus AS "Taux crédits obtenus/crédits potentiels"
    from (select o.* from auriga.t_individus o where true and o.est_apprenant) apprenant
    left join auriga.t_inscriptions_module inscription_module on inscription_module.apprenant_id = apprenant.objet_id
    left join auriga.t_modules module on module.objet_id = inscription_module.module_id
    where (true
    and (module.code = 'S7')
    )
    )
    , q2 as (
    -- BULATS (R.4)
    select
    apprenant.objet_id as id_interne_aurion,
    type_evenement.code AS "Code.Type d'événement",
    D1.attribut_valfloat AS "SCORE.Attestation de niveau de langue"
    from (select o.* from auriga.t_individus o where true and o.est_apprenant and exists (select 1 from q1 where id_interne_aurion = o.objet_id)) apprenant
    left join auriga.t_apprenants_evenements R1 on R1.apprenant_id = apprenant.objet_id
    left join auriga.t_evenements evenement on evenement.objet_id = R1.evenement_id
    left join auriga.t_types_evenement type_evenement on type_evenement.objet_id = evenement.type_evenement_id
    left join auriga.t_relations R2 on R2.source_id = evenement.objet_id and R2.relation_nom = 'evenement-type_evenement_7'
    left join auriga.t_objets type_evenement_7 on type_evenement_7.objet_id = R2.dest_id and type_evenement_7.type = 'type_evenement_7' and not (type_evenement_7.efface or type_evenement_7.obsolete)
    left join auriga.t_donnees D1 on (D1.objet_id, D1.attribut_id) = (type_evenement_7.objet_id, 246292)
    where (true
    and (type_evenement.code = 'ATTEST_NIV_LANGUE')
    )
    )
    , q3 as (
    -- bonif SP (R.3)
    select
    apprenant.objet_id as id_interne_aurion,
    cours.code AS "Cours Bonif SP",
    inscription_cours.nombre_credits_obtenus AS "Crédits Bonif SP"
    from (select o.* from auriga.t_individus o where true and o.est_apprenant and exists (select 1 from q1 where id_interne_aurion = o.objet_id)) apprenant
    left join auriga.t_inscriptions_cours inscription_cours on inscription_cours.apprenant_id = apprenant.objet_id
    left join auriga.t_cours cours on cours.objet_id = inscription_cours.cours_id
    where (true
    and (cours.code = '12_SP_BONIF_E1')
    )
    )
    , q4 as (
    -- bonif SA (R.2)
    select
    apprenant.objet_id as id_interne_aurion,
    cours.code AS "Cours Bonif SA",
    inscription_cours.nombre_credits_obtenus AS "Crédits bonif SA"
    from (select o.* from auriga.t_individus o where true and o.est_apprenant and exists (select 1 from q1 where id_interne_aurion = o.objet_id)) apprenant
    left join auriga.t_inscriptions_cours inscription_cours on inscription_cours.apprenant_id = apprenant.objet_id
    left join auriga.t_cours cours on cours.objet_id = inscription_cours.cours_id
    where (true
    and (cours.code = '12_SA_BONIF_E1')
    )
    )
    (
    select
    (array_agg(distinct id_interne_aurion))[1] as id_interne_aurion,
    q1."Période",
    q1."Nom",
    q1."Prénom",
    q1."Moyenne",
    q1."Classement",
    q1."Crédits potentiels",
    q1."Crédits obtenus",
    q1."Taux crédits obtenus/crédits potentiels",
    q4."Cours Bonif SA",
    q4."Crédits bonif SA",
    q3."Cours Bonif SP",
    q3."Crédits Bonif SP",
    q2."Code.Type d'événement",
    (max(q2."SCORE.Attestation de niveau de langue")) as "Meilleur score au Bulats"
    from q1 full join q2 using (id_interne_aurion) full join q3 using (id_interne_aurion) full join q4 using (id_interne_aurion)
    where true and id_interne_aurion= any(('{' || $P{ObjectID_List} || '}')::integer[])
    and q1.id_interne_aurion is not null

    group by q1."Période", q1."Nom", q1."Prénom", q1."Moyenne", q1."Classement", q1."Crédits potentiels", q1."Crédits obtenus", q1."Taux crédits obtenus/crédits potentiels", q4."Cours Bonif SA", q4."Crédits bonif SA", q3."Cours Bonif SP", q3."Crédits Bonif SP", q2."Code.Type d'événement"
    order by q1."Classement" asc, q1."Moyenne" asc
    )
    union

    select bulletin.*, classement.classement_final as classement_racine
    from bulletin(
    ('{' || $P{ApprenantIDs} || '}')::integer[],
    ($P{Parametres}::text ||
    ',"avec_arborescence"=>"no"
    ,"avec_epreuves"=>"yes"
    ,"avec_appreciations_groupe"=>"no"
    ,"avec_appreciations_modules"=>"no"
    ,"avec_appreciations_cours"=>"no"
    ,"avec_appreciations_notes"=>"no"
    ,"avec_traduction_lignes"=>"yes"')::hstore

    -- Activer cette ligne et renseigner "${langue_id}" si on veut forcer l'utilisation d'une langue ayant l'id "id_langue"
    -- || ('"langue_id"=>${langue_id}')::hstore
    ) bulletin

    -- classement
    left join cte_classements classement on classement.student_id = bulletin.apprenant_id

    order by classement.classement_final, apprenant_nom, bulletin.apprenant_prenom, bulletin.destinataire_id, bulletin.adresse_id, bulletin.ligne_ordre;


    Jusque là IReport me dit juste que each union query must have the same number of columns, rien de surprenant.

    Ma première requête ne contient que 13 columns tandis que la seconde en contient 52 !

    Comment faire ?


    Merci beauocup.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2012
    Messages : 14
    Points : 14
    Points
    14
    Par défaut
    Re-Bonjour, désolé de poster autant de post.

    Mais j'essaie d'avancer le plus vite possible.

    J'ai bien mis le même nombre de champs dans chaque requête, mais maintenant le problème est : Union types character varying and boolean cannot be matched.

    Comment identifier le type de chaque variable avec IReport ou avec Postgre ?


    Merci pour votre aide.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2012
    Messages : 14
    Points : 14
    Points
    14
    Par défaut
    je le met en résolu car je l'ai posté du côté du forum sql ce qui serait plus logique.

    Merci à vous.

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

Discussions similaires

  1. Travailler avec des paramètres complexes
    Par qveenz dans le forum Bases de données
    Réponses: 2
    Dernier message: 13/11/2007, 11h16
  2. Utilisation des nombres complexes en C
    Par toupitoui dans le forum C
    Réponses: 4
    Dernier message: 01/11/2006, 15h50
  3. tableau des carateres et des relles
    Par jalilc dans le forum C
    Réponses: 12
    Dernier message: 06/05/2006, 19h10
  4. Tableau des emplois
    Par Oberown dans le forum Emploi
    Réponses: 3
    Dernier message: 24/10/2005, 18h50
  5. Travailler / Créer des objets complexes
    Par Ekinoks dans le forum OpenGL
    Réponses: 3
    Dernier message: 22/08/2005, 14h38

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