2

我对水晶很陌生。我有一个名为 {?names} 的参数,它允许多个值在数据库中搜索所有这些名称或类似名称。我想检查数组的每个值是否有“,”以防有人写"last name, first name"。如果它确实包含“,”,那么我想在“,”处拆分它,然后创建一个新数组,其中所有值都是数组中它们自己的值。像这样:

    {?names} = ["hank", "jerry", "smith, john", "peterson"]

如何检查数组的每个值是否有“,”,如果找到,将其拆分并将其分成新数组中的两个不同值?像这样:

    new {?names} = ["hank", "jerry", "smith", "john", "peterson"]

对不起,如果这是一个菜鸟问题,但我有点菜鸟。谢谢你的帮助!

4

1 回答 1

3

创建公式字段:

//{@names}
Stringvar Array names := Split( Join({?Names},","), "," );

// test the results or do whatever
Join(names, ":")

但是,这种方法不会删除空格。例如,“smith, john”将产生“smith”、“john”。

这很重要,请尝试以下方法:

Stringvar Array names:= Split(Join({?Names},","),",");

Stringvar Array output;
Redim output[ubound(names)];

Local Numbervar i;

for i:=1 to ubound(names) do (

    output[i] := trim(names[i]);

);

Join(output,":")
于 2012-04-26T15:46:29.803 回答