2016-06-24 6 views
0

ich habe 2 Parameter, die Parameter-Klasse Boolean ist: java.lang.String für: Abfrage und pSalesType enter image description here enter image description hereKann nicht von String werfen

Standardausdruck der Abfrage wie folgt aussehen wird:

(new String("all").equals($P{pSales_type}) ? "SELECT SALESMAN, SALES_AMOUNT, SALES_TYPE FROM (SELECT T1.SYS_USERNAME AS SALESMAN, SUM(REQ_SALES_AMOUNT) AS SALES_AMOUNT, 'Requisition' AS SALES_TYPE FROM t_requisition LEFT JOIN t_system_user T1 ON T1.SYSUSER_ID = T_REQUISITION.ENTERED_BY WHERE REQ_SALES_AMOUNT IS NOT NULL AND REQ_PROC_STATUS = 'Approved' UNION ALL SELECT T1.SYS_USERNAME AS SALESMAN, SUM(WRO_SALES_AMOUNT) AS SALES_AMOUNT, 'Work Order' AS SALES_TYPE FROM t_work_order LEFT JOIN t_system_user T1 ON T1.SYSUSER_ID = t_work_order.ENTERED_BY WHERE WRO_SALES_AMOUNT IS NOT NULL AND WRO_APPROVAL_STATUS = 'Y') xx GROUP BY SALESMAN, SALES_TYPE " : 
(new String("rq").equals($P{pSales_type}) ? "SELECT T1.SYS_USERNAME AS SALESMAN, SUM(REQ_SALES_AMOUNT) AS SALES_AMOUNT, 'Requisition' AS SALES_TYPE FROM t_requisition LEFT JOIN t_system_user T1 ON T1.SYSUSER_ID = T_REQUISITION.ENTERED_BY WHERE REQ_SALES_AMOUNT IS NOT NULL AND REQ_PROC_STATUS = 'Approved'" : 
(new String("wo").equals($P{pSales_type}) ? "SELECT T1.SYS_USERNAME AS SALESMAN, SUM(WRO_SALES_AMOUNT) AS SALES_AMOUNT, 'Work Order' AS SALES_TYPE FROM t_work_order LEFT JOIN t_system_user T1 ON T1.SYSUSER_ID = t_work_order.ENTERED_BY WHERE WRO_SALES_AMOUNT IS NOT NULL AND WRO_APPROVAL_STATUS = 'Y'" : 
"SELECT T1.SYS_USERNAME AS SALESMAN, SUM(REQ_SALES_AMOUNT) AS SALES_AMOUNT, 'Requisition' AS SALES_TYPE FROM t_requisition LEFT JOIN t_system_user T1 ON T1.SYSUSER_ID = T_REQUISITION.ENTERED_BY WHERE REQ_SALES_AMOUNT IS NOT NULL AND REQ_PROC_STATUS = 'Approved'"))) 

auf die Bericht-Abfrage, ich setze so:

$P!{query} 

enter image description here

es in der Lage, das Feld aus der Datenbank ohne Fehler zu laden.

SALESMAN 
SALES_AMOUNT 
SALES_TYPE 

, aber wenn ich es eine Vorschau, den Fehler geben: nicht von String werfen kann enter image description here

eine Idee zu lösen Boolean?

+0

erste Stelle setzen, können Sie einfach 'gehen ("alle" .equals ($ P {pSales_type}) ...' für alle Saiten. Dann Ich würde * * nicht mit einer solchen Anweisung (Wartbarkeit) gehen, sondern drei Unterberichte oder Tabellen oder Datensätze erstellen und nur die anzeigen, die von Ihrem Parameter ausgewählt wird .. – tobi6

Antwort

0

Sie müssen die anderen Teile in der Verlängerung geklam- mert

(new String("all").equals($P{pSales_type}) ? "SELECT .... : 
((new String("rq").equals($P{pSales_type}) ? "SELECT .... : 
((new String("wo").equals($P{pSales_type}) ? "SELECT .....  )) 
+0

kein Glück ... gleich Kann nicht von String zu Boolean – Teddybugs

+0

Bitte posten Sie die vollständige Ausnahme Stacktrace. – dada67