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 :

Report dynamique de colonnes dans un rapport


Sujet :

BIRT

  1. #1
    Membre du Club
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 76
    Points : 50
    Points
    50
    Par défaut Report dynamique de colonnes dans un rapport
    Bonjour,

    J'ignore si ce sujet à déjà été traité ici, mais j'ai pas mal cherché et je suis un peu "sec" là...

    Donc :

    J'ai un tableau de 14 colonnes de taille fixe.
    Quand j'affiche le rapport dans une page au format A4, la taille des colonnes s'adapte pour tout faire rentrer en une fois sur la largeur de la page.

    J'aimerais savoir s'il est possible de modifier le comportement du tableau pour qu'au lieu de tout faire rentrer sur la largeur, il découpe mon tableau de façon à avoir les colonnes manquantes reportées en dessous, tout en rappelant les colonnes 1,2 3 et 4.

    Petit schéma avec 7 colonnes au lieu de 14 :

    La table du .rptdesign telle que l'affiche le BIRT Report Designer
    <----------largeur A4------------->
    col1 | col2 | col3 | col4 | col5 | col6 | col7 |
    xxxx | xxxx | xxxx | xxxx | xxxx | xxxx | xxxx |
    ____ |____ |____ |____ |____ |____ |____ |

    Le comportement actuel observé dans le BIRT Viewer:
    <----------largeur A4------------->
    col1|col2|col3|col4|col5|col6|col7|
    xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|
    ___|____|___|____|___|___|____|

    Comportement souhaité:
    <----------largeur A4------------->
    col1 | col2 | col3 | col4 | col5 |
    xxxx | xxxx | xxxx | xxxx | xxxx|
    ____ |____ |____ |____ |____ |
    col1 | col2 | col3 | col4 | col6 |
    xxxx | xxxx | xxxx | xxxx | xxxx|
    ____ |____ |____ |____ |____ |
    col1 | col2 | col3 | col4 | col7 |
    xxxx | xxxx | xxxx | xxxx | xxxx|
    ____ |____ |____ |____ |____ |

    Voilà, j'espère avoir été assez clair.
    Je ne sait pas si BIRT fournit ce genre de paramétrage "de base", mais j'imagine que sinon, il va falloir que je développe un script sur l'évènement "onRender" du tableau...

  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,

    Pour résumer, tu ne veux pas que ta largeur de table s'adapte à la taille de la page.

    PS : Le comportement du .rptdesign (onglet Layout) est normal, il y a des "bugs" d'affichage dûs aux formules dans les colonnes, il faut ignorer ce comportement et toujours tester comme tu l'as fait

  3. #3
    Membre du Club
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 76
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par BiM Voir le message
    Pour résumer, tu ne veux pas que ta largeur de table s'adapte à la taille de la page.
    Et bien il y a à la fois cet aspect là et aussi le fait que pour chaque ligne du tableau:
    - les colonnes qui n'ont pas pu être affichées soient réécrites en dessous
    - une partie des colonnes qui ont pu être affichées soient réécrites en dessous

    Tout cela doit être dynamique, je ne peux donc pas faire simplement plusieurs tableaux les uns en dessous des autres dans le .rptdesign.

  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
    Ce n'est pas possible.

  5. #5
    Membre du Club
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 76
    Points : 50
    Points
    50
    Par défaut


    Hmm, il n'est pas possible d'empêcher BIRT d'adapter les tableaux à la taille de la page, ou bien d'adopter le comportement que j'ai décrit précédemment?

    Et quand tu dis que ce n' est pas possible, tu sous-entend que est Birt ne permet pas ce fonctionnement de base (mais que potentiellement on puisse modifier son comportement avec des scripts)ou bien que c'est purement et simplement pas faisable?

    Peux-tu m'éclairer un tantinet s'il te plait?

  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
    En fait, on peut adapter la taille d'un tableau ou des colonnes de celui-ci à la page.

    Mais on ne peux pas dire, je cache la colonne 3, 4 et 5 et j'affiche les 10 autres dès que les colonnes vont dépasser la largeur de la page.

    Mais si tu sais combien de colonnes rentrent au maximum sur la largeur d'une page tu peux le faire. C'est un peu compliqué mais faisable (à priori ).

  7. #7
    Membre expérimenté

    Profil pro
    Inscrit en
    Avril 2008
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 143
    Points : 1 353
    Points
    1 353
    Par défaut Précisions modes Auto ou Fixed
    BIRT peut fonctionner dans 2 modes :

    1. Auto ( par défaut ) : pour les rapports Web. en fonction de l'espace disponible , BIRT se "débrouille". Idem pour l'export PDF avec le "Fit to page".

    2. Fixed : pour les 'pixel perfect' , positionnement absolu des colonnes. Par contre c'est à vous de gérer les pages.

    Les 2 modes s'excluent réciproquement dans le même tableau pour des raisons évidentes .

    Des choses utiles : BIRT supporte 2 types de variables :

    Variable Page
    Variable Rapport

    Les 2 peuvent être "simples" ( liées soit au process de génération : Run , soit au process de viewing : Render ) soit "persistent" ( liées aux 2 et passées du Run au Render ).

    Donc typiquement, au fur et à mesure de ta construction de tableau, tu peux calculer la "taille" globale du tableau et voir si ça dépasse le cadre défini dans la master page. Si ca dépasse , tu peux choisir de continuer d'une autre façon.

    Astuce : dans un Crosstab tu peux faire un saut de page de manière verticale.

  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
    Wahou pas bête, j'aurais pas fait si tordu

    Non, c'est vrai que l'idée est bonne mais après il est difficile de calculer la largeur d'un tableau au fur et à mesure.

    A moins qu'il y ait une astuce ??

  9. #9
    Membre expérimenté

    Profil pro
    Inscrit en
    Avril 2008
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 143
    Points : 1 353
    Points
    1 353
    Par défaut :D
    Bah c'est tout moi ça , besoin tordu , réponse tordue.

    Tout dépend de quelques paramètres. Ils existent des formules de calcul en fonction du nombre de caractères à afficher , le font et ses attributs ( bold , italique , taille du font ).

    On se rapprochent un peu de l'éditique ici, mais les outils Actuate ont souvent concurrencé des outils éditique.

  10. #10
    Membre du Club
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 76
    Points : 50
    Points
    50
    Par défaut
    Bon, merci beaucoup à vous deux, je crois que j'ai pas mal d'informations à digérer et à creuser, ça va me faire l'après-midi

    Citation Envoyé par Stefan C Voir le message
    Astuce : dans un Crosstab tu peux faire un saut de page de manière verticale.
    C'est intéressant pour moi, car justement j'envisageait d'utiliser un Crosstab pour mon tableau

    Citation Envoyé par Stefan C Voir le message
    Tout dépend de quelques paramètres. Ils existent des formules de calcul en fonction du nombre de caractères à afficher , le font et ses attributs ( bold , italique , taille du font ).
    J'espère ne pas avoir à en arriver là, sinon je vais m'amuser je sens

    A priori avec toutes ces infos je devrais m'en tirer... donc je clos le sujet! merci

  11. #11
    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
    Disons que si la taille de tes colonnes est fixé, tu peux t'en sortir.

  12. #12
    Membre du Club
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 76
    Points : 50
    Points
    50
    Par défaut
    Hélas elles ne le sont pas (les valeurs affichées dans les colonnes pouvant être variables et n'étant pas limitées...)
    Cela dit je peux ptet' m'en sortir avec les Crosstab comme l'a suggéré Stefan

  13. #13
    Membre du Club
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 76
    Points : 50
    Points
    50
    Par défaut
    En fait j'avais mal compris ce qui était attendu!
    On souhaite non pas reporter à chaque ligne les colonnes si jamais la largeur de la page était dépassée, mais juste reporter à la ligne sur une nouvelle page, ce que BIRT fait en mode "Auto Layout" en fait!
    Par contre, il faut quand même que certaines colonnes soient rappelées après le saut de page, de façon à ce qu'on sache à quoi les lignes reportées sur une nouvelle page fassent référence... vous auriez une idée sur la façon de procéder?
    Est-ce qu'on peut paramétrer une propriété de colonne dans BIRT pour ça?

  14. #14
    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
    En gros on aurait :

    Page 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    +-----------+-----------+-----------+-----------+-----------+
    | Colonne 1 | Colonne 2 | Colonne 3 | Colonne 4 | Colonne 5 |
    +-----------+-----------+-----------+-----------+-----------+
    | Détail 1  | ...       | ...       | ...       | ...       |
    +-----------+-----------+-----------+-----------+-----------+
    | Détail 2  | ...       | ...       | ...       | ...       |
    +-----------+-----------+-----------+-----------+-----------+
    | Détail 3  | ...       | ...       | ...       | ...       |
    +-----------+-----------+-----------+-----------+-----------+
    | Détail 4  | ...       | ...       | ...       | ...       |
    +-----------+-----------+-----------+-----------+-----------+
    | Détail 5  | ...       | ...       | ...       | ...       |
    +-----------+-----------+-----------+-----------+-----------+
    Page 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    +--------------+-----------+
    | Colonne 6    | Colonne 7 |
    +--------------+-----------+
    | Détail 1 Bis | ...       |
    +--------------+-----------+
    | Détail 2 Bis | ...       |
    +--------------+-----------+
    | Détail 3 Bis | ...       |
    +--------------+-----------+
    | Détail 4 Bis | ...       |
    +--------------+-----------+
    | Détail 5 Bis | ...       |
    +--------------+-----------+
    Page 3 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    +-----------+-----------+-----------+-----------+-----------+
    | Colonne 1 | Colonne 2 | Colonne 3 | Colonne 4 | Colonne 5 |
    +-----------+-----------+-----------+-----------+-----------+
    | Détail 6  | ...       | ...       | ...       | ...       |
    +-----------+-----------+-----------+-----------+-----------+
    | Détail 7  | ...       | ...       | ...       | ...       |
    +-----------+-----------+-----------+-----------+-----------+
    | Détail 8  | ...       | ...       | ...       | ...       |
    +-----------+-----------+-----------+-----------+-----------+
    Page 4 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    +--------------+-----------+
    | Colonne 6    | Colonne 7 |
    +--------------+-----------+
    | Détail 6 Bis | ...       |
    +--------------+-----------+
    | Détail 7 Bis | ...       |
    +--------------+-----------+
    | Détail 8 Bis | ...       |
    +--------------+-----------+
    C'est bien ça ?

    A ma connaissance ce n'est pas possible.

    Par contre, on pourrait trouver une solution pour avoir la même chose avec les pages 1, 3 puis 2 et 4 (et encore, c'est pas donné).

    La dernière solution est de changer le format d'impression en A3 paysage quand on détecte que cela pourrait dépasser la page. Dans ce cas, tu génères un PDF en A3 puis tu l'imprimes en A4...

  15. #15
    Membre du Club
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 76
    Points : 50
    Points
    50
    Par défaut
    Moi j'aurai dit plutôt quelque chose comme ça :

    Page 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    +-----------+-----------+-----------+-----------+-----------+
    | Colonne 1 | Colonne 2 | Colonne 3 | Colonne 4 | Colonne 5 |
    +-----------+-----------+-----------+-----------+-----------+
    | Détail 1  | ...       | ...       | ...       | ...       |
    +-----------+-----------+-----------+-----------+-----------+
    | Détail 1  | ...       | ...       | ...       | ...       |
    +-----------+-----------+-----------+-----------+-----------+
    | Détail 1  | ...       | ...       | ...       | ...       |
    +-----------+-----------+-----------+-----------+-----------+ //une fin de groupe ici
    | Détail 2  | ...       | ...       | ...       | ...       |
    +-----------+-----------+-----------+-----------+-----------+
    | Détail 2  | ...       | ...       | ...       | ...       |
    +-----------+-----------+-----------+-----------+-----------+
    Page 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    +-----------+-----------+-----------+-----------+-----------+
    | Colonne 1 | Colonne 2 | Colonne 3 | Colonne 4 | Colonne 5 |
    +-----------+-----------+-----------+-----------+-----------+
    | Détail 2  | ...       | ...       | ...       | ...       |
    +-----------+-----------+-----------+-----------+-----------+
    | Détail 2  | ...       | ...       | ...       | ...       |
    +-----------+-----------+-----------+-----------+-----------+
    | Détail 2  | ...       | ...       | ...       | ...       |
    +-----------+-----------+-----------+-----------+-----------+
    Page 3 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    +--------------+-----------+
    | Colonne 1 Bis| Colonne 6 |
    +--------------+-----------+
    | Détail 1 Bis | ...       |
    +--------------+-----------+
    | Détail 1 Bis | ...       |
    +--------------+-----------+
    | Détail 1 Bis | ...       |
    +--------------+-----------+
    | Détail 2 Bis | ...       |
    +--------------+-----------+
    | Détail 2 Bis | ...       |
    +--------------+-----------+
    Page 4 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    +--------------+-----------+
    | Colonne1Bis  | Colonne 7 |
    +--------------+-----------+
    | Détail 2 Bis | ...       |
    +--------------+-----------+
    | Détail 2 Bis | ...       |
    +--------------+-----------+
    | Détail 2 Bis | ...       |
    +--------------+-----------+
    Actuellement, j'ai :
    Page 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    +-----------+-----------+-----------+-----------+-----------+
    | Colonne 1 | Colonne 2 | Colonne 3 | Colonne 4 | Colonne 5 |
    +-----------+-----------+-----------+-----------+-----------+
    | Détail 1  | ...       | ...       | ...       | ...       |
    +-----------+-----------+-----------+-----------+-----------+
    | Détail 1  | ...       | ...       | ...       | ...       |
    +-----------+-----------+-----------+-----------+-----------+
    | Détail 1  | ...       | ...       | ...       | ...       |
    +-----------+-----------+-----------+-----------+-----------+
    | Détail 2  | ...       | ...       | ...       | ...       |
    +-----------+-----------+-----------+-----------+-----------+
    | Détail 2  | ...       | ...       | ...       | ...       |
    +-----------+-----------+-----------+-----------+-----------+
    Page 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    +-----------+-----------+-----------+-----------+-----------+
    | Colonne 1 | Colonne 2 | Colonne 3 | Colonne 4 | Colonne 5 |
    +-----------+-----------+-----------+-----------+-----------+
    | Détail 2  | ...       | ...       | ...       | ...       |
    +-----------+-----------+-----------+-----------+-----------+
    | Détail 2  | ...       | ...       | ...       | ...       |
    +-----------+-----------+-----------+-----------+-----------+
    | Détail 2  | ...       | ...       | ...       | ...       |
    +-----------+-----------+-----------+-----------+-----------+
    Page 3 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    +--------------+-----------+
    | Colonne 6   | Colonne 7 |
    +--------------+-----------+
    |  ...         | ...       |
    +--------------+-----------+
    |  ...         | ...       |
    +--------------+-----------+
    |  ...         | ...       |
    +--------------+-----------+
    |  ...         | ...       |
    +--------------+-----------+
    |  ...         | ...       |
    +--------------+-----------+
    Page 4 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    +--------------+-----------+
    | Colonne 6    | Colonne 7 |
    +--------------+-----------+
    |  ...         | ...       |
    +--------------+-----------+
    |  ...         | ...       |
    +--------------+-----------+
    |  ...         | ...       |
    +--------------+-----------+
    |  ...         | ...       |
    +--------------+-----------+
    |  ...         | ...       |
    +--------------+-----------+
    En gros, le découpage par BIRT se fait bien dans le sens où il écrit sur des nouvelles pages les colonnes qu'il n'a pas pu écrire, cependant si on prend une de ces nouvelles page qui commence par "colonne6" dans l'exemple ci-dessus, on ne PEUT PAS savoir à quelle lignes les valeurs de colonne6 sont reliées, elle sont la suite de quelles lignes?

    C'est bizarre qu'on ne trouve pas ça dans BIRT, car ça ne serait pas pratique de lire un rapport qui ne rappelle pas à quelles lignes il se réfère quand une nouvelle page commence par les colonnes n'ayant pas pu être écrites précédemment (car elles dépassaient de la page).

    En admettant que BIRT ne propose pas cette répétition de colonne de base (ça m'étonne vraiment )
    En gardant mon exemple, une solution serait peut-être "simplement" de faire en pseudo code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(dépassement de la largeur de la page){
    réinsérer la colonne 1 avant la colonne 6;}
    Ainsi la colonne 1 serait reportée... mais je ne sait pas si ce genre d'évènement (if dépassement de la largeur) existe, ou bien si il faudrait vérifier constamment si la largeur du tableau n'est pas supérieure à celle de la page... et je ne sait pas non plus si on peut insérer comme ça une colonne à la volée.

  16. #16
    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
    Oui je vois ce que tu veux dire, je regarde un peu plus tard

  17. #17
    Membre du Club
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 76
    Points : 50
    Points
    50
    Par défaut
    ça marche!
    J'ai posté ça aussi sur le forum BIRT d'eclipse, et je passe au peigne fin les propriétés des colonnes de tables... il doit forcément y avoir une solution!

  18. #18
    Membre du Club
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 76
    Points : 50
    Points
    50
    Par défaut
    Bon, les gens du forum BIRT Eclipse n'en savent pas beaucoup plus, et j'ai pas trouvé THE propriété qui me permettrait de faire ce que je souhaite :/

  19. #19
    Membre du Club
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 76
    Points : 50
    Points
    50
    Par défaut
    En fait, une solution à mon problème serait de :
    - calculer la taille de ma table
    et si (la taille est > à celle de la page) {insérer la colonne à répéter avant les colonnes reportées à la ligne}

    Pour faire ça, j'ai besoin de savoir :

    - à quel moment je peux calculer la taille de ma table? Au moment du "afterRender" de la table?

    - est-ce que je peux insérer une colonne dans la table APRES que la table ait été générée

    Quelqu'un aurait-il une réponse?

  20. #20
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 41
    Points : 28
    Points
    28
    Par défaut question complémentaire
    Citation Envoyé par Stefan C Voir le message
    BIRT peut fonctionner dans 2 modes :

    1. Auto ( par défaut ) : pour les rapports Web. en fonction de l'espace disponible , BIRT se "débrouille". Idem pour l'export PDF avec le "Fit to page".

    2. Fixed : pour les 'pixel perfect' , positionnement absolu des colonnes. Par contre c'est à vous de gérer les pages.

    Les 2 modes s'excluent réciproquement dans le même tableau pour des raisons évidentes .

    Des choses utiles : BIRT supporte 2 types de variables :

    Variable Page
    Variable Rapport



    Les 2 peuvent être "simples" ( liées soit au process de génération : Run , soit au process de viewing : Render ) soit "persistent" ( liées aux 2 et passées du Run au Render ).

    Donc typiquement, au fur et à mesure de ta construction de tableau, tu peux calculer la "taille" globale du tableau et voir si ça dépasse le cadre défini dans la master page. Si ca dépasse , tu peux choisir de continuer d'une autre façon.

    Astuce : dans un Crosstab tu peux faire un saut de page de manière verticale.

    bonjour
    pardon si la question est béte mais,
    a quel endroit je peux choisir le mode fixe ou auto dans la version 2.2
    comment faire pour demander un saut de page de maniére vertical

Discussions similaires

  1. Insérer dynamiquement une Image dans un rapport Crystal Report
    Par arnaudjol dans le forum SAP Crystal Reports
    Réponses: 9
    Dernier message: 06/01/2017, 12h09
  2. Gestion dynamique des colonnes dans un TVirtualTreeView
    Par engi dans le forum Composants VCL
    Réponses: 2
    Dernier message: 27/03/2008, 16h17
  3. [PMD] [Maven] Rajouter une colonne dans un rapport PMD
    Par Frederik dans le forum Qualimétrie
    Réponses: 2
    Dernier message: 02/10/2007, 14h42
  4. [Delphi 7+Crystal Reports XI] - Error 515 dans un rapport
    Par david_chardonnet dans le forum SDK
    Réponses: 1
    Dernier message: 03/04/2006, 10h42
  5. En-têtes de colonnes dans un rapport
    Par ym21 dans le forum Access
    Réponses: 4
    Dernier message: 07/03/2006, 11h05

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