0

Java ライブラリを介して Crystal Reports を呼び出す Java アプリケーションがあります。レポートの 1 つは、そのレコード セレクターに次の句があります。

and ({DriverMotionView.GROUPID} = {?GroupID1Parameter}
or {DriverMotionView.GROUPID} = {?GroupID2Parameter}
or {DriverMotionView.GROUPID} = {?GroupID3Parameter}
or {DriverMotionView.GROUPID} = {?GroupID4Parameter}
or {DriverMotionView.GROUPID} = {?GroupID5Parameter}
or {DriverMotionView.GROUPID} = {?GroupID6Parameter}
or {DriverMotionView.GROUPID} = {?GroupID7Parameter}
or {DriverMotionView.GROUPID} = {?GroupID8Parameter}
or {DriverMotionView.GROUPID} = {?GroupID9Parameter}
or {DriverMotionView.GROUPID} = {?GroupID10Parameter}
)

各 GroupIDnParameter は整数の groupID であり、UI のツリー構造からグループ名を選択して作成されます。UI はこれらをグループ ID に変換し、レポートに渡します。現在、このレコード セレクターは機能しますが、選択するグループの数は 10 に制限されています。

この制限をなくしたいと思います。考えられる解決策の構文を確認するために、最初に次のことを試しました

and {DriverMotionView.GROUPID} in [-1, 1618, 1608, 1610, -1]

これにより、実際に groupID 1618、1608、および 1610 のレコードが選択されます。

それで、私は次のようなことを試しました

and {DriverMotionView.GROUPID} in {?GroupIDListParameter}

ここで、GroupIDListParameter は文字列 [-1, 1618, 1608, 1610, -1] として渡されます。これにより、Crystal Reports のランタイム エラーが発生します。

私は試した

and {DriverMotionView.GROUPID} in [{?GroupIDListParameter}] 

しかし、その句は構文的に正しくなく、構文チェックで「配列を添字にする必要があります」というエラーが発生します。

この問題を解決する別の方法がある可能性がありますが、オンライン ヘルプ、ユーザー ガイド、または Google 検索を読んでも見つけることができませんでした。

任意の提案をいただければ幸いです。

4

3 に答える 3

0

{?GroupIDListParameter} は、値を囲む角かっこ ([ ]) を含む文字列として渡されるとおっしゃいました。あなたはそれをコードで入力しましたか?そこにブラケットを取得するために何をしていても、それらを削除してから、{?GroupIDListParameter} に配置されている数字のコンマ区切り文字列だけでこれを試します。

{DriverMotionView.GROUPID} in split({?GroupIDListParmeter},",")
于 2013-05-09T00:27:45.113 に答える