动态列结构

时间:2016-07-26 06:43:01

标签: crystal-reports

我的数据库中有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)}

如果将来更改列结构,我想捕获异常。

2 个答案:

答案 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}
\\ ...