2011-10-11 48 views
1

我們使用Eclipse(Galileo)爲SilkCentral Test Manager(版本11)創建一些自定義BIRT報告(版本2.5)。在SCTM中創建報告時,我們必須指定要用於報告的SQL查詢。我們還必須在Eclipse中設計BIRT報告時指定SQL查詢。如何在SilkCentral測試管理器中獲取自定義BIRT報告以提取當前選定的項目?

我知道,在SCTM SQL語句中,我們可以指定參數根據當前設置,如當前選擇的項目被拉到:

WHERE TPN.PROJECTID_FK = ${$PROJECTID} 

我認爲這將結轉到BIRT報告與SCTM報告有關,但事實並非如此。我創建了SCTM一份新的報告,並指定以下查詢(其中不包含將被顯示在BIRT報表信息):

SELECT  proj."ProjectName", proj."ProjectID_pk" 
FROM  "Silk"."SCC_Projects" AS proj 

然後我去了報告,標籤和相關的自定義報告並顯示報告正確地證明它正在使用來自BIRT的數據源/數據集而不是SCTM中提供的SQL。

我面臨的問題是我想讓自定義報告顯示當前選定的項目,但我無法在Eclipse中正確指定它。我需要這個,因爲我想只有一個報告模板用於多個項目,而不必爲每個單個項目上傳自定義報告。

  • 該項目硬編碼的值絕對不起作用:

    WHERE TPN.PROJECTID_FK = 34

  • 我已嘗試設置它作爲一個參數(名稱=專案編號,數據類型=整數,DisplayType = Text Box,DefaultValue = 34)。

    WHERE TPN.PROJECTID_FK =?

    運行時,報告將提取默認值,而不是當前選定的項目。

  • 我試圖將其設置爲一個動態參數(名稱=專案編號,數據類型=整數,顯示類型=列表框,數據集=專案編號,SelectValueColumn = ProjectID_pk,SelectDisplayText =項目名,默認值= 36)

    這也拉動報告運行時的默認值。

默認值是必填字段,所以我不知道如何才能使其正常工作。

任何建議/解決方案?

回答

1

這裏是我從Borland網站想出了使用和例如,從BirtReports.doc解決方案:

在SCTM,我編輯從

WHERE TPN.PROJECTID_FK = ${$PROJECTID} 

的SQL查詢來

WHERE TPN.PROJECTID_FK = ${currentProject|34|ProjectId} 

這會創建一個名爲currentProject的參數,該參數將值34傳遞給參數下的BIRT報告名稱rp_currentProject

我然後編輯BIRT報表的專案編號參數有以下值:名稱= rp_currentProject,數據類型=整數,顯示類型=文本框,默認值=空/空

在DataSet的報告中,我編輯了?參數爲: Name = param_1,DataType = Integer,Direction = Input,DefaultValue = GreyedOut/Disabled,LinkedToReportParameter = rp_currentProject

因此,我將相同的報告模板上載到多個項目,並在SCTM中的報告>參數選項卡下,將currentProject參數的值更改爲正確的項目ID。該ID將傳遞給報告並顯示正確的信息。

順便說一句,我也嘗試過這種形式,但我是越來越有衝突的類型錯誤:

WHERE TPN.PROJECTID_FK = ${currentProject|${$PROJECTID}|ProjectId} 

我也嘗試使用在SQL設置傳遞的值給一個變量DECLARE/SET,但我得到了一個錯誤,指出SQL語句無效,因爲它不再是隻讀的。

希望這可以幫助任何人有這個相同的問題!

相關問題