不幸的是,這並不簡單。問題是,由於數據按類別分組,因此它會在下一個類別之前顯示所有類別。即使你採取了按類別分組,你還是會落得像數據:
Category A Category B
detail 1
detail 1
detail 2
detail 2
detail 3
有一種方式來獲得它正是你想要的方式,但每個類別下的整個結果集將被放入每個類別的一個字段中。如果您在屏幕上打印或查看它,這不是問題,但導出到Excel會將每列放入一個單元格;像這樣:
Category A Category B
+---------+ +---------+
|detail 1 | |detail 1 |
|detail 2 | |detail 2 |
+---------+ |detail 3 |
+---------+
爲了做到這一點,我們會創造什麼基本上是一個文本磨合總場(或兩個)。首先,報告標題中的初始化程序:
WhilePrintingRecords;
Global StringVar CatA := "";
Global StringVar CatB := "";
""; //print nothing on screen
然後,在詳細信息部分中更新。細節部分本身實際上是隱藏的(而不是被取消)。
WhilePrintingRecords;
Global StringVar CatA;
Global StringVar CatB;
If {Table.Category} = "Category A"
//Chr(10) + Chr(13) is a return/newline
Then CatA := CatA + Chr(10) + Chr(13) + {Table.Detail};
If {Table.Category} = "Category B"
Then CatB := CatB + Chr(10) + Chr(13) + {Table.Detail};
""; //print nothing
最後,相關的類別一切完成後(我假設在組2:學生頁腳),打印全局變量的結果。因此,對於A類:
WhilePrintingRecords;
Global StringVar CatA;
你將不得不確保結果字段設置爲Can grow
。
EvilBob,這是一個很好的答案!我將在一個實現上述想法的版本上工作。我結束了使用子報表,但我有六個,所以你可以猜測它運行非常緩慢!希望你的方式能更快地工作。 –