2016-07-26 66 views
1

我在我的數據庫中有3列:COL1,COL2和COL3。我希望把它們放在我的報告,但動態的,如:動態列結構

IF i = 3 THEN COL3 
ELSE IF i = 2 THEN COL2 
ELSE IF i = 1 THEN COL1 

所以結構取決於條件。所以有可能有類似以下的東西?

stringvar test:= COL; 
numbervar i = 3; 
{test + toText(i)} 

我想捕捉異常,如果列結構在未來發生變化。

+0

在公式中使用它.. –

回答

0

That's not exactly something Crystal Reports is well equipped for。沒有好的方法來使用字符串來確定不使用if-else結構的情況下抓取哪個字段。

但是,如果將來添加了COL4,那麼您仍然必須進入並更改報告,以便numbervar可以設置爲4. Crystal沒有好的方法來預測可能存在或不存在的列。因此,記住if-else語句是確定要抓取哪一列的最佳方法。雖然節省的複製粘貼一點點的時間,你可以編寫代碼的新線路的意見和激活他們在適當的時候對時間的:

IF i = 1 THEN {table.COL1} 
ELSE IF i = 2 {table.COL2} 
ELSE IF i = 3 {table.COL3} 
\\ ELSE IF i = 4 {table.COL4} 
\\ ELSE IF i = 5 {table.COL5} 
\\ ... 
+1

那是我把它第二個想法像這樣,如果水晶不支持其他方式 – Simon

+0

是的,你會認爲這將是一個支持的功能。 Crystal已經有很長時間了,需要支持很多遺留代碼。良好的面向對象實踐當時並不是那麼重要。 – 4444

0

就像這樣:

numbervar s:=0; 
if {Command_1.emp_number} = 1 then 

    s = 3 
else 

    s = 4; 

希望它可以幫助作爲指導..