簡體   English   中英

Crystal Report-在組標題中打印條件計數

[英]Crystal Report - Printing conditional count in Group header

我一直在尋找答案的日子,所以我希望可以在這里闡明這個話題。 我已經很長時間沒有使用Crystal報表了,所以我將提供盡可能多的細節。

我正在使用VB.net(2005)生成水晶報表。 水晶報表使用了我在數據庫中創建的視圖。 我可以訪問所有數據並正確顯示值。

我的報表中有一個分組,按“標識符”字段分組。 我還有一個名為“ Passed”的布爾字段,該字段為true或false,表示具有給定標識符的電路板是否通過測試。

例如,假設一個標識符為xxxxxx的板有6條記錄,其中3條為真,3條為假(這意味着它通過了3次,失敗了3次)。 我被要求在組標題中提供整個電路板測試歷史記錄,詳細說明其通過和失敗測試的次數。

  • 我已經研究過保持運行總計,但是這是不正確的,因為運行總計只能在評估記錄后才能正確顯示(直到打印標題后才對記錄進行評估)。
  • 我嘗試使用共享或全局變量的路由,該變量在詳細信息部分增加,在組頁腳中重置,並在組頁眉中顯示。 這可能會產生正確的值,但請在下一個組(而不是當前組)的開始處打印它們。
  • 我也嘗試使用Count表達式,但是找不到如何使其成為我所需方式的條件。
  • 我可以在子報表中執行此操作,但是我認為有更好的方法。

有沒有人有任何想法或至少暗示我可以在不使用子報表的情況下實現此目標的方法?

在詳細信息部分中添加一個公式,在該公式中定義共享變量。 將傳遞的標識符計數分配給一個共享變量,將失敗的標識符分配給另一共享變量。

在組標題中添加兩個公式(一個用於傳遞,另一個用於失敗),並放在下面的代碼中

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM