私の要件は、複数の従業員の従業員詳細レポートを生成することです。クエリのパラメータは、従業員番号と日付範囲になります。
これは私が使用しているレコード選択式です
{EMP_LEAVE_REPORT_VIEW.LEAVE_START_DATE} in {?sDate} to {?eDate}
and
(
Stringvar Array strings := Split({?empNoList}, "_");
Numbervar Array numbers;
Redim numbers[Ubound(strings)];
Numbervar i;
for i := 1 to Ubound(strings) do (
numbers[i] := ToNumber(strings[i]);
if {EMP_LEAVE_REPORT_VIEW.EMP_NO} = numbers[i] then
(true;)
else
(false;)
);
)
まず、日付を確認しています。次に、従業員リストを1つの文字列{?empNoList}として取得します(例:5162_5468_5896_5236)。区切り文字として「_」を使用して文字列を分割し、それらの値を数値配列に再度割り当て、その値を使用してフィルタリングします。従業員。
しかし、この式は機能しません。すべての従業員の詳細がわかります。これは文字列配列を変換する方法の問題ですか、それともコードのforループに何か問題がありますか?
このコードを使用して、{?empNoList}に1人の従業員番号を割り当ててみましたが、うまくいきました。
if (ToNumber({?empNoList}) = {EMP_LEAVE_REPORT_VIEW.EMP_NO}) then true else false
これを手伝ってください。よろしくお願いします!