Crystal 报表函数中字符串数组的空值 - Crystal 语法

Null value of String Array in Function of Crystal Reports - Crystal Syntax

我正在尝试创建一个解析此结构字符串的函数:

4:20,5:30,8:40

最多包含 15 个以逗号分隔的值,但也可以包含少于 15 个值。

我首先使用 Split 方法拆分这些值,然后用这些拆分值创建一个数组。 然后我有一个 for 循环,我在其中再次拆分值,这次使用“:”作为分隔符。

但在使用第二次拆分之前,我想检查字符串是否为空。 我怎样才能做到这一点?如果我分配给它的数组变量大于它将 return 的值,Split 会做什么? 它是否用空白字符串、空值填充它?

我试过的

我尝试检查空字符串 ("")、空白 space (" ") 并使用 IsNull。 前两个选项不起作用(函数 return 什么都没有,就好像它总是假的一样),最后一个选项给我一个错误,好像我不能使用那个方法来检查那个字符串变量。

我的代码

Function (StringVar Detalle)
    
    local NumberVar DetalleSplitLength;
    local NumberVar i := 1;

    local StringVar TipoMoneda;
    local StringVar Result;
    local StringVar array DetalleSplit;
    local StringVar array TipoMonedaSplit;

    local BooleanVar First := True;

    If Detalle <> "" Then
    (

        DetalleSplit := Split(Detalle, ',');
        DetalleSplitLength := 15;
        Redim Preserve DetalleSplit [DetalleSplitLength];

        for i := 1 to DetalleSplitLength do
        (
            ' This is the conditional that fails to do what I need.
            If (DetalleSplit[i] <> "") Then
            (
                
                TipoMonedaSplit := Split(DetalleSplit[i], ':');
            
                If TipoMonedaSplit[2] <> "0" And Result <> "" Then
                (
                    ' Here I parse the result.
                );
    
             );           

        )
    );

    Result

我正在使用 Crystal 语法。 我用“'”添加了注释,以便它们的颜色格式正确。


@mweber 指出,这是我在内部条件中的错误。与空串比较正确

这是工作代码:

(稍后编辑补充)


我想你对非空值的测试确实工作正常,但内部块之前的条件不正确:

If TipoMonedaSplit[2] <> "0" And Result <> "" Then
(
  ' Here I parse the result.
);

部分 A​​nd Result <> "" 阻止您的函数进入您要解析结果的块,因为 Result 之前未初始化。