簡體   English   中英

交叉表 Crystal Reports 空值與零

[英]Crosstabs Crystal Reports Null value vs zero

我正在創建一個交叉表報告,顯示地鼠龜(如果您必須知道那是什么)監測站的調查歷史。 對於給定的調查,並非所有站點都受到監控,有時當我們進行監控時,我們沒有發現任何站點,因此記錄為 0,這是一個有效的結果。

在不使用站時的交叉表中,我希望它說“不適用”或其他一些等效項,但是當它為零時,我希望它保持為零。

我已經找到了很多關於如何將空值更改為零的內容,但是當您想保留零並以某種方式注意空值時,什么也沒有。

下面是交叉表的外觀。 您會看到 2004 年 1 月 1 日在 Station4 中的 0 是“真實的”(意味着我們沒有找到任何),但所有 N/A 都是在我們沒有使用該站時。

                          Survey Dates
|          | 1/1/2000 | 1/1/2002 | 1/1/2004 | 1/1/2006 |
|----------|----------|----------|----------|----------|
| Station1 | 9        | 5        | N/A      | N/A      |
| Station2 | 5        | 7        | 2        | 6        |
| Station3 | N/A      | N/A      | 6        | 9        |
| Station4 | 10       | 9        | 0        | 11       |

以 2000 年 1 月 1 日的調查為例,Oracle 表是這樣的

| SurveyID | StationID | Number |
|----------|-----------|--------|
| 1        | 1         | 9      |
| 1        | 2         | 5      |
| 1        | 4         | 6      |

那么,基本上如何保留零並將一些文本放入 CR 交叉表的空值中?

謝謝!

由於 CR 不區分交叉表中的空值和實際零值,您可以嘗試用占位符替換實際零值,以便您可以區分。 請注意,此解決方案僅在您嘗試顯示值而不進行任何聚合計算時才有效。

首先,創建一個公式,用占位符值替換零。 在這種情況下,我使用 -1,因為該數字永遠不會出現在數據庫中。

    //{@Survey Num}
    local numbervar totalSurvey;
    totalSurvey:={Table.ActiveBurrows} + {Table.InactiveBurrows};
    if totalSurvey=0 then -1 else totalSurvey

使用此公式創建交叉表。 現在您需要設置一個顯示字符串,以便所有內容都正確顯示。 右鍵單擊一個交叉表單元格→點擊“格式字段”→選擇“通用”選項卡→然后創建一個“顯示字符串”公式。 這個公式應該是這樣的:

if currentfieldvalue=-1 then "0" else if currentfieldvalue=0 then "N/A" else totext(currentfieldvalue,0,'')

現在您基本上只是在占位符頂部打印實際值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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