我的数据库中有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)
就像这样:
numbervar s:=0;
if {Command_1.emp_number} = 1 then
s = 3
else
s = 4;
希望它有助于您的指导......
答案 1 :(得分: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}
\\ ...