2016-12-16 26 views
0

大家早上好, 我正在嘗試爲我在Crystal中編寫的報表創建一個公式,該公式按照遞增的順序將年度家庭收入按增量分組。到目前爲止,我已經遵循了我認爲是適當的「如果 - 然後」模式。但是,我收到一條錯誤消息:「剩餘的文本看起來不是公式的一部分。」 下面是代碼內容: crAscendingOrder if{ss_client_data_set.income}< 10001 then "$0 to $10,000" if{ss_client_data_set.income}< 20001.00 then "$10,001 to $20,000" if{ss_client_data_set.income}< 30001.00 then "$20,001 to $30,000" if{ss_client_data_set.income}< 40001.00 then "$30,001 to $40,000" if{ss_client_data_set.income}< 50001.00 then "$40,001 to $50,000" if{ss_client_data_set.income}< 60001.00 then "$50,001 to $60,000" if{ss_client_data_set.income}< 70001.00 then "$60,001 to $70,000" if{ss_client_data_set.income}< 80001.00 then "$70,001 to $80,000" if{ss_client_data_set.income}< 90001.00 then "$80,001 to $90,000" if{ss_client_data_set.income}< 100001.00 then "$90,001 to $100,000" if{ss_client_data_set.income}< 110001.00 then "$100,001 to $110,000" if{ss_client_data_set.income}< 120001.00 then "$110,001 to $120,000" if{ss_client_data_set.income}< 130001.00 then "$130,000 and over"創建公式以在Crystal Reports中以升序顯示團體收入

錯誤檢查器只會突出顯示最後12行代碼。我有點生疏,所以如果有人有任何建議,我會非常感激。

謝謝

回答

0

您需要inclue else字符串後

if{ss_client_data_set.income}< 10001 then "$0 to $10,000" else 
if{ss_client_data_set.income}< 20001.00 then "$10,001 to $20,000" else 
if{ss_client_data_set.income}< 30001.00 then "$20,001 to $30,000" else 
if{ss_client_data_set.income}< 40001.00 then "$30,001 to $40,000" else 
if{ss_client_data_set.income}< 50001.00 then "$40,001 to $50,000" else 
if{ss_client_data_set.income}< 60001.00 then "$50,001 to $60,000" else 
if{ss_client_data_set.income}< 70001.00 then "$60,001 to $70,000" else 
if{ss_client_data_set.income}< 80001.00 then "$70,001 to $80,000" else 
if{ss_client_data_set.income}< 90001.00 then "$80,001 to $90,000" else 
if{ss_client_data_set.income}< 100001.00 then "$90,001 to $100,000" else 
if{ss_client_data_set.income}< 110001.00 then "$100,001 to $110,000" else 
if{ss_client_data_set.income}< 120001.00 then "$110,001 to $120,000" else 
if{ss_client_data_set.income}< 130001.00 then "$130,000 and over" 

你也可以使用一個case語句來清理了一下:

Select {ss_client_data_set.income} 
Case is < 10001: "$0 to $10,000" 
Case is < 20001.00: $10,001 to $20,000" 
etc... 
etc... 
default: "doesn't fall within range" 
; 
+0

我真的很感謝您的回覆,賈斯汀。我添加了「其他」語句,然後又出現了另一個問題,不是爲了減少你的迴應。該錯誤現在顯示爲「此處需要字符串」,在第一行的「then」之前突出顯示「10001.00」。我認爲對於其餘的那些類似的價值來說它是一樣的。但我不希望它是一個它認爲的字符串。我需要它是一個數值。任何想法可能是錯誤的? – Galidari

+0

{ss_client_data_set.income}是數據庫中的數值嗎?我正在測試公式,當我使用字符串作爲值時,我得到了同樣的錯誤。但是,當我使用一個整數公式工作得很好。如果它實際上是一個字符串,請嘗試使用ToNumber函數將其轉換爲數字。所以....「如果ToNumber({ss_client_data_set.income})<10001然後......」 –

+0

讓我插入比嘗試。我不認爲最初轉換這些數據的人做得非常好。切線的類型,但如果僅僅從升序排序來看它,實際上由於沿着基本數字結構的位置而在某些情況下將較高的值放低,然後從屬於小數規則。這很奇怪。我沒有看到過任何喜歡它的東西。 – Galidari