本文為解所作
先確認下原帖需求:
1、詳細節最多5條記錄(不能超過5條);
2、無論前一組是否滿5條記錄,每個新組都要另起一頁
主要就這兩點。
報表按id分組就不用再提及了吧?(右擊報表空白處->插入->組)
首先新建一執行總計字段,如圖示
該執行總計字段就是為了重置recordnumber,模板設計好後應該是這樣的,如圖示
就這樣是達不到我們需求的,我們還要為它處理下:)
針對需求1,我們的處理方案是
onlastrecord意指最後一條記錄,not onlastrecord自然是非最後一條記錄,在這裡就是指非最後一條記錄時就在後面頁新建頁,最後一條記錄時就不用再新建頁了。若不用該公式控制的話,報表的最後一頁總是空白頁(沒有詳細節資料)
原帖還有乙個小需求:在第一頁的id後自動加-(1),第二頁id後自動加-(2)
其實應該是在每個#組頭(組頁首)處顯示 "id:" + id值 而已:)
這樣我們只需把分組後的組名自定義一下即可,如圖示:
由於這邊的id是數字型,所以用totext函式把它轉成字元型,後面的引數0表示保留0位小數(即不保留小數)
本文的重點是在模板的設計,**就不晾出來了
modified @2011-11-29 21:45
前文提及的小需求:在第一頁的id後自動加-(1),第二頁id後自動加-(2)
本人理解錯了,應該是組內頁碼重置,抱歉~
其實泰哥這篇【分享】水晶報表組內分頁已經做到這個效果了,但不知道為什麼我這竟然沒有找到roundup函式,所以修改下泰哥原文公式x1的內容如下:
//每個組的總記錄數
numbervar grouprecordcount := count (, );
//每個組的總頁數
numbervar grouppagecount := grouprecordcount / 5;
if int(grouppagecount) <> grouppagecount then
( grouppagecount := int(grouppagecount) + 1
);//重置後的recordnumber
numbervar grouprecordnumber := ;
//組內當前頁
numbervar grouppagenumber := grouprecordnumber / 5;
if int(grouppagenumber) <> grouppagenumber then
( grouppagenumber := int(grouppagenumber) + 1
);//最終報表介面顯示
'第' + totext(grouppagenumber, 0) + '頁 / 共' + totext(grouppagecount, 0) + '頁'
//說明:int函式是取整函式,如int(1.2)=1; int(1.9)=1
//寫好後將該公式欄位拖放到#組頭(組頁首)節即可
水晶報表進行每頁統計(在水晶報表中實現每頁統計)
思路如下 crystal語法 1 用乙個變數mysum來累計頁面資料 訂單.訂單金額 公式 currentsum,放在詳細資料節需要進行彙總的字段的位置 mysum 如果不需要顯示,抑制顯示即可 2 在每頁的頁尾獲取到這個變數的值 也就是該頁最後乙個sum值 當然這個時候後乙個mysum是前面所有資...
水晶報表分頁彙總
水晶報表分頁彙總 建三個公式字段,第乙個 公式1 輸入下面的公式 whileprintingrecords global numbervar ptotal ptotal 0 第二個 公式2 輸入下面的公式 whileprintingrecords global numbervar ptotal pt...
水晶報表基礎入門 4 水晶報表排序 分組技術
6.1.3水晶報表排序 分組技術 報表資料的預設排列順序會與資料庫中的資料記錄的存放順序相同,因此會毫無規則且不會依照任何順序來排列。crystal reports提供 記錄排序專家 對話方塊來完成對報表資料的排序,如圖 6.7所示。圖6.7 記錄排序專家 在 記錄排序專家 對話方塊開啟後,從 可用...