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范围。使用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,表中未温度等)。

最后更改输出菜单项指向类,而不是报告。

警告:代码尚未测试

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top