Показать сообщение отдельно
Старый 04.05.2007, 14:47   #1  
ek_Pendulum is offline
ek_Pendulum
Участник
 
25 / 10 (1) +
Регистрация: 27.04.2007
:( И опять временные таблицы
Уважаемые, я все перерыл, все (ВРОДЕ БЫ) делаю правильно...
  1. Создал временную таблицу TmpMyTable
  2. Указал Yes в своистве Temporary
  3. Поместил в датасурс репорта эту временную таблицу и переименовал датасурс в TmpMyTableDS (запрос формируется в классе наследнике RunBaseReport)
  4. В методе 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

Уже полдня и так- и сяк пробую - ничего не выходит (

Последний раз редактировалось ek_Pendulum; 04.05.2007 в 14:49.