Heis的Blog

          保持簡單,保持愚蠢
          隨筆 - 29, 文章 - 1, 評論 - 122, 引用 - 0
          數據加載中……

          我的評論

          @常興
          可以嘗試一下把pagebreak放到主報表去,放在子報表之間。
          @DDR
          一般來說是子報表的高度超了而導致的問題,不過你描述的不是很清楚,要不你把截圖發我郵箱,讓我看看吧
          @會跑的蝸牛
          今日還上youtube了:-)真不好意思。
          @隔葉黃鶯
          哈哈,是比不上你啦。我是比較晚,你比較早泄露了天機。
          @大衛
          雖然jdk5以后反射性能有了很大的提升,但是反射性能肯定會差一點。通常情況下,如果可以通過getter和setter訪問,盡量使用getter和setter,這樣重構起來也簡單。
          @liguangjun
          邊框是自己設置的;
          字段是靜態添加的,不是動態,所以要自己設計;
          @梁章坪
          不好意思,我借來的紙質書。不過你可以關注我的博客,我覺得直接看筆記會比看書有效率很多。
          @cici
          不用子報表是會有問題的,估計是你的數據源配置錯誤。
          @zhenlu
          這與博文的主題沒關,這可能要找一些支持RTF文件操作的代碼看看咯。
          @5452
          在技術領域有統一的術語是非常重要的,當然術語背后的原理更為重要。
          @zl
          每一行對應一個按鈕來打單?這個我不是很明白,我們郵件聯系吧。畢竟評論不是留言版。我郵箱:heisun@yeah.net
          @zl
          1.檢查你的子報表,field是否放在detail區域內。
          2.檢查父報表的subreport元素內的XPATH是否是/NameList/Person
          3.你的XML數據源不會只有一條數據吧?

          如果還發現錯誤,下載我的模板源代碼對比一下。
          @sky ao
          精辟!
          我個人認為很多技術問題不是只了解結論就行了。
          @zl
          首先確認你的xml文件沒有錯,文件編碼注意要是UTF8;
          如果沒錯,這可能是ireport的xml解析器bug,我也經常遇到這樣的問題。你可以試一下先把原來的ireport的xml數據源刪掉,然后重啟ireport,再試著新建一個xml數據源。這個bug也困擾我很久,有時候會莫名奇妙地不能解析。
          @銀河使者
          1.這道題目沒有說字符就一定是ASCII字符;
          2.用256的數組來保存次數難免會造成空間的浪費。
          @sun
          打印之前肯定是可以修改的,我猜你的意思是打印預覽的階段對報表進行修改吧?
          從Jasperreport的生成報表原理上來看,有這樣一個過程。
          1.模板設計階段。這是一個XML文件,以jrxml后綴名結尾。
          2.編譯階段。通過編譯jrxml文件得到一個jasper文件。
          3.數據填充階段。通過將數據源填充到jasper文件上,然后生成一個jrprint文件。jrprint可以轉換為PDF,Excel等格式的報表。jrprint文件已經是填充了數據的報表,不能編輯內容了。

          所以要做到修改,有兩個方法:
          一是修改數據源,你需要將數據源轉為可編輯的形式,例如XML數據源,像javaBean或數據庫類型的數據源就無能為力了。
          二是,打印預覽階段將導出可編輯的文件,例如像HTML,然后提供HTML的編輯器,修改后可以打印。

          我個人推薦第一種方法。因為可以將報表導為各種形式的文件,雖然需要工作量比較多。第二種方法就只能綁定在一種報表格式上了。
          @nesta
          1.可以,在屬性-字體 里面有一個垂直居中的選項。
          2.你可以嘗試在subreport屬性當中配置一個合適的數據源,像net.sf.jasperreports.engine.data.JRBeanArrayDataSource(Object[])或者net.sf.jasperreports.engine.data.JRBeanCollectionDataSource(Collection)。你可以去查一下API,但是這個解決方法的思路有問題,你為什么不統一數據源,這樣可以更好地處理問題。還有你的bean是通過參數傳入,還是設想在報表里構造?
          3.Jasperreport的參數傳遞是通過在subreport里設置傳遞的參數名,例如為ParamA,然后你再在子模板里新建一個相同名稱的參數ParamA,就可以獲取到這個參數的值了。
          @sun
          報表的數據是依賴數據源的,修改數據源自然能修改報表內容。
          @凌晨風
          “分成兩列橫著打印”是不是指像我現在的報表逆時針轉90度。如果是,那在Jasperreport里是做不到的。文章中也有提及,Jasperreport是只能一個區域(band)一個區域地去渲染,因為區域的排列是由上到下,所以渲染的順序也是從上到下的,沒辦法從左到右渲染。
          @john
          那你的意思是適合中國的報表才有意義?那什么是中國式的報表呢?
          @凌晨風
          首先,針對你說的“報表做起來很麻煩”。我前面的文章有說過,以XML作為數據源是針對不同的需求的,請考慮下面的幾種情況:如果你的報表數據要經過一系列的精確計算,然后在報表上展示計算結果;如果你的報表數據并不是全部都來自于數據庫,而是某些來自程序或其他配置文件;SQL能不能解決問題?

          其次,我不能認同“多個子報表效率無疑會很底”這句話。標簽式報表主體報表的subreport元素都是指向相同的子報表模板。這相當于java中一個類調用同一個類的多個實例,這樣并不會有效率問題。使用“無疑”這個詞并不是程序員應有的素質,至少你應該先去運行一下這個報表。

          我猜想你說的“多結果集”是指subdatasets,這個是只適用于連接(Connection)類型的數據集(像數據庫,Hibernate之類),并不適用于數據源(Data Source)類型的數據集(像XML,CSV之類)。

          對于你的“分欄”操作,我并不是很理解,請賜教。
          @tide
          我理解你的意思是像下面這樣的表格嗎?
          _______________
          | |____|____|
          | |____|____|
          | |____|____|
          | |____|____|
          如果是,我會在下一篇文章中介紹。
          @游上岸的魚
          使用XML作為數據源比直接讀取數據庫更有優勢的地方在于:
          1.數據可以在程序里處理;
          2.數據獨立性和可讀性好

          但是劣勢也是很明顯的,因為要從數據庫讀取數據到對象,對象再轉換為XML,這個過程消耗的資源要更多,效率也會受到影響。具體的效率我也沒測試過,但是我在項目里生成的XML在一萬行左右時,效率是可以接受的。
          但是對于效率要求比較高的報表,但是數據不需要做中間處理的報表,我并不推薦XML作為數據源這種方式。
          主站蜘蛛池模板: 怀集县| 安阳县| 荔浦县| 开平市| 泽库县| 铜陵市| 仲巴县| 长阳| 黑水县| 垫江县| 兖州市| 克东县| 临城县| 什邡市| 仙桃市| 历史| 屯昌县| 东丽区| 清新县| 克拉玛依市| 前郭尔| 武义县| 武功县| 福海县| 勃利县| 云梦县| 会理县| 拉孜县| 微博| 旬邑县| 平罗县| 榕江县| 怀柔区| 陇川县| 华宁县| 益阳市| 杭锦旗| 平安县| 淮阳县| 大连市| 久治县|