Axaptaは:どのようにテーブル名ではなく表のIDは、データベースログレポートの選択]ダイアログでの選択として使用することができますか?

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

  •  21-09-2019
  •  | 
  •  

質問

現在のところ表Idは、それが数であるように無意味である使用することができます。コード例の少しは本当に素晴らしいことだ。

役に立ちましたか?

解決

新しいRunBaseReportクラスを作成し、SysDatabaseLog方法でlastValueElementNameレポートに名前を覚えています。

dialog方法でテーブル名をプロンプト。ルックアップを有効にするTableName拡張データ型を使用します。

Object dialog() 
{
    DialogRunbase dlg = super();
    ;
    dialogTableName = dlg.addFieldValue(typeId(TableName),tableId2Name(tableId));      
    return dlg;  
}

queryRun.query()を呼び出した後getFromDialog方法においてsuper()のテーブルIDの範囲を更新します。テーブルIDに変換するためにtableName2Id機能を使用します。

boolean getFromDialog()
{
    boolean ret = super();
    ;
    tableId = tableName2Id(dialogTableName.value());
    this.queryrun().dataSourceNo(1).findRange(fieldNum(SysDatabaseLog,Table)).value(queryValue(tableId));
    return ret;
}

validate方法において、そのテーブル名が有効である検証(テーブルIDではない0、テーブルないTEMPなど)。

最後に、あなたがむしろレポートよりクラスを指すように、出力メニュー項目を変更します。

警告:!のコードがテストされていません。

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