皕杰報表中圖表的鉆取是通過超鏈接實現(xiàn)的,其實質(zhì)就是通過超鏈接打開了一張的新表众雷,而把原表中的條件通過參數(shù)傳遞給新表驹愚,從而得到我們所需的明細數(shù)據(jù)。
超鏈接的地址在單元格的超鏈接地址屬性里添加屬性值裤纹,如果超鏈接字符串不需要動態(tài)生成,可以直接寫所要鏈接的頁面路徑丧没,那么可以直接在超鏈接屬性編輯框中編輯鹰椒;如果超鏈接字符串需要根據(jù)單元格或者參數(shù)值動態(tài)生成锡移,則輸入表達式。
路徑可以是相對路徑也可以是絕對路徑漆际。
相對路徑是相對應(yīng)用路徑的淆珊,比如:/jsp/myreport.jsp,系統(tǒng)運算后會自動給加上應(yīng)用的路徑奸汇。
絕對路徑一定要寫完整施符,包含傳輸協(xié)議。
看個例子:
在d5單元格銷售額上鉆取年銷售額擂找,將a5中的年份作為參數(shù)傳給明細表戳吝,其超鏈接地址為:
'${SERVER_CONTEXT_PATH}/ReportEmitter?rpt=Demo/08其它特性/08-1時間參數(shù).brt¶ms=year=' +a5
通過瀏覽器訪問這張表就會在銷售額上顯示出超鏈接,見下圖:
點擊超鏈接就顯示出我們需要的銷售明細表婴洼。
上面的超鏈接地址含有中文骨坑,用谷歌撼嗓、火狐柬采、Edge等瀏覽器訪問沒有問題,而用ie瀏覽器訪問時就會報RFC7230和RFC3986錯誤且警。
? 這個問題的本質(zhì)還是編碼的問題粉捻,谷歌、火狐斑芜、Edge等瀏覽器默認使用的是UTF-8編碼肩刃,而ie瀏覽器默認的編碼是GBK。皕杰報表6.1統(tǒng)一使用了UTF-8杏头,因而用ie瀏覽器會報錯盈包。
? 如何解決這個問題呢?皕杰報表的字符串函數(shù)中提供了對字符串進行編碼的函數(shù)醇王,在寫超鏈接地址時對可能出現(xiàn)的中文進行轉(zhuǎn)碼就可以了呢燥。
? '${SERVER_CONTEXT_PATH}/ReportEmitter?rpt=Demo/08'+urlenc("其它特性","utf-8")+'/08-1'+urlenc("時間參數(shù)","utf-8")+'.brt?ms=year='+ a5