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 :

[2.1.2][Rhino/Javascript] Changement d'une propriété d'une ligne (row)


Sujet :

BIRT

  1. #1
    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 [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 : Sélectionner tout - Visualiser dans une fenêtre à part
      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 : Sélectionner tout - Visualiser dans une fenêtre à part
      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) :
    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

  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
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

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

Discussions similaires

  1. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  2. Binding sur une proprité d'une propriété
    Par al2000 dans le forum Windows Forms
    Réponses: 0
    Dernier message: 21/06/2010, 17h24
  3. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  4. Eval d'une propriété d'une classe dans une classe
    Par bizet dans le forum ASP.NET
    Réponses: 4
    Dernier message: 28/10/2008, 09h43
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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