日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在分页后web报表的最后一页补足空行的方法

發布時間:2023/12/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在分页后web报表的最后一页补足空行的方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

????????? 幾乎任何形式的文檔和報表都離不開分頁,報表如何分頁在B/S模式的Web報表中也是個常見的問題,特別是當大數據量的Web報表需要打印輸出時,不可能將所有數據打印到一張紙上,這時必然涉及到報表的分頁。開發Web報表常常遇到這樣的問題:當數據比較多時,在分頁后,常常最后一頁只有幾條數據,這樣的報表被打印出來以后,看起來不是很美觀,是否能在Web報表最后一頁不足行的時候自動用空白行補充呢?

這個問題用潤乾報表可以非常靈活的解決,下面介紹Web報表分頁打印時補空行的四種不同情形如何在潤乾報表中實現。

情形一,行高固定,無表頭的報表

???????? 這種形式的報表最簡單,下面用一個兩層分組的客戶表來舉例說明。當此報表分頁后,一共分為4頁,最后一頁只有一行,看起來非常不規整。

???????? 假設報表按A4紙張大小進行分頁,一頁紙可以打印30行。那么我們首先在報表末尾增加一個空白行,然后在最左邊的單元格里加入=to(1,30-ds1.count()%30)表達式,此表達式的意思是說,一頁紙固定行數是30行,分頁時如果最后一頁數據集ds1數據不滿30行,則用空白行補充。

???????? 接著選定此單元格,將右側屬性欄中的[可視]屬性去掉,發布報表即可看到效果。

?????? ? 將此報表發布后,可以看到最后一頁已經被補入了空行,正好填充滿第四頁。

情形二,行高固定,每頁都有表頭的web報表

????????? 當報表加上表頭而且每頁都有時,情況也不復雜,只需要算出除去表頭每頁一共可以容納多少行就可以。在本例中,除去表頭每頁還可以容納29行,這樣我們只需要將單元格A3中的表達式改為=to(1,29-ds1.count()%29),就實現了添加空行。

其實當報表加入加入表尾、頁面、頁腳等等,并且每頁都顯示時,處理方法也是一樣的,只要算出這種情況下每頁可以容納多少行,再取模就可以。

?

情形三,行高固定,行數不固定,每頁都有表頭的報表

???????? 這種情況下,報表的總行數不等于數據集中記錄的總個數,比如本例中在每個”地區”分組后都加入一個”公司數”匯總信息行的情況。這時報表按”地區”一共分為幾組由具體數據決定,在設計報表時并不知道,但在潤乾報表中非常容易得到這個分組個數,只要算出A2擴展出幾個單元格就行。我們把A4的表達式改成:=to(1,29-(ds1.count()+count(A2{}))%29)。

其實,本例只是行數不固定的一種簡單情況,還有很多其它行數不固定的情況,在潤乾報表中都可以用表達式算出這不固定的總行數,從而解決問題。

?

情形四,行高固定,行數不固定,只有第一頁有表頭的報表

很多Web報表只需要在第一頁打印報表表頭,針對這種情況,潤乾報表可以通過報表屬性設置很方便地設置表頭打印的方式。

這時情況其實和變化一類似,只是第一頁多出來了報表頭這一行,我們只需要在變化三的基礎上把取模總數加1、再把每頁按29行取模改成按30行取模,修改表達式為:=to(1,30-(ds1.count()+count(A2{})+1)%30)。

?????????????到這里,利用潤乾報表實現分頁打印Web報表補足空行的四種情形都介紹完了,細心的讀者可能會發現,這四種變化都是基于”行高固定”這個假設,那么當行高不固定的時候如何處理呢?其實最簡單答案還是在潤乾報表中用取模的方法,只是取模的時候要加入具體行高和打印紙張的高度進行計算就行了。這時候又有讀者會問,如果Web報表中的紙張大小都不固定怎么辦呢?呵呵,這個也難不倒潤乾報表。開發人員可以用潤乾報表中的參數和宏的功能,動態設定紙張大小,以適應不同的打印情況。

總結

以上是生活随笔為你收集整理的在分页后web报表的最后一页补足空行的方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。