1

複数の値を受け入れる文字列パラメーターを含む Crystal Reports 2008 ファイルがあります。これをレコードの選択に使用する必要があります。私は一般的にあなたが次のようなことができることを知っています

{MyTable.MyField} In Join( {?MyParam}, "," )

しかし、より長いフィールド値に表示される可能性のある値をユーザーが入力する必要があります。つまり、部分文字列で入力する必要があります。私は試した

NumberVar index;
For index := 1 To UBound( {?MyParam} ) Do (
    {?MyParam}[index] In {MyTable.MyField}
)

エラーは発生しませんが、レコードの選択には何の影響もないようです (つまり、レポートには同じ数のレコードが表示されます)。

より具体的に言うとMyTable、3 つのレコードがあり、それぞれMyFieldテキストRed Blue GreenGreen Yellow Purpleおよびが含まれているとしRed Yellow Orangeます。このパラメーターを使用すると、ユーザーは値を入力して、最初と 3 番目のレコードまで絞り込むことができredますblue

4

1 に答える 1

0

重複する値について 2 つの配列を比較するカスタム数式を作成します。

//Array_Overlap
Function (Stringvar Array a0, Stringvar Array a1)

    Local Numbervar i;
    Local Numbervar j;
    Local Booleanvar found:=false;

    For i := 1 To Ubound(a0) Do (
        For j := 1 To Ubound(a1) Do (
            If a0[i]=a1[j] Then (
                found:=true;
                Exit For;
            )
        )
    );

    found;

レコード選択式 (RSF) で参照します。

// space delimited
AND Array_Overlap( Split({MyTable.MyField}, " "), {?MyParam} ) = TRUE
于 2012-09-21T14:46:38.750 に答える