2011-07-20 26 views
1

從今年開始使用birt報告工具。它的酷產品非常好。如何在報告加載時設置mysql用戶變量Birt

今天我遇到了問題。我想設置MySQL用戶varible報表時加載的例子SET @user="USR009";

我嘗試了幾種方法可以做到這一點,我couldnot得到的回答可能有人幫助我在這個問題上非常感謝全

IM停留在此問題

問候 羅山

回答

2

問題得到解決創建SP

delimiter // 
Create PROCEDURE abcd(param INT) 
    BEGIN 
     SET @USER=param; 
     SELECT @USER; 

END// 

而且在查詢調用與varible的SP;

作品像魅力

2

您可以在使用報表參數查詢中值,並在腳本初始化。

  1. 添加的報告參數(PARAMETER_1)
  2. 添加 「SET @user = QUERY_PARAMETER;」在您的數據集中選擇語句之前。
  3. 在選擇數據集時,選擇腳本選項卡並找到「beforeOpen」下拉列表。在此處添加一行:this.queryText = this.queryText.replace("QUERY_PARAMETER", params["PARAMETER_1"].value);

腳本將用文本替換QUERY_PARAMETER的所有實例。您可能仍然需要在set語句中引用它(即SET @user =「QUERY_PARAMETER」;)。

Parameter List

Edit Data List

Script

+0

非常感謝您的意見。我試過這種方式,但錯誤來了叫 以下項目有錯誤: 表(id = 142): - 無法獲取結果集元數據。 org.eclipse.birt.report.data.oda.jdbc.JDBCException:SQL語句不返回ResultSet對象。 SQL錯誤#1:您的SQL語法有錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在第3行 處的'select * from vw_hs_hr_ello'附近使用正確的語法; –

+0

該錯誤表示SQL無效。您可能必須在QUERY_USER周圍加上引號,以便讀取SET @ USER =「QUERY_USER」;另外 - 在QUERY_USER中使用您在報表參數中的文本替換mysql中的查詢,然後驗證它在那裏是否有效。 –

+0

Scratch - 這是birt不喜歡的select之前的查詢。 –