1. 程式人生 > >如何在報表中實現強制分頁效果

如何在報表中實現強制分頁效果

 

使用Word編輯文件,當文字或圖形等內容填滿一頁時,Word會插入一個自動分頁符並開始新的一頁。如果要在某個特定位置強制分頁,可手動插入分頁符(分隔符內),這樣可以確保章節標題總在新的一頁開始。

對於報表來講,同樣有類似的需求,比如一個訂單包括訂單資訊(訂單編號、貨主資訊、各種日期時間等)及明細資訊(產品列表),常見報表呈現形式如下圖

問題:當一次查詢多個訂單,因產品列表的行數是不固定的,也就無法保證每個訂單都恰好能從新的一頁開始。

解決方案很簡單,如同word的分頁符,這就要求報表工具支援在每個訂單的產品列表後強制分頁。

 

潤乾報表如何解決?

很簡單,一個行屬性的問題。

接下來的內容,結合“訂單”及“訂單明細表”為大家介紹如何來做。

操作步驟

準備一個主子表格式報表模板

準備一張結果如下圖所示的主子表

模板設計如下

資料集sql:

  1. 訂單:SELECT 訂單.訂單ID,訂單.訂購日期,訂單.到貨日期,訂單.發貨日期,訂單.運貨商,訂單.貨主地址,僱員.姓氏,僱員.名字,客戶.公司名稱 FROM 訂單,客戶,僱員 WHERE  訂單.客戶ID = 客戶.客戶ID  AND  訂單.僱員ID = 僱員.僱員ID 
  2. 明細:SELECT 訂單明細.訂單ID,訂單明細.產品ID,訂單明細.單價,訂單明細.數量,訂單明細.折扣 FROM 訂單明細


B2表示式:=訂單.select(訂單ID)

D3表示式:=訂單.姓氏+訂單.名字

B4、B5、B6、E4、E5均為:=訂單.欄位名

A8表示式:=明細.select(產品ID,訂單ID==B2)

B8、C8、D8均為:=明細.欄位名

E8表示式:=B8*C8*D8

第9為增加的空白行,用於每個訂單的該行後強制分頁。

另外,A1—A9的左主格設定為B2

模板中設定行後分頁(強制分頁)

重點!!!在模板中設定行後分頁,選中第9行,屬性區“行屬性”—“行後分頁”

複選框內打勾,儲存模板。

預覽報表結果

分頁僅在web端有效,所以先發布報表,瀏覽器預覽報表如下

 

通過設定強制行後分頁,輕鬆實現每個新訂單都從新的一頁開始。針對這種比較常用的功能,報表工具在設計時都已考慮到,儘管和word、excel等內的叫法不同,但功能相同。遇到類似問題查閱手冊,對應設定即可。

 

另外,行後分頁支援表示式定義,所以可以控制任意滿足條件下的強制行後分頁。該部分也將在後續的文章中陸續介紹。

 

Ps:強制分頁後,如果產品列表的最後一頁不滿一頁時可能有補空行的要求,請參考:http://c.raqsoft.com.cn/article/1535595406853