[英]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.