2016-02-16 235 views
0

我有一个用户输入的参数,它可以是1个值,直到它们输入的值有多少。现在,[i]在公式中,它是他们输入的数组的索引。我需要增加公式,以便它遍历每个参数,但不超过他们的参数。我尝试了硬编码索引[1]到[20],但如果输入的参数少于20个,我会得到一个错误。Incrementing Array Crystal Report

if TONUMBER({?Order #}[i]) = TONUMBER({V_ORD_COMB.ORDERNO}) 
    then TRUE 
    ELSE 

    FALSE 

也能正常工作1个输入值,但没有更多的

​​

也能正常工作3个的输入值,但没有少跌多

if TONUMBER({?Order #}[1]) = TONUMBER({V_ORD_COMB.ORDERNO}) 
    then TRUE 
    ELSE 
    if TONUMBER({?Order #}[2]) = TONUMBER({V_ORD_COMB.ORDERNO}) 
    then TRUE 
    ELSE 
    if TONUMBER({?Order #}[3]) = TONUMBER({V_ORD_COMB.ORDERNO}) 
    then TRUE 
    ELSE 
    FALSE 

我试图得到它适用于任何数量的输入参数。

回答

1

试试这个:

Local Numbervar i; 
Local Stringvar result:="not found"; 

for i:=1 To Ubound({?Order #}) do (
    if {?Order #}[i]={V_ORD_COMB.ORDERNO} then (
     result:="found"; 
     exit for 
    ); 
); 

result 
0

我改成了

Local Numbervar i; 
Local Booleanvar result:=False; 

for i:=1 To Ubound({?Order #}) do (
    if {?Order #}[i]={V_ORD_COMB.ORDERNO} then (
     result:= TRUE; 
     exit for 
    ); 
); 

result 

和它的伟大工程!我很感激帮助。