在分页后web报表的最后一页补足空行的方法
????????? 幾乎任何形式的文檔和報(bào)表都離不開分頁(yè),報(bào)表如何分頁(yè)在B/S模式的Web報(bào)表中也是個(gè)常見的問題,特別是當(dāng)大數(shù)據(jù)量的Web報(bào)表需要打印輸出時(shí),不可能將所有數(shù)據(jù)打印到一張紙上,這時(shí)必然涉及到報(bào)表的分頁(yè)。開發(fā)Web報(bào)表常常遇到這樣的問題:當(dāng)數(shù)據(jù)比較多時(shí),在分頁(yè)后,常常最后一頁(yè)只有幾條數(shù)據(jù),這樣的報(bào)表被打印出來以后,看起來不是很美觀,是否能在Web報(bào)表最后一頁(yè)不足行的時(shí)候自動(dòng)用空白行補(bǔ)充呢?
這個(gè)問題用潤(rùn)乾報(bào)表可以非常靈活的解決,下面介紹Web報(bào)表分頁(yè)打印時(shí)補(bǔ)空行的四種不同情形如何在潤(rùn)乾報(bào)表中實(shí)現(xiàn)。
情形一,行高固定,無表頭的報(bào)表
???????? 這種形式的報(bào)表最簡(jiǎn)單,下面用一個(gè)兩層分組的客戶表來舉例說明。當(dāng)此報(bào)表分頁(yè)后,一共分為4頁(yè),最后一頁(yè)只有一行,看起來非常不規(guī)整。
???????? 假設(shè)報(bào)表按A4紙張大小進(jìn)行分頁(yè),一頁(yè)紙可以打印30行。那么我們首先在報(bào)表末尾增加一個(gè)空白行,然后在最左邊的單元格里加入=to(1,30-ds1.count()%30)表達(dá)式,此表達(dá)式的意思是說,一頁(yè)紙固定行數(shù)是30行,分頁(yè)時(shí)如果最后一頁(yè)數(shù)據(jù)集ds1數(shù)據(jù)不滿30行,則用空白行補(bǔ)充。
???????? 接著選定此單元格,將右側(cè)屬性欄中的[可視]屬性去掉,發(fā)布報(bào)表即可看到效果。
?????? ? 將此報(bào)表發(fā)布后,可以看到最后一頁(yè)已經(jīng)被補(bǔ)入了空行,正好填充滿第四頁(yè)。
情形二,行高固定,每頁(yè)都有表頭的web報(bào)表
????????? 當(dāng)報(bào)表加上表頭而且每頁(yè)都有時(shí),情況也不復(fù)雜,只需要算出除去表頭每頁(yè)一共可以容納多少行就可以。在本例中,除去表頭每頁(yè)還可以容納29行,這樣我們只需要將單元格A3中的表達(dá)式改為=to(1,29-ds1.count()%29),就實(shí)現(xiàn)了添加空行。
其實(shí)當(dāng)報(bào)表加入加入表尾、頁(yè)面、頁(yè)腳等等,并且每頁(yè)都顯示時(shí),處理方法也是一樣的,只要算出這種情況下每頁(yè)可以容納多少行,再取模就可以。
?
情形三,行高固定,行數(shù)不固定,每頁(yè)都有表頭的報(bào)表
???????? 這種情況下,報(bào)表的總行數(shù)不等于數(shù)據(jù)集中記錄的總個(gè)數(shù),比如本例中在每個(gè)”地區(qū)”分組后都加入一個(gè)”公司數(shù)”匯總信息行的情況。這時(shí)報(bào)表按”地區(qū)”一共分為幾組由具體數(shù)據(jù)決定,在設(shè)計(jì)報(bào)表時(shí)并不知道,但在潤(rùn)乾報(bào)表中非常容易得到這個(gè)分組個(gè)數(shù),只要算出A2擴(kuò)展出幾個(gè)單元格就行。我們把A4的表達(dá)式改成:=to(1,29-(ds1.count()+count(A2{}))%29)。
其實(shí),本例只是行數(shù)不固定的一種簡(jiǎn)單情況,還有很多其它行數(shù)不固定的情況,在潤(rùn)乾報(bào)表中都可以用表達(dá)式算出這不固定的總行數(shù),從而解決問題。
?
情形四,行高固定,行數(shù)不固定,只有第一頁(yè)有表頭的報(bào)表
很多Web報(bào)表只需要在第一頁(yè)打印報(bào)表表頭,針對(duì)這種情況,潤(rùn)乾報(bào)表可以通過報(bào)表屬性設(shè)置很方便地設(shè)置表頭打印的方式。
這時(shí)情況其實(shí)和變化一類似,只是第一頁(yè)多出來了報(bào)表頭這一行,我們只需要在變化三的基礎(chǔ)上把取模總數(shù)加1、再把每頁(yè)按29行取模改成按30行取模,修改表達(dá)式為:=to(1,30-(ds1.count()+count(A2{})+1)%30)。
?????????????到這里,利用潤(rùn)乾報(bào)表實(shí)現(xiàn)分頁(yè)打印Web報(bào)表補(bǔ)足空行的四種情形都介紹完了,細(xì)心的讀者可能會(huì)發(fā)現(xiàn),這四種變化都是基于”行高固定”這個(gè)假設(shè),那么當(dāng)行高不固定的時(shí)候如何處理呢?其實(shí)最簡(jiǎn)單答案還是在潤(rùn)乾報(bào)表中用取模的方法,只是取模的時(shí)候要加入具體行高和打印紙張的高度進(jìn)行計(jì)算就行了。這時(shí)候又有讀者會(huì)問,如果Web報(bào)表中的紙張大小都不固定怎么辦呢?呵呵,這個(gè)也難不倒?jié)櫱瑘?bào)表。開發(fā)人員可以用潤(rùn)乾報(bào)表中的參數(shù)和宏的功能,動(dòng)態(tài)設(shè)定紙張大小,以適應(yīng)不同的打印情況。
總結(jié)
以上是生活随笔為你收集整理的在分页后web报表的最后一页补足空行的方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自动编号转化为文本_将您的自动回复器转化
- 下一篇: 【在线分享】考研数学思维导图+高数思维导