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范围。使用tableName2Id
函数将转换为表ID。
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,表中未温度等)。
最后更改输出菜单项指向类,而不是报告。
警告:代码尚未测试
不隶属于 StackOverflow