[英]Crystal Report - Printing conditional count in Group header
我一直在尋找答案的日子,所以我希望可以在這里闡明這個話題。 我已經很長時間沒有使用Crystal報表了,所以我將提供盡可能多的細節。
我正在使用VB.net(2005)生成水晶報表。 水晶報表使用了我在數據庫中創建的視圖。 我可以訪問所有數據並正確顯示值。
我的報表中有一個分組,按“標識符”字段分組。 我還有一個名為“ Passed”的布爾字段,該字段為true或false,表示具有給定標識符的電路板是否通過測試。
例如,假設一個標識符為xxxxxx
的板有6條記錄,其中3條為真,3條為假(這意味着它通過了3次,失敗了3次)。 我被要求在組標題中提供整個電路板測試歷史記錄,詳細說明其通過和失敗測試的次數。
有沒有人有任何想法或至少暗示我可以在不使用子報表的情況下實現此目標的方法?
在詳細信息部分中添加一個公式,在該公式中定義共享變量。 將傳遞的標識符計數分配給一個共享變量,將失敗的標識符分配給另一共享變量。
在組標題中添加兩個公式(一個用於傳遞,另一個用於失敗),並放在下面的代碼中
shared numbervar num;
num;
請注意,此處num是示例共享變量名稱。 您必須將其替換為詳細信息部分中提到的共享變量名稱。
在組頁腳中添加另外兩個公式,並將共享變量值設置為0。
我希望這有幫助。
對於某些標識符,您現在有6個記錄中的6個已通過,而3個失敗,現在您想在標題上顯示記錄數。 Below solution will satisfy this problem.
創建公式
`If <Field=false>
then 1
else 0`
現在將此條件放在詳細信息部分並取值的總和,類似地對true
同樣的操作,並將其放在詳細信息部分。
Now you have the counts saperately for both true and false
現在創建另一個公式,並將以下代碼粘貼到組頭部分中。
EvaluateAfter({above created forumla});
Sum ({above created formula}, {ORDERDETAIL.DATEE})
對true
執行相同的操作,並將其放在組頭中。
現在您可以在組標題中進行計數
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.