ユーザーがProdRouteデータソースからOprIdを選択できるカスタムルックアップフォームをAxapta3.0で作成しました。ルックアップを表示する前に、ProdIdが設定されており、ユーザーが変更することはできません。ユーザーは、有効なProdIdを持つ製造指図のProdRouteからのみOprIdを選択できます。ドキュメントによると、範囲をロックすることで、ユーザーがクエリを変更できないようにすることができます。私はこのようにしました:
qbrProdId.value(queryValue(_prodId));
qbrProdId.status(RangeStatus::Locked);
ここで、qbrProdIdはQueryBuildRange型の変数であり、_prodIdはProdIdを指定します。
ルックアップが表示され、ユーザーがフィルターを変更しようとすると、ProdIdがロックされます。良い。ただし、ユーザーがルックアップのProdIdフィールドでCtrl + Fを押した場合、またはユーザーがツールバーの[検索]をクリックした場合は、別のProdIdを入力できます。
どうすればこれを防ぐことができますか?
ルックアップのグリッドのProdIdフィールドを、データソースフィールドではなく「表示」タイプに変更することを考えました。しかし、これに対するより良い解決策はありませんか?
(ちなみに、クエリは自動的に作成されるのではなく、フォームデータソースの「init」メソッドで手動で作成されます)。