水晶報表的一些解決方法

2021-04-07 13:25:51 字數 1662 閱讀 9167

客戶要求:  

1,紙張用高1400mm,寬2400mm的壓感紙  

2,每行列印10條記錄  

3,每頁進行金額統計  

4,按照商品類別分類列印(換類換紙)  

5,表頭可以輸入  

超過216,於是設定高2400,寬1400的紙張,改變一下列印方式就可以了。之所以要這樣,是因為在水晶報表裡面,紙張是報表的載體  

,如果隨便用另外乙個紙張來代替,列印出來的根本就是改該頁了沒換,不該換的時候換了,一塌糊塗  

。比如說我一開始的時候用的是a4的紙張模擬的,但是根本不行,而且已知型別的紙張裡面沒有滿足條  

件的,所以只有自定義才可以。這樣,你的報表是建立在你自定義的紙張上的,就是用a4的紙來列印,  

報表還是只列印140*240的範圍,然後就換紙。可恨我折騰了1天,才明白這個道理。  

2,每行列印10條記錄。  

調整報表的頁首和頁尾,就可以完成這個功能,當然,首先是你的紙張符合要求。  

3,每頁進行金額統計        

做了三個公式來完成這個功能。  

分別是  

whileprintingrecords;  

currencyvar   amount;  

amount   :=   amount   +   ;  

用來累加計算,放在詳細資料裡面  

whileprintingrecords;  

currencyvar   amount;  

用來顯示金額,放在頁尾  

whileprintingrecords;  

currencyvar   amount;  

amount   :=   0;  

用來重置,放在頁首  

這樣,每列印一頁就會重置一次amount。就完成了分頁統計。  

我不知道當紀錄行數沒有充滿一頁的時候水晶報表是否可以列印空白的網格,總之我是沒有找到,所以用了乙個變通的方法。因為我的報表是分組的,所以在組頁尾上放了和頁尾上完全一樣的內容,在組頁尾裡面設定乙個變數為true,然後在頁尾的格式化節裡面選中「抑制顯示「選項,採用公式來判斷變數的值。  

這樣當組頁尾顯示之後,頁尾就不顯示了,解決了一大片空白之後,在頁尾上顯示統計金額的問題(主要是不美觀)。  

4   ,這個問題主要是分類換紙,我一開始的時候選中組頁尾的「在後面內容新建頁「,但是發現,總會多打一張醜陋的紙出來,因為這項選中之後,水晶報表不管後面還有沒有內容,總是插入分頁符,所以最後會多出一頁,這個也是採用公式解決,在「在後面內容新建頁「右邊選擇公式,然後輸入  

if   nextisnull()   then  

false  

else  

true  

這就是說,去看看下一條記錄inv_inout_sub_detail.item_name還有沒有值,如果沒有值,就不插入分頁符,否則插入,這樣就解決了這個問題。  

5   表頭可以輸入  

這個用乙個引數欄位就搞定了,當執行到這個引數欄位的時候,水晶報表會彈出乙個對話方塊,要求輸入引數值,而且你可以提供預設值的,唯一不好的就是,由於選項太多的緣故,這個對話方塊很大(因為水晶報表是根據你是否選擇了某項內容而決定是否隱藏還是顯示對話方塊上的一些控制項,所以沒有辦法)。  

第一次弄這個,汗死~~:)  

水晶報表的一些操作

兩個重要的名字空間 using crystaldecisions.shared 負責解釋tablelogoninfo類等 using crystaldecisions.crystalreports.engine 負責解釋reportdocument類等 水晶報表修改text物件值 crystalre...

水晶報表的一些基礎使用方法

1.基礎使用 dim rs as class1 new class1 dim sql as string sql select from t shap dim dss as test3.dataset1 new test3.dataset1 自定義資料集 rs.get dataset1 sql,ds...

分享 水晶報表多列印空白頁的解決方法

最近再次接觸水晶報表列印,遇到個空白頁和頁尾內容無法列印的問題,折騰了很久,最終在早上解決了,寫出來與同行們一起分享。乙個模板中放置主從報表,我是參考http www.cnblogs.com babyt archive 2008 01 27 1055334.html 來設計的,感謝阿泰的分享。我用的...