在Crystal Reports中,您可以將SQL直接作爲字符串傳遞給報表參數,並在報表運行時解析SQL。BIRT Reports,將SQL傳遞給查詢參數
例如,假設您想安排一份報告,以便在每個月的月初運行有關前一個月的數據。特定報表的查詢可能是這樣的:
SELECT
sum(jobid) jobs
FROM
job
WHERE
created_date >= {?StartDate}
and created_date < {?EndDate}
取而代之的起始日期和結束日期參數設置爲日期字段,並具有更新每個月你可以設置參數字符串和送出妙傳報告的參數以下SQL中的每個參數:
StartDate = add_months(trunc(sysdate, 'mm'), -1)
EndDate = trunc(sysdate, 'mm')
這種方式每次計劃報表運行時都會自動確定運行的正確日期。它的工作原理是因爲Crystal報表以文字形式傳遞參數,而不是'trunc(sysdate,'mm')'。
是否有可能將SQL傳遞給BIRT報告參數?我正在使用BIRT plug-in for Eclipse,並且不斷收到ORACLE錯誤,表明BIRT將參數傳遞給查詢,作爲使用單引號引起來的SQL字符串。
你能解釋爲什麼你想把SQL傳遞給報表參數嗎?正如MystikSpiral指出的那樣,這會導致SQL注入攻擊的風險 - 請參閱:http://xkcd.com/327/ –
這是否取決於您是否面臨SQL攻擊的風險?如果在服務器端完成並且沒有原始用戶輸入,我不會看到風險。 – Rebzie