Finereport常見問題&緊急處理方案
Posted on 2012-11-15 11:32 FineReport——報(bào)表技術(shù)領(lǐng)跑者 閱讀(4198) 評(píng)論(0) 編輯 收藏 所屬分類: Java報(bào)表技術(shù)知識(shí) 、Java報(bào)表問題解答 、Java報(bào)表使用心得
出現(xiàn)問題先搜一下文檔上有沒有,再看看度娘有沒有,再看看論壇有沒有。有報(bào)錯(cuò)要看日志(6.5的日志在設(shè)計(jì)器的菜單欄有窗口視圖日志)。下面簡單羅列下常見的問題,大多文檔上都有提到的。
address pool is full:
地址池滿,連接數(shù)超過并發(fā)數(shù)上限。
文檔
使用了未注冊的功能:
未注冊的版本是可以試用所有功能的。注冊的lic是勾選過功能點(diǎn)的,如果制作的模板使用了未注冊的功能就會(huì)報(bào)這個(gè)錯(cuò)誤。一般容易分辨,有的客戶可能禁掉報(bào)錯(cuò)界面,這樣測試是好的,一放到服務(wù)器上就出不來,沒有報(bào)錯(cuò)界面就不太容易發(fā)現(xiàn)了。
文檔
提示注冊:
注冊常見問題處理方法:http://www.finereporthelp.com/help/9/4.html
文檔
session timed out:
session超時(shí)。
文檔
沒有返回?cái)?shù)據(jù)集:
在存儲(chǔ)過程中的操作語句之前加上set nocount on 或者在數(shù)據(jù)集exec調(diào)用存儲(chǔ)過程的前面加上這句。
當(dāng)SET NOCOUNT 為 ON 時(shí),不返回計(jì)數(shù)(表示受 Transact-SQL 語句影響的行數(shù))。當(dāng) SET NOCOUNT 為 OFF 時(shí),返回計(jì)數(shù)。
如果存儲(chǔ)過程中包含的一些語句并不返回許多實(shí)際的數(shù)據(jù),則該設(shè)置由于大量減少了網(wǎng)絡(luò)流量,因此可顯著提高性能。
文檔
模板文件損壞,或者打開模板沒有反應(yīng):
FR的cpt模板由設(shè)計(jì)器做出源文件是一組組的標(biāo)簽括起來的語句。像HTML的結(jié)構(gòu)那樣,可以用文本編輯器打開。有些客戶的模板可能做的比較BT,或者高低版本亂搗鼓,或者正操作著出現(xiàn)什么DT的情況導(dǎo)致模板不完整。一般報(bào)錯(cuò)會(huì)告訴出錯(cuò)的位置。655版本可以用bak文件還原下,7.0就不太好辦,可以嘗試填補(bǔ)部分語句主要是標(biāo)簽來搶救部分模板。
找不到模板:
找不到模板可能的原因看看是不是URL的問題,直接在模板中寫中文的話,有些瀏覽器是會(huì)自動(dòng)轉(zhuǎn)碼的(記得chrome、搜狗好像是),有些不會(huì),比如IE。
文檔
java heap space、stack overflow:
這個(gè)問度娘。常見的原因是模板做的很復(fù)雜,用了上百字段,上百行的sql語句,各種嵌套,尤其要注意有沒有死循環(huán)。也有可能是服務(wù)器端的問題,比如tomcat最大內(nèi)存太小了用了默認(rèn)的64M。
數(shù)據(jù)集定義中有下拉復(fù)選框參數(shù)出問題:
下拉復(fù)選框控件返回值默認(rèn)情況下是數(shù)組,參數(shù)取到的字符串是不帶引號(hào)的(所以在數(shù)據(jù)集定義的sql語句中調(diào)用字符串類型的參數(shù)的話要手動(dòng)加上單引號(hào)才行)。多個(gè)值用in,sql的in語句參數(shù)是字符串?dāng)?shù)組,每個(gè)都要求帶單引號(hào)。所以要轉(zhuǎn)化下,把控件的返回值改成字符串,間隔符用','。
文檔
本地預(yù)覽的效果和服務(wù)器上的效果不一樣:
首先檢查jar包等是不是有問題。也有可能是嵌入平臺(tái)后出現(xiàn)的問題。
文檔
平臺(tái)管理忘了密碼或者登不進(jìn):
報(bào)表平臺(tái)管理只有一個(gè)賬號(hào),用戶名和密碼放在web-inf/resources/privilege.xml中。655密碼沒加密,7.0密碼是加密的,密碼在<rootManagerPassword>標(biāo)簽中,把里面改成<![CDATA[___0022]]>密碼就是一個(gè)1.用這個(gè)密碼登進(jìn)去再重新設(shè)置。
圖表中文亂碼(方框):
這個(gè)Linux環(huán)境下裝了oracle后容易出現(xiàn)這樣的情況,方框是缺少中文字體的緣故(常見英文字體各種環(huán)境應(yīng)該都有的)。安裝對應(yīng)的中文字體即可解決。
大塊頭的數(shù)據(jù)庫搞壞字體環(huán)境并不少見,上次在win7里面裝domino,好多軟件的字體都被搞了,重裝了系統(tǒng)的中文字體重啟了計(jì)算機(jī)才恢復(fù)正常。
數(shù)據(jù)集預(yù)覽的時(shí)候中文亂碼(全問號(hào)):
亂碼有幾種情況:一種是方框,這個(gè)是字體的原因,畫不出來漢字。一種是問號(hào),這個(gè)是編碼的問題,比如mysql數(shù)據(jù)庫默認(rèn)的編碼是latin1,庫里面沒有中文對應(yīng)的編碼,就解析不了中文,解決方法是改變編碼,比如把mysql的編碼改成utf8或者gbk。這里要注意下的是,數(shù)據(jù)庫有服務(wù)器編碼,客戶端編碼,具體的某一個(gè)數(shù)據(jù)庫和具體的表也有編碼,只有在建數(shù)據(jù)庫建表的時(shí)候選對了編碼才行(沒選的話就用的默認(rèn)的)。
repeated column width is larger than paper width:
這個(gè)看這段話應(yīng)該是很好理解的。比如做的模板頁面寬度只能放開5列,結(jié)果給6列做了重復(fù)和凍結(jié),這個(gè)邏輯上肯定是說不過去的。
文檔
模板打不開,拒絕訪問:
可能是win7操作系統(tǒng)對文件有權(quán)限。
安裝設(shè)計(jì)器后無法預(yù)覽報(bào)表(404報(bào)錯(cuò)):
文檔
對象不支持此屬性或者方法、XXX未定義:
文檔
THREE未定義:
自己沒碰到過沒解決過。
日期比較導(dǎo)致出錯(cuò):
我測試用的是自己搭的sqlserver2005.2012/01/01這種格式的日期和FR上的2012-01-01這種格式的是不能比較的,直接從數(shù)據(jù)庫中讀取的日期格式都比較長,不光是年月日,而且讀不出來,不知道是為什么,預(yù)覽時(shí)可以看到的。然后我加了個(gè)在條件屬性中加了個(gè)left(todate($$$),10)轉(zhuǎn)化了一下就解決了,todate轉(zhuǎn)化成了-連接,前10是年月日。
由一個(gè)單元格擴(kuò)展出來的行高不一致(填報(bào)預(yù)覽):
但是分頁預(yù)覽卻是沒有問題的。最后發(fā)現(xiàn)時(shí)因?yàn)樵O(shè)置了數(shù)據(jù)字典。設(shè)置了數(shù)據(jù)字典的單元格其真實(shí)值一行顯示不了的,就換行了,所以變寬了。難道是填報(bào)預(yù)覽時(shí)計(jì)算需要空間的時(shí)候用的是真實(shí)值計(jì)算的?解決方法,注意點(diǎn),拉寬點(diǎn)就好了。
使用程序數(shù)據(jù)集出錯(cuò):
654和655都有個(gè)問題是加載了有問題的class文件作為程序數(shù)據(jù)集,下次就打不開了,655是設(shè)計(jì)面板單元格界面沒有了。7.0版本沒這個(gè)問題。
程序數(shù)據(jù)集class文件必須放在class com fr data目錄下。 編譯好了后的class名也是不能修改的。
自定義數(shù)據(jù)字典顯示等號(hào)問題:
FR的像自定義數(shù)據(jù)字典這種地方,跟單元格還有提示定義框一定,如果不是‘=’號(hào)開頭是當(dāng)做字符串處理,‘=’號(hào)開頭當(dāng)做公式處理。所以單寫一個(gè)等號(hào)就是空白的。顯示等號(hào)的話用="="
一個(gè)單元格內(nèi)容過多報(bào)錯(cuò):
臨時(shí)解決方法,直接合并多個(gè)單元格可以增加輸入內(nèi)容。