Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > BIRT
BIRT Forum d'entraide sur BIRT (Business Intelligence and Reporting Tools). Avant de poster --> FAQ BIRT,Tutoriels BIRT
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/06/2007, 12h42   #1
BiM
Modératrice
 
Avatar de BiM
 
Femme
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
Inscription : janvier 2005
Messages : 7 299
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 26
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 299
Points : 8 650
Points : 8 650
Par défaut [2.1.2][Rhino/Javascript] Changement d'une propriété d'une ligne (row)

Bonjour,

Par exemple, je voudrais générer une liste de personnes. Dans un formulaire, j'ai une case à cocher "Une page par personne". En gros, si cette case est cochée, à chaque nouvelle personne je fais un saut de page (PageBreakAfter = always) sinon je laisse toutes les personnes à la suite (PageBreakAfter = auto).

J'espère que vous avez compris l'énoncé du problème.

Pour ce faire, je passe en paramètre la valeur (vrai ou faux) de l'option, jusque là aucun problème.
Sur la ligne de détail qui contient une personne, je dois initialiser la propriété PageBreakAfter à always ou auto.
J'ai essayé sur la méthode onPrepare et onCreate de la ligne de mettre les lignes suivantes :
  • Dans le onPrepare :
    Code javascript :
    1
    2
    3
    4
    if (params["UnePersonneParPage"])
    	rowHandle.setUserProperty(StyleHandle.PAGE_BREAK_AFTER_PROP,DesignChoiceConstants.PAGE_BREAK_ALWAYS);
    else
    	rowHandle.setUserProperty(StyleHandle.PAGE_BREAK_AFTER_PROP,DesignChoiceConstants.PAGE_BREAK_AUTO);
  • Dans le onCreate :
    Code javascript :
    1
    2
    3
    4
    if (params["UnePersonneParPage"])
    	rowInstance.setUserPropertyValue(StyleHandle.PAGE_BREAK_AFTER_PROP,DesignChoiceConstants.PAGE_BREAK_ALWAYS);
    else
    	rowInstance.setUserPropertyValue(StyleHandle.PAGE_BREAK_AFTER_PROP,DesignChoiceConstants.PAGE_BREAK_AUTO);
Et j'ai l'erreur suivante (c'est la même avec rowInstance pour le onCreate) :
Citation:
GRAVE: ReferenceError: "rowHandle" n'est pas défini (<inline>#4)
org.mozilla.javascript.EcmaError: ReferenceError: "rowHandle" n'est pas défini (<inline>#4)
at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3240)
[... et je vous épargne la suite]
Attention, je n'ai jamais fait les deux ensemble. J'ai aussi tenté de remplacer rowHandle ou rowInstance par row mais il est de type NativeRowObject.

Est-ce que quelqu'un aurait une idée ? Ou mieux, l'aurais déjà fait ?

Merci
__________________
__~{@ BiM - Modératrice "Business Intelligence" @}~
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
___________.~{@ Lapine crétine @}~
BiM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2007, 12h56   #2
BiM
Modératrice
 
Avatar de BiM
 
Femme
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
Inscription : janvier 2005
Messages : 7 299
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 26
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 299
Points : 8 650
Points : 8 650
Je devrais le savoir qu'à chaque fois que je poste dans ce forum, je finis par trouver la solution très rapidement Je posterais plus rapidement la prochaine fois...

Voici la solution (à mettre dans le onCreate) :
Code javascript :
1
2
3
4
if (params["UnePersonneParPage"])
	this.getStyle().pageBreakAfter = "always";
else
	this.getStyle().pageBreakAfter = "auto";
Il fallait remplacer row, rowInstance ou rowHandle par this. De plus, la méthode getUserPropery[Value]() fonctionne à merveille mais il ne reconnaît ni StyleHandle (même avec le nom du package en entier), ni DesignChoiceConstants.

Donc j'ai opté pour le getStyle().pageBreakAfter, c'est plus propre
__________________
__~{@ BiM - Modératrice "Business Intelligence" @}~
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
___________.~{@ Lapine crétine @}~
BiM est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h59.


 
 
 
 
Partenaires

Hébergement Web