UReport2 補(bǔ)充空白行與分頁

2023-01-05 16:04 更新
UReport2教學(xué)視頻http://pan.baidu.com/s/1boWTxF5,密碼:98hj

       選中任意一個(gè)包含數(shù)據(jù)集屬性的單元格,在屬性面板上可以看到它有個(gè)名為“補(bǔ)充空白行”的屬性,默認(rèn)該屬性處于關(guān)閉狀態(tài),當(dāng)我們將其打開后,就需要輸入具體的“數(shù)據(jù)行倍數(shù)”,如下圖所示:

row-multiple

       在上圖中,一旦我們將某個(gè)包含數(shù)據(jù)集的單元格的補(bǔ)充空白行屬性打開,并設(shè)置了具體的數(shù)據(jù)行倍數(shù),那么報(bào)表在計(jì)算當(dāng)前單元格對(duì)應(yīng)的數(shù)據(jù)時(shí),會(huì)根據(jù)這里設(shè)置的具體倍數(shù)來決定是否填充空白行,以及填充多少行空白行。比如當(dāng)前單元格對(duì)應(yīng)的數(shù)據(jù)集屬性,在報(bào)表計(jì)算后共有3條數(shù)據(jù),而我們又將該單元格補(bǔ)充空白行屬性打開,并設(shè)置了數(shù)據(jù)行倍數(shù)為5,那么引擎就會(huì)拿當(dāng)前數(shù)據(jù)集計(jì)算后的條數(shù),也就是3 mod 數(shù)據(jù)行倍數(shù)值5,其結(jié)果是2,那么引擎將在這個(gè)單元格展開后的最后一行添加兩行空白行(如果當(dāng)前單元格展開后的條數(shù)是10,因?yàn)?0 mod 5等于0,那么引擎將不添加空白行)。

       對(duì)于添加的空白行,引擎將根據(jù)當(dāng)前單元格所在行對(duì)應(yīng)的每一列中單元格的樣式來設(shè)置空白行中每列每個(gè)單元格的樣式,也就是說,如果當(dāng)前單元格所在行每列對(duì)應(yīng)的單元格都沒有邊框線,那么添加的空白行每列中每個(gè)單元格都沒有邊框線,反之亦然。

       看一個(gè)例子,在下圖中,報(bào)表模版A1單元格的填充空白行屬性打開,數(shù)據(jù)行倍數(shù)是5,如下圖所示:

demo1

       在A1單元格對(duì)應(yīng)的數(shù)據(jù)集屬性中,報(bào)表運(yùn)行時(shí)數(shù)據(jù)共6條,6 mod 5=1,所以引擎還會(huì)在最后一個(gè)A1單元格所在行后添加4行空白行(因?yàn)橐髷?shù)據(jù)行是5的倍數(shù),所以實(shí)際運(yùn)行會(huì)加四行空白行),運(yùn)行后效果如下圖所示:

d1

       了解這些內(nèi)容后,再配合之前介紹的條件屬性以及行類型,就可以做出一些復(fù)雜的樣式及特殊分頁要求的主從明細(xì)型報(bào)表。

       下圖中是一個(gè)典型的主從明細(xì)型報(bào)表,在這個(gè)報(bào)表中,我們就將行類型,填充空白行,條件屬性等功能進(jìn)行結(jié)合使用,如下圖所示:

demo2

       在B4單元格我們將其補(bǔ)充空白行屬性打開,并設(shè)置數(shù)據(jù)行倍數(shù)為10,同時(shí)選中B4單元格,點(diǎn)擊條件屬性的配置條件按鈕,可以看到我們也為其配置了一個(gè)條件,如下圖所示:

demo2-condition-config

       在這里,我們添加了一個(gè)條件表達(dá)式,那就是&B4 % 10==0是否成立,如果成立,那么就在這個(gè)單元格所在行后進(jìn)行分頁。

關(guān)于&B4&B4是UReport2中提供的一個(gè)表達(dá)式,用來獲取對(duì)應(yīng)單元格展開后的行號(hào),這里&B4 % 10就是拿B4單元格展開后的行號(hào)值與10除求余,看余數(shù)是否等于0,如果是就在這個(gè)單元格所在行后進(jìn)行分頁。

       運(yùn)行后的報(bào)表如下圖的所示:

d2

        點(diǎn)擊打印,可以看到如下圖所示的打印預(yù)覽效果:

d21

       如果我們將B4所在行所有單元格邊框線去掉,那么生成的效果就是下面的樣子:

d22

       在這個(gè)例子當(dāng)中,報(bào)表打印輸出時(shí)之所以會(huì)出現(xiàn)上圖所示效果,是因?yàn)楫?dāng)我們?yōu)锽4單元格定義了填充空白行的數(shù)據(jù)倍數(shù)為10的時(shí)候,那么對(duì)于每個(gè)明細(xì)下的B4單元格展開后的數(shù)據(jù)量行數(shù)都會(huì)是10的倍數(shù),如果不是則會(huì)自動(dòng)填充空白行以達(dá)到10的倍數(shù)。同時(shí)對(duì)于B4單元格我們又為其設(shè)置了條件屬性,條件是&B4 % 10 =0,也就是判斷B4單元格展開后當(dāng)前行號(hào)整除10的余數(shù)是不是0,如果是就在B4單元格所在行后進(jìn)行分頁。通過上述關(guān)鍵的兩個(gè)設(shè)置就實(shí)現(xiàn)了這種每頁行數(shù)一樣(帶有填充空白行)效果主從明細(xì)類報(bào)表。

關(guān)于分頁需要注意的是,在實(shí)現(xiàn)這種類型報(bào)表時(shí),在采用“自動(dòng)”類型的分頁方式時(shí),要保證每一頁的行對(duì)應(yīng)的所有行高,不要超過當(dāng)前頁可用高度;當(dāng)采用“固定行數(shù)”類型的分頁方式時(shí),要保證固定行數(shù)分頁的行數(shù)值,與條件屬性中對(duì)應(yīng)的分頁配置匹配。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)