報表設(shè)計與開發(fā)
Q: jdbc連接DB時的寫法。
A: <env-entry>
<env-entry-name>jdbc/david</env-entry-name>
<env-entry-value>!oracle.jdbc.driver.OracleDriver!jdbc:oracle:thin:tjdba/tjdba@192.168.1.21:1521:david</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
Q: 發(fā)布到Server上,有記錄數(shù)的限制,怎么辦?
A: Crystal Management Console > Servers > Page Server ,取消max record limit的設(shè)定
Q:如何在Crystal Reports XI中設(shè)計帶參數(shù)的報表
A: 請你先再一份報表中加入?yún)?shù)字段(Parameter Fields),然后先不要寫任何的程序,先把報表發(fā)布到Crystal Report Server或BOE XI中,并使用它的Info View來觀察一下整個參數(shù)處理的流程。
Q: 最好在設(shè)計(Design)頁面進(jìn)行字段格式的更動
A: 如果要對字段格式進(jìn)行更改的話,最好不好直接在預(yù)覽頁面(Preview)上直接修改格式,因為在預(yù)覽頁面(Preview)上是馬上會顯示你所作的改變,特別是當(dāng)你的數(shù)據(jù)量大或是一次要變更很多字段時,所以建議比較有效率的作法是在設(shè)計(Design)頁面進(jìn)行更動,再到預(yù)覽頁面(Preview)一次調(diào)整。
Q:如何使用參數(shù)?比如訂單號由用戶輸入。
A:你可以參考ReportDocument.SetParameterValue()方法。
Q: 如果日期時間為字符型,如何顯示為日期型?
A: 新建一個公式字段,然后調(diào)用一下函數(shù)即可。
Q: 導(dǎo)出文件時為何要兩次才能成功導(dǎo)出?
待解決
Q: 如果使用字段資源管理器: 參數(shù)字段、組名字段
A: 組名字段不能在字段資源管理器右鍵編輯,必須選擇組專家;
參數(shù)字段可以作為條件,寫法為: {?參數(shù)名稱}
Q: 數(shù)據(jù)是否一直緩存在CR的某個區(qū)域?只有當(dāng)你做了更改之后才會提示刷新?比如,打開一個報表,在不修改的情況下,預(yù)覽數(shù)據(jù)的速度很快。但如果加上某一字段,則會彈出連接數(shù)據(jù)庫的安全驗證窗口。
A: 一.把報表上的隨報表保存數(shù)據(jù)上的勾打上了,二.修改了報表,預(yù)覽數(shù)據(jù)時會重新連接數(shù)據(jù)庫,也可以把這個驗證取掉。
Q: 換行—當(dāng)字段過長,必須換行,但同一記錄所占行數(shù),必須以行數(shù)最多的字段為準(zhǔn)。
A: 在字段格式里,把可以擴(kuò)大勾選起來
Q: 在公式工作室里可以加上條件,但好像不接受like?
A: 可采用函數(shù)代替,比如InStr等。
Q: 如何使用公式工作室->函數(shù)->匯總里的布爾值條件、日期條件、時間條件
A: 可以用函數(shù)調(diào)用Sum ({T_CARD.PRICE},{T_CARD.CREATE_DATE} , "weekly"),
其中{T_CARD.CREATE_DATE}類型要與布爾值條件、日期條件、時間條件對應(yīng)。
Q: 如何設(shè)置每頁顯示幾條記錄?
A : 節(jié)專家:在以下內(nèi)容之后新建頁: recordnumber mod 10 = 0
子報表
Q: 使用子報表的正確時機(jī)為?
A: 由于使用子報表會影響整份報表的執(zhí)行效率,除非當(dāng)無法用正常關(guān)聯(lián)圖解法建立的表格關(guān)系時,例如你有一部份的客戶數(shù)據(jù)存在IBM DB2數(shù)據(jù)庫里,另一部份的客戶數(shù)據(jù)在Access數(shù)據(jù)庫里。子報表雖然嵌在主報表里,但在運(yùn)作上它是一樣會被當(dāng)作一份單獨(dú)的報表來執(zhí)行。一旦當(dāng)你的報表含有子報表之后,就表示在實際執(zhí)行上,Crystal Reports至少會執(zhí)行兩份報表才能正確顯示你要的內(nèi)容。
而子報表執(zhí)行次數(shù),會和你放置子報表的區(qū)段有相當(dāng)關(guān)系。假如你把子表放置在報表首,因為報表首區(qū)段只會出現(xiàn)一次,再加上原來這份報表,表示Crystal Reports要執(zhí)行兩份報表才會產(chǎn)生你要的結(jié)果。
若你將子報表放置在群組尾,而這層群組共有n組,則共有n+1份報表需要執(zhí)行。更何況要是子報表是被放置在細(xì)目區(qū)段里,那執(zhí)行的報表次數(shù)還會更多。
Q: 子報表之間如何連結(jié)
A: 當(dāng)在建立連結(jié)關(guān)系時,Crystal Reports自動產(chǎn)生一個參數(shù)字段來做兩者之間的橋梁。而主報表的連結(jié)字段會把數(shù)據(jù)內(nèi)容傳給參數(shù)字段,而參數(shù)字段在篩選條件里控制了子報表的連結(jié)字段。
如: 主報表的連結(jié)字段?。瓊鲾?shù)據(jù)-> 參數(shù)字段 = 子報表的連結(jié)字段
Q: 如何設(shè)定主報表和子報表之間的數(shù)據(jù)更新?
A: 有三個地方與主子報表之間的更新有關(guān):
1.在菜單上的File->Options設(shè)定對話框中,報表(Reporting)頁面里的 開啟報表時重新 匯入子報表(Re-import Subreports When Loading Reports)這是個整體的選項,當(dāng)勾選后即代表只要用Crystal Reports開啟任一份含子報表之報表時,一定會更新子報表 的數(shù)據(jù)。
2.在設(shè)計(Design)頁面上點選子報表,按右鍵選格式子報表(Format Subreport),在對話 框中的子報表(Subreport)頁面,開啟時重新匯入(Re-import When Opening)可針對該子報表做單獨(dú)的設(shè)定。
3.在設(shè)計(Design)頁面上點選子報表,按右鍵選重新匯入子報表(Re-import Subreports),這是個實時的動作,當(dāng)按下些項時,Crystal Reports會立即重讀子報表 的數(shù)據(jù)。