|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Candidat au titre de Membre du Club
![]() Amandine Ingénieur Info. Décisionnel Inscription : mars 2011 Messages : 29 ![]() |
Bonjour à tous,
J'utilise actuellement un script JS qui me permet de mettre en place des évènements onclick sur les cellules d'un tableau: 1- Je donne un 'signet' à la celulle 2- Sur l'évènement 'oncreate' de la celulle, j'incrémente le signet : categ1-10 3- Mon script : for i = 1 to 10, ajouter l'évènement onclick sur la celulle identifié par categ 1-10 Jusque là, tout va bien. Problème : mon rapport a plusieurs pages! - Quand je fais un preview sous BIRT, tout se charge et fonctionne - Quand j'exécute dans le navigateur, le script est sur la dernière page et ne se charge pas tant que je n'ai pas navigué jusque là. Du coup, les trois premières pages n'ont pas l'évènement onclick. Ma question : savez-vous comment demander à BIRT de charger le script dès qu'il a finit de générer le tableau précédent? J'ai essayé sur les évènements 'onrender', but nothing.... :-/ Code :
(je mets en deux fois pour être plus claire) Code :
Ce code ne vient pas de moi, je l'ai trouvé il y a quelques mois, mais je n'ai malheureusement plus la source (merci à lui en tout cas). J'ai vraiment besoin de votre aide, merci! Pour info, le script js est dans un élément texte. |
||||
|
|
00
|
|
|
#2 | ||
|
Membre confirmé
![]() Consultant en Business Intelligence Inscription : mai 2009 Messages : 186 ![]() |
Salut,
Ce serait un peu plus simple en connaissant ce que fait le rapport, mais d'aprés le script je crois comprendre qu'en gros il permet d'afficher/masquer une table détail à l'intérieur d'une table outer, vraisemblablement afficher la liste des produits quand on clique sur une catégorie, c'est à peu prés ça? Il semble en manquer une petite partie, je ne vois pas où est appellée la fonction addscr(). En tout cas la solution la plus simple, et la meilleure si le rapport n'est pas trop volumineux, est de supprimer la pagination sur cette table. D'ailleurs quand on ajoute une fonctionnalité pour afficher/masquer des sections coté client, le moteur pagine sans savoir que certains éléments seront masqués, et le rendu n'est donc généralement pas très adapté. Donc cliquer sur la table principale puis propriétés->page break->page break interval->mettre la valeur à 0. Effectuer la même manip sur les éventuelles tables détails contenues dans la table principale. Si le rapport est volumineux, ou si tu souhaites conserver la pagination coûte que coûte: Dans le designer il faut positionner la zone texte html contenant les scripts avant la table principale, puis en créer une autre contenant: Code :
Il faut également paramétrer le groupe détail/table détail pour éviter les sauts de page (page break->inside->avoid), sinon tu retrouveras le même problème sur le dernier groupe de chaque page. A+ |
||
|
|
10
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Amandine Ingénieur Info. Décisionnel Inscription : mars 2011 Messages : 29 ![]() |
Bonjour Donino,
Tu as bien compris la finalité du rapport. Et la solution donnée fonctionne à merveille : il fallait effectivement jouer sur la propriété 'page break'. Le fait qu'il manque l'appel de la fonction dans le code que j'ai mis, est une erreur de copier-coller :-/ J'avais déjà tenté ta deuxième proposition, mais sans mettre le page break interval à 0. Merci pour ton intervention, tu m'as permis de continuer à avancer sur mon projet. Bien cordialement, Amandine. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com