Уважаемые, я все перерыл, все (ВРОДЕ БЫ) делаю правильно...
- Создал временную таблицу TmpMyTable
- Указал Yes в своистве Temporary
- Поместил в датасурс репорта эту временную таблицу и переименовал датасурс в TmpMyTableDS (запрос формируется в классе наследнике RunBaseReport)
- В методе Run заполняю ее (предварительно в Class Declarations объявил TmpMyTable _tmp)
X++:
public void run()
{
Query q;
QueryRun qr;
RAssetTable _table;
RAssetLending _lending;
;
q = this.query();
qr = new QueryRun(q);
while (qr.next())
{
_table = qr.get(tablename2id("RAssetTable"));
_lending = qr.get(tablename2id("RAssetLending"));
_tmp.AssetGroup = _table.AssetGroup;
_tmp.AssetId = _lending.assetId;
_tmp.AssetLendDate = _lending.AssetLendDate;
_tmp.AssetLocation = _lending.AssetLocationId;
_tmp.ContractACcount = _lending.ContractACcount;
_tmp.LendEmployee = _lending.AssetLendEmployee;
_tmp.insert();
}
super();
}
проверял с помощью дебаггера и, убрав св-во Temporary, обозревателем таблицы - ВСЕ ЗАПОЛНЯЕТСЯ КАК НАДО.
5. Далее в методе Init добавляю
X++:
TmpMyTableDS.setTmpData(_tmp);
6. Перекрываю Prompt
X++:
public boolean prompt(boolean _enableCopy=TRUE, boolean _enablePages=TRUE, boolean _enableDevice=TRUE, boolean _enableProperties=TRUE, boolean _enablePrintTo=TRUE)
{
boolean ret;
ret = super(_enableCopy, _enablePages, _enableDevice, _enableProperties, _enablePrintTo);
this.queryRun().setCursor(_tmp);
return ret;
}
Запускаю вывод отчета - ругается
Ошибка времени выполнения. : Неправильный тип аргумента функции.
Трассировка стека:
(C) \Classes\QueryRun\setCursor
Уже полдня и так- и сяк пробую - ничего не выходит (