Arrays Crystal Reports 2008中的数组操作-未显示正确的结果

Arrays Crystal Reports 2008中的数组操作-未显示正确的结果,arrays,vbscript,crystal-reports,crystal-reports-2008,formula-editor,Arrays,Vbscript,Crystal Reports,Crystal Reports 2008,Formula Editor,我对Crystal Reports(2天以前)非常陌生,我正在尝试循环使用字符串的数组,并检查特定值。如果该值存在,请修改该值 我是在记录选择公式中做这一切的。但代码的行为并不像预期的那样。请让我知道代码的问题:- Local numberVar i; For i := 1 to ubound({?Partner_Name}) Do ( IF {?Partner_Name}[i] = 'Lincoln - MN' Then {?Partner_Name}[i]

我对Crystal Reports(2天以前)非常陌生,我正在尝试循环使用
字符串的
数组
,并检查特定值。如果该值存在,请修改该值

我是在记录选择公式中做这一切的。但代码的行为并不像预期的那样。请让我知道代码的问题:-

Local numberVar i;

For i := 1 to ubound({?Partner_Name}) Do

(

     IF {?Partner_Name}[i] = 'Lincoln - MN' Then
          {?Partner_Name}[i] = 'Lincoln'
     Else If{?Partner_Name}[i] = 'LINCOLN - UT' Then
          {?Partner_Name}[i] = 'LINCOLN'
     Else
          {?Partner_Name}[i] = {?Partner_Name}[i]
);

{Command.PARTNER_NAME} = {?Partner_Name}
谢谢你的帮助。。提前感谢

这将“编译”:

Local Numbervar i;
// assign multi-select parameter to string array
Local Stringvar Array partners := {?Partner_Name};

For i := 1 To Ubound(partners) Do (
    Select partners[i]
    Case "Lincoln - MN": partners[i]:="Lincoln"
    Case "LINCOLN - UT": partners[i]:="LINCOLN"
);

// this line will raise an exception; you can't reassign the value
{?Partner_Name}:=partners;

// display the value
Join(partners, ", ");

...

这里有一个解决办法。。这不是经过测试的。而不是将值存储在参数字段中。尝试另一种方式

  • 创建一个选择了多个输入的参数
  • 然后创建一个数组并编写代码:
  • 3.现在,在选择公式中使用如下:

    {Command.PARTNER_NAME} IN a
    

    让我知道进展情况。

    您有什么错误吗?还是没有得到TPU?你的确切问题是什么?是specific@Siva-我没有获得所需的输出,它没有根据标准更改值。您不能将值重新分配给
    参数字段
    。此外,不能在
    参数字段上使用
    UBound()
    。你希望完成什么?哈,你比我快9秒(你的代码不起作用)。您不能以这种方式将值分配给
    参数字段
    ,也不能获取其
    ubound()
    @Siva-谢谢您的代码。但它给了我一个错误“The)is missing”。我确信所有的支架都是完整的。不确定错误是什么indicates@craig-如果不是这样,我们如何将值分配给参数字段?我能够正确地得到ubound(),我检查过了。这个答案仍然有很多错误。首先,
    Join()
    返回字符串,而不是数组。2.
    a
    变量是一个数组,但在for循环中赋值时将其视为字符串。3.您根本不需要
    b
    变量
    ubound()
    适用于多响应参数。
    {Command.PARTNER_NAME} IN a