2016-06-24 11 views
0

Ich habe einen Bericht, der hat in vier Parameter in meinem Bericht Designer nehmeniReport Parameteranzahl Berechnung Schwierigkeiten

ex: ticket1, Ticket2, ticket3, ticket4.

manchmal kann ich wählen, den Bericht 2 Parameter zu geben oder vielleicht 3

ex: ticket1, Ticket2 oder ticket1, Ticket2, ticket3

ich eine Variable TICKET_COUNT haben, weiß ich nicht wissen, wie man die Anzahl der Paremeter zusammenfasst, da ich nicht immer 4 geben kann, könnte ich beliebige von 0 bis 4 geben.

Wie kann ich die Anzahl der Parameter, die ich dem Bericht gebe?

Beispiel: Ticket1, Ticket2, Ticket3, Ticket4. TICKET_COUNT = 4

Beispiel: ticket1, ticket4. TICKET_COUNT = 2

Antwort

1

gelöst.

schreiben scriptlet

package com.xxx; 

import net.sf.jasperreports.engine.JRDefaultScriptlet; 
import net.sf.jasperreports.engine.JRScriptletException; 

public class MyScriptlet extends JRDefaultScriptlet { 
public int getTicketCount() throws JRScriptletException { 
    String ticket1 = (String)this.getParameterValue("ticket1"); 
    String ticket2 = (String)this.getParameterValue("ticket2"); 
    String ticket3 = (String)this.getParameterValue("ticket3"); 
    String ticket4 = (String)this.getParameterValue("ticket4"); 
    int cnt = 0; 
    if(ticket1!=null){ 
     cnt++; 
    } 
    if(ticket2!=null){ 
     cnt++; 
    } 
    if(ticket3!=null){ 
     cnt++; 
    } 
    if(ticket4!=null){ 
     cnt++; 
    } 
    return cnt; 
    } 
} 

die scriptlet auf eine JAR-Datei erstellen und in dem Bericht Classpath gehen und das Glas

die Scritplet Eigenschaft des Berichts mit den vollen qualifizierten Namen hinzufügen gesetzt von Ihre scriptlet Klasse (ex: com.xxx.MyScriptlet)

In dem Bericht erstellen die Variable TICKET_COUNT und

Setvariable Klasse java.lang.Integer

variable Ausdruck $P{REPORT_SCRIPTLET}.getTicketCount()

scriptlet Konfigurationsdetails here (Kapitel 15 Scriptlets) gesetzt