|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Étudiant Inscription : juin 2011 Messages : 27 ![]() |
Bonjour,
je suis sur le développement en Java de rapports à l'aide de l'API Birt J'utilise Birt 2.6.2 et eclipse. J'ai un Grid avec des Rows, des Labels, des Cells et un StyleHandle pour mes cells: je voudrais : -insérer une image dans une cellule du tableau (pas en background) : doit-on mettre l'image à la bonne dimension ou alors est-ce géré par quelconque fonction ? et aussi l'aligner à droite ou au centre ... j'ai essayé d'ajouter une image en arrière plan sans répétition et en ajoutant du texte vide avec des \n mais c'est moche de faire comme ça - mettre du texte en gras. On a les constantes FONT_SIZE_(bidule) de la classe DesignChoiceConstants mais je sais pas avec quelle fonction les utiliser. j'ai cherché du coté de styleHandle.setFontStyle() mais elle ne prend pas en paramètre autre chose que les FONT_STYLE_(machin) constantes. De plus, styleHandle.setFontSize() n'existe pas - insérer une pagination. Dois-je faire une ligne supplémentaire à mon tableau à chaque fin de page avec numéro et numéro page ou pas ? - faire un saut de page inconditionnel tout cela en java Merci pour vos réponses EDIT : J'ai aussi des problèmes pour lancer mon rapport PDF lorsqu'il est fini, et lorsque la compilation est terminée, XP me dit qu'il est utilisé par une autre tache... |
|
|
00
|
|
|
#2 | ||||
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
Bonjour,
Citation:
Citation:
Citation:
La méthode setFontSize() n'existe effectivement pas malgré qu'elle devrait l'être mais ce n'est pas bien grave, tu peux aussi essayer d'utiliser setStringProperty(DesignChoiceConstants.CHOICE_FONT_SIZE, DesignChoiceConstants.FONT_SIZE_[X]). Citation:
Il y a différents types de sauts de page conditionnels. A quoi correspond le tien ? On regarde ça après, peut être une mauvaise fermeture de la tâche de rendu BIRT. |
||||
|
|
00
|
|
|
#3 | |||||||||||
|
Invité régulier
![]() Étudiant Inscription : juin 2011 Messages : 27 ![]() |
Bonjour,
Citation:
Citation:
Code :
Citation:
J'imagine qu'il faut créer un objet SimpleMasterPage masterPage = new SimpleMasterPage(); après avoir regardé la doc, je n'ai pas trouvé la méthode adéquate Citation:
Citation:
(dans les paramètres de la fonction run, je lui envoie new HashMap<String, Object>() ne sachant pas trop quoi lui donner!) Code :
Qui appelle ta classe Edition (trouvée sur ce site) Code :
|
|||||||||||
|
|
00
|
|
|
#4 | |||||
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
Citation:
Citation:
Code Java :
Citation:
Pour le reste, je regarde si effectivement je reproduis le problème et comment le résoudre. |
|||||
|
|
00
|
|
|
#5 |
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
Avec exactement le même appel que toi et la même classe, je ne reproduis pas le problème d'utilisation du PDF. Peut être que tu essayes de l'ouvrir avant que la tâche de rendu soit achevée.
Tu peux rajouter des logs pour visualiser quand les tâches de génération et de rendu sont réellement finies. |
|
|
00
|
|
|
#6 | ||||||
|
Invité régulier
![]() Étudiant Inscription : juin 2011 Messages : 27 ![]() |
Citation:
J'ai essayé ça : Code :
Code :
org.eclipse.birt.report.model.api.command.PropertyNameException: The property "imageSize" is invalid for element "null". est ce que c'est pour cela qu'il n'arrive pas à accéder à sa taille ? Y-a-t-il une fonction pour aligner l'image à droite par exemple tandis que le texte est à gauche ? (sinon je séparerais en deux cases) Citation:
Maintenant j'aimerais avec une affichage de type "Page 1 sur 10" J'ai essayé d'ajouter plusieurs objets autoText à la masterPage mais il n'en prend qu'un j'ai aussi essayé un truc plus farfelu du genre : autoText.setAutoTextType("Page"+DesignChoiceConstants.AUTO_TEXT_PAGE_NUMBER+" sur "+DesignChoiceConstants.AUTO_TEXT_TOTAL_PAGE); sans résultat |
||||||
|
|
00
|
|
|
#7 | ||||||
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
Citation:
Après, si c'est un lancement unique, tu peux ajouter un appel au destructeur à la fin de la génération complète. Citation:
Citation:
Citation:
|
||||||
|
|
00
|
|
|
#8 | ||
|
Invité régulier
![]() Étudiant Inscription : juin 2011 Messages : 27 ![]() |
Voilà, tout ce code pour afficher " Page 'courante' sur 'total' "
Code :
cela ne résout pas le problème |
||
|
|
00
|
|
|
#9 | ||||
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
Version commentée et sans les initialisations inutiles
Code Java :
Pour l'image, je viens de me rendre compte que tu l'utilises en background et non en image. Tu peux donc définir la position dans l'objet de l'arrière plan pour dire qu'il est aligné à droite. Code Java :
styleHandle.setStringProperty(DesignChoiceConstants.CHOICE_BACKGROUND_POSITION_X, DesignChoiceConstants.BACKGROUND_POSITION_RIGHT); Code Java :
styleHandle.getBackGroundPositionX().setStringValue(DesignChoiceConstants.BACKGROUND_POSITION_RIGHT); Je pense qu'il faut chercher avec un truc comme ça : Code Java :
|
||||
|
|
00
|
|
|
#10 | ||||||
|
Invité régulier
![]() Étudiant Inscription : juin 2011 Messages : 27 ![]() |
Je me demandais aussi comment réduire les marges extérieures!
En haut et en bas, on peut jouer avec des lignes vides si on travaille avec un tableau mais à gauche et à droite? J'ai essayé mais l'effet est la réduction de 10% par rapport à la normale mais que du coté droit et aussi Code :
Citation:
Citation:
Code :
row.setStringProperty(DesignChoiceConstants.CHOICE_PAGE_BREAK_INSIDE, DesignChoiceConstants.PAGE_BREAK_BEFORE_AVOID); |
||||||
|
|
00
|
|
|
#11 | ||
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
Pour les marges...
Code Java :
|
||
|
|
00
|
|
|
#12 |
|
Invité régulier
![]() Étudiant Inscription : juin 2011 Messages : 27 ![]() |
|
|
|
00
|
|
|
#13 |
|
Invité régulier
![]() Étudiant Inscription : juin 2011 Messages : 27 ![]() |
J'ai un tableau de 5 colonnes et 10 lignes.
J'aimerais fusionner deux cellules de mon tableau: les cellules 1, 2 et 3 de la ligne 1. J'aimerais aussi fusionner deux cellules : les cellules 0 de la ligne 0 et 1. |
|
|
00
|
|
|
#14 |
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
Sur ton CellHandle, tu dois faire un setColumnSpan(nombre de colonnes à prendre en compte), par défaut, cette valeur est à 1, elle prend juste la colonne courante.
Si sur la première cellule (get(0)) tu fais setColumnSpan(3) et que tu as 5 colonnes. Lorsque tu passeras à la deuxième (get(1)), ce sera celle de la 4ème colonne. |
|
|
00
|
|
|
#15 | ||
|
Invité régulier
![]() Étudiant Inscription : juin 2011 Messages : 27 ![]() |
J'agis sur la ligne 0 de mon tableau 5 colonnes.
sur cette ligne, je veux une cellule vide , mon titre de tableau sur les 3 cellules du milieu, et la dernière cellule vide. Code :
comme si j'avais mis gridFooter.setWidth("55%"); environ |
||
|
|
00
|
|
|
#16 | ||
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
Tu as 5 colonnes à l'origine, tu as mis un label vide dans la première cellule, 1 label avec du texte dans la seconde cellule (mais tu l'as étalée sur 5 cellules, oui tu as laissé un setColumnSpan(5) traîné après le style) et 1 autre cellule avec un label vide.
Ca fait 7 et non 5 colonnes ! Peut être qu'en faisant un setColumnSpan(3) pour la seconde cellule ce serait déjà mieux... Autre chose, quand tu veux laisser une cellule vide, il est inutile de mettre quelque contenu (même un label vide), ça alourdit le rapport pour rien. Donc tu pourrais tout simplement faire : Code Java :
|
||
|
|
00
|
|
|
#17 |
|
Invité régulier
![]() Étudiant Inscription : juin 2011 Messages : 27 ![]() |
Je veux fusionner seulement les 3 cellules du milieu pour la première ligne (en haut de mon tableau),
or cela me fusionne les 3 cellules pour toutes les lignes... |
|
|
00
|
|
|
#18 | ||
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
En fait avec le code que je t'ai donné, ça fusionne bien uniquement la première ligne d'une grille (on est dans le cas d'une grille visiblement, pas d'un tableau, mais on peut essayer avec un tableau aussi).
Cependant, il faut explicitement supprimer les cellules qui suivent : Code Java :
Dans le cas d'une table, on parle de ligne de détails, cette ligne sera répétée autant de fois qu'il y aura de données dans le DataSet, sinon il faut plutôt modifier le header de la table. Tu peux cependant avoir plusieurs lignes de détail, disons la première comporte le nom du client dans une cellule fusionnée et la seconde ses coordonnées. Mais pour chaque client tu auras en première ligne de détail une cellule fusionnée. Tu as compris la subtilité entre les deux ? |
||
|
|
00
|
|
|
#19 |
|
Invité régulier
![]() Étudiant Inscription : juin 2011 Messages : 27 ![]() |
Oui, j'ai compris, enfin !
Merci |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com