Axapta:ユーザーが検索でフォームクエリを変更できないようにする

StackOverflow https://stackoverflow.com/questions/1615081

  •  06-07-2019
  •  | 
  •  

質問

ユーザーがProdRouteデータソースからOprIdを選択できるカスタムルックアップフォームをAxapta 3.0で作成しました。ルックアップを表示する前に、ProdIdが設定されており、ユーザーが変更することはできません。ユーザーは、有効なProdIdを持つ製造オーダのProdRouteからのみOprIdを選択できます。ドキュメントによると、範囲をロックすることにより、ユーザーがクエリを変更するのを防ぐことができます。私はこのようにしました:

qbrProdId.value(queryValue(_prodId));
qbrProdId.status(RangeStatus::Locked);

ここで、qbrProdIdは QueryBuildRange 型の変数であり、_prodIdは ProdId を指定します。

ルックアップが表示され、ユーザーがフィルターを変更しようとすると、ProdIdがロックされます。良い。ただし、ユーザーがルックアップのProdIdフィールドでCtrl + Fを押すか、ユーザーがツールバーの[検索]をクリックすると、別のProdIdを入力できます。

これを防ぐにはどうすればよいですか

ルックアップのグリッドのProdIdフィールドを「表示」タイプに変更することを考えました。データソースフィールドの代わりに。しかし、これに対するより良い解決策はありませんか?

(ところで、クエリは自動的には作成されませんが、フォームデータソースの" init"メソッドで手動で作成されます。)

役に立ちましたか?

解決

OK、task()メソッドをオーバーライドすることはできません。 これにより、ルックアップフォームのフィルター機能が無効になります。

public int task(int _taskId)
{
    int ret;

    switch(_taskId)
    {
        case 2855:
        case 2844:
        case 2837:
        case 799:
            return 0;
    }

    ret = super(_taskId);

    return ret;
}

他のヒント

範囲の代わりにダイナリンクを使用するだけです。

HTH

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top