3

特定のリストページで F5 の更新を無効にしたいのですが、更新アクション キーを無効にしましたが、F5 は引き続き機能します。リストページであるため、SysSetupFormRun の Task メソッドをオーバーライドできません。これを行う方法はありますか?

これを行う理由は、複数のデータソースがある場合に更新の問題が発生し、マイクロソフトが解決策を提供するまで顧客に対してそれを無効にしたいためです (問題は既にログに記録されています)。

編集: 修正として、SysSetupFormRun クラスの task メソッドをインターセプトしましたが、このメソッドは、リストページでレコードを選択した場合にのみトリガーされます。リストページを最初に開いてすぐに F5 を押すと、更新され、タスクメソッドには入りません。

4

1 に答える 1

4

taskの上書きに成功しなかったとおっしゃっていましSysSetupFormRunたが、以下のコードは私たちのテストシステムでうまくいきました。

taskこのコードをクラスのメソッドに挿入して、SysSetupFormRunF5 を無効にしましたSalesTableListPage

public int task(int _p1)
{
    #task
    FormDataSource formDataSource;

    int ret;

    if (_p1 == #taskFilter)
    {
        formDataSource = this.objectSet();
        if (formDataSource &&
            formDataSource.queryRun() &&
            formDataSource.queryRun().args() &&
            !formDataSource.queryRun().args().caller())
        {
            formDataSource.queryRun().args().caller(this);
        }
    }

    // -- Here is the interesting stuff
    if ((_p1 == #taskF5 || _p1 == #taskRefresh) && 
        (this.name() == formStr(SalesTableListPage)))
    {
        return ret;
    }
    return super(_p1);
}

アプローチが既に試したものと同じである場合は、この回答を無視してかまいません。それ以外の場合は、お気軽に試してみてください ;)

于 2013-09-05T11:07:00.700 に答える