Axapta:如何在“数据库日志报告”的“选择”对话框中将“表名”而不是“表ID”用作选择?

时间:2009-09-02 07:51:10

标签: x++ axapta

目前只能使用表ID,因为它是一个数字,这是没有意义的。一些代码示例真的很棒。

1 个答案:

答案 0 :(得分:3)

创建一个新的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,表不是临时等)。

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

警告:代码尚未经过测试!