Expression Variable: Compter tous les enregistrements pour lesquels la condition >0 est satisfaite

J'ai créé une variable pour maintenir un décompte de tous les machinery_part_id dans un emplacement pour mon rapport. Cela fonctionne très bien, maintenant, je veux ajouter un filtre dont le machinery_part_id est comptabilisé uniquement si elles ont une quantité > 0.

C'est ce que j'ai dû commencer avec:

Nom de la Variable: PART_COUNT

Variable De Type Classe: Java.lang.Entier

Type De Calcul: Nombre

Le Type De Réinitialisation: Groupe

De réinitialisation de Groupe: LOCATION_ID

Type D'Incrément: Aucun

Expression d'une Variable: $F{MACHINERY_PART_ID}

Un champ dans mon rapport a été établi comme suit:

Champ De Texte De L'Expression De La Classe: Java.lang.Entier

Temps D'Évaluation: Groupe

Groupe d'évaluation: LOCATION_ID

Champ de texte de l'Expression: $V{PART_COUNT}

La nouvelle condition est de compter(machinery_part_id) groupe par location_id avoir la quantité >0

$F{MACHINERY_PART_ID} et $F{QUANTITY_SENT} sont à la fois java.lang.double champs, j'ai essayé d'entrer les données suivantes dans l'Expression d'une Variable:

New Double($F{QUANTITY_SENT} > 0.00 ?  $F{QUANTITY_SENT}.doubleValue() : 0d)

Mais il des erreurs avec:

Syntax error, insert ";" to complete BlockStatements

Je suis en utilisant iReport 3.0.0

S'il vous plaît aider,
Merci!

  • Peut-être que je suis l'interprétation de cette façon incorrecte, mais il semble que votre variable et de champ sont des entiers, et que votre variable de l'expression "Nouveau Double($F{QUANTITY_SENT...) est à la recherche pour créer un double? Et est votre expression dans la langue définie pour le Java ou Groovy?
  • Le langage d'Expression est de Java.
  • J'ai essayé de changer la Variable de l'Expression: '($F{QUANTITY_SENT} > 0.00 ? $F{QUANTITY_SENT} : 0d) "et il erreurs par de" L'opérateur > n'est pas défini pour le type d'argument(s) Double, double
  • Je suis passé de la Variable de Type de Classe et le Champ de Texte de l'Expression de la Classe java.lang.double et essayé New Double($F{QUANTITY_SENT}.doubleValue() > 0.00 ? $F{QUANTITY_SENT}.doubleValue() : 0d) Elle ne fait pas d'erreur, mais plus ses en excluant seulement les enregistrements où $F{QUANTITY_SENT} est nulle. Enregistrements avec $F{QUANTITY_SENT}=0.00 sont encore comptés.
InformationsquelleAutor wenbenoit | 2013-03-01