Аксапта:Как можно использовать имя таблицы, а не идентификатор таблицы, в качестве параметра выбора в диалоговом окне выбора отчета журнала базы данных?

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

  •  21-09-2019
  •  | 
  •  

Вопрос

В настоящее время можно использовать только идентификатор таблицы, что бессмысленно, поскольку это число.Небольшой пример кода действительно был бы замечательным.

Это было полезно?

Решение

Создайте новый RunBaseReport класс и не забудьте назвать SysDatabaseLog отчет в lastValueElementName способ.

Запросите название таблицы в dialog способ;используйте TableName расширенный тип данных для включения поиска.

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

Обновите диапазон идентификаторов таблицы для queryRun.query() в getFromDialog метод после вызова super().Используйте tableName2Id функция для преобразования в идентификатор таблицы.

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

В validate метод, подтвердите, что имя таблицы является допустимым (идентификатор таблицы не 0, таблица не temp и т.д.).

Наконец, вы меняете пункт меню "Вывод" так, чтобы он указывал на класс, а не на отчет.

Предупреждение:код не был протестирован!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top