0

ボタン コントロールの可視性を変更するにはどうすればよいMyButtonですか?

ボタン コントロールMyFormの可視性プロパティを設定するフォームがあります。MyButtonフォームのinitメソッドでこのコードを使用しました:

public void init()
{
    MyTable myTable;
    ;

    while select myTable where myTable.UserId == curUserId()
    {
        if (myTable.FlagField == NoYes::Yes )
        {
            myButton.visible(true);
        }
        if (!myTable.FlagField == NoYes::No )
        {
            myButton.visible(false);
        }
    }

    super();
}

のプロパティAutoDeclarationMyButtonに設定されていYesます。しかし、フォームを開くと、次のエラーが表示されます。

「FormButtonControl オブジェクトの初期化に失敗しました。」

FormButtonControl クラスを使用する必要があると思いますが、その方法がわかりません。

4

2 に答える 2

2

mineTableFH-Inway の回答はコードの観点からは正しいですが、一致するレコードが 1 つしかない場合を除き、あなたが行っていることは正しくなく、適切に機能しないことにコメントしたいと思います。

現在書かれているように、フォームがインスタンス化されると、基本的にループして、レコードごとに表示と非表示を何度mineTableも切り替えると、フォームが表示され、最後のレコードがたまたま何であれ.myButtonwhere mineTable.UserId == curUserId()

while select [table] where [clause] {[code]}それがとの違いselect [table] where [clause];です。

そのテーブルにレコードが 1 つしかない場合は、次のように変更する必要があります。

MineTable mineTable;

super();

select firstonly mineTable where mineTable.UserId == curUserId();
if (mineTable)
{
    if (mineTable.FlagField== NoYes::Yes )
    {
        myButton.visible(true);
    }
    if(!mineTable.FlagField== NoYes::No )
    {
        myButton.visible(false);
    }
}
else
{
    throw error("Record not found or whatever your error should be");
}
于 2015-04-30T17:34:23.703 に答える