我有一個BIRT報告,其中有許多表根據傳入報告的參數設置爲不可見。BIRT報告阻止隱藏的查詢被執行
我在網上讀到,綁定到這些表的查詢仍然會被執行,除非我在beforeFactory腳本中刪除這些表。除了刪除表格之外,我還需要刪除查詢嗎?或者是將查詢綁定的表放到足以使查詢不被執行的位置?
有無論如何我可以告訴如果這些隱藏的查詢已被執行?
這裏是我的beforeFactory腳本顯示了我如何丟棄表....
var tblPriceOverrideDetailDesc = reportContext.getReportRunnable().designHandle.getDesignHandle().findElement("tblPriceOverrideDetailDesc");
var tblPriceOverrideDetailAsc = reportContext.getReportRunnable().designHandle.getDesignHandle().findElement("tblPriceOverrideDetailAsc");
var tblPriceOverrideDetailExclConcessionDesc = reportContext.getReportRunnable().designHandle.getDesignHandle().findElement("tblPriceOverrideDetailExclConcessionDesc");
var tblPriceOverrideDetailExclConcessionAsc = reportContext.getReportRunnable().designHandle.getDesignHandle().findElement("tblPriceOverrideDetailExclConcessionAsc");
if (((params["bp_sortType"].value).equals("DESC") && params["bp_excludeConcessionInd"].value != null)
|| (params["bp_sortType"].value).equals("ASC")){
tblPriceOverrideDetailDesc.drop();
} else if(((params["bp_sortType"].value).equals("ASC") && params["bp_excludeConcessionInd"].value != null)
|| (params["bp_sortType"].value).equals("DESC")){
tblPriceOverrideDetailAsc.drop();
} else if(((params["bp_sortType"].value).equals("DESC") && params["bp_excludeConcessionInd"].value == null)
|| (params["bp_sortType"].value).equals("ASC")){
tblPriceOverrideDetailExclConcessionDesc.drop();
}else if(((params["bp_sortType"].value).equals("ASC") && params["bp_excludeConcessionInd"].value == null)
|| (params["bp_sortType"].value).equals("DESC")){
tblPriceOverrideDetailExclConcessionAsc.drop();
}
如果您使用的是SQL 2008 R2,則可以使用[SQL跟蹤](http://technet.microsoft.com/zh-cn/library/ms191006%28v=sql.105%29.aspx)查看是否查詢在數據庫中運行。當我這樣做時,我在SQL中添加了一個唯一字符串的註釋,以便在跟蹤中查找(即BirtSQLTrace1) –