Axaptaは:どのようにテーブル名ではなく表のIDは、データベースログレポートの選択]ダイアログでの選択として使用することができますか?
質問
現在のところ表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など)。
最後に、あなたがむしろレポートよりクラスを指すように、出力メニュー項目を変更します。
警告:!のコードがテストされていません。
所属していません StackOverflow