|
|
#1 |
|
Участник
|
Уважаемые, я все перерыл, все (ВРОДЕ БЫ) делаю правильно...
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(); } 5. Далее в методе Init добавляю X++: TmpMyTableDS.setTmpData(_tmp); 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. |
|
|
|
|
#2 |
|
Участник
|
А если убрать код из prompt() и добавть код в fetch:
X++: public boolean fetch() { boolean ret; ; this.queryRun().setRecord(_tmp); ret = super(); return ret; } |
|
|
|
|
#3 |
|
Участник
|
kashperuk, сделал так и снова :
Ошибка времени выполнения. : <пустой класс> Объект не инициализирован. Трассировка стека : (C) \Classes\<unknown>\setRecord (C) \Reports\Report1\Methods\fetch - line 5 (C) \Classes\ReportRun\run (C) \Reports\Report1\Methods\run - line 25 (C) \Classes\SysReportRun\run - line 16 (C) \Classes\RunBaseReport\run - line 32 (C) \Classes\MyReportDialog\main - line 7 Последний раз редактировалось ek_Pendulum; 04.05.2007 в 15:12. |
|
|
|
|
#4 |
|
NavAx
|
Попробуйте так:
1. в классе создайте метод TmpMyTable generateTmpMyTable(), который заполняет и возвращает таблицу. 2. перепишите init отчета: X++: public void init() { MyReportDialog caller; ; super(); caller = element.args().caller(); if (!caller) { throw error(Error::missingRecord(funcName())); } this.queryRun().setRecord(caller.generateTmpMyTable()); } 4. датасорсу можно вернуть нормальное имя TmpMyTable 5. Перестаньте ставить занак "_" перед именем переменных. Этот знак используется чтобы отличать параметры метода. К примеру:X++: static CustTable find(CustAccount _custAccount, boolean _forUpdate = false)
__________________
Isn't it nice when things just work? |
|
|
|
|
#5 |
|
Участник
|
Пишите сразу в TmpMyTableDS. Зачем городить огород?
|
|
|
|
|
#6 |
|
Участник
|
2 macklakov сделал все по вашему совету - итог один (но вылетает уже в дебаггере):
Ошибка времени выполнения. : <пустой класс> Объект не инициализирован. Трассировка стека : (C) \Classes\<unknown>\setRecord (C) \Reports\Report1\Methods\Init - line 15 (C) \Classes\ReportRun\run (C) \Reports\Report1\Methods\run - line 26 (C) \Classes\SysReportRun\run - line 16 (C) \Classes\RunBaseReport\run - line 32 (C) \Classes\MyReportDialog\main - line 7 |
|
|
|
|
#7 |
|
Участник
|
по тем сообщениям об ошибках, которые вы получаете, вывод можно сделать только один.
У вас нет запроса. Соответственно не формируется queryRun А вы в первом посте написали, что запрос есть (источник добавлен в узел DataSources отчета) Соответственно, ищите где вы ошиблись |
|
|
|
|
#8 |
|
Участник
|
Ну да...в источнике отчета лежит временная таблица, которую я пытаюсь заполнять (и она вроде как заполняется , так как в дебагере я вижу сменяющиеся RecId'ы этой таблицы). если в коде ошибок нет, то у меня руки опускаются ((
Вот заполнение временной таблицы как советовал macklakov (уже в классе): X++: TmpMyTable generateTmpTable()
{
Query q;
QueryRun qr;
RAssetTable _table;
RAssetLending _lending;
TmpMyTable tmpTable;
;
q = this.initQuery();
qr = new QueryRun(q);
while (qr.next())
{
_table = qr.get(tablename2id("RAssetTable"));
_lending = qr.get(tablename2id("RAssetLending"));
tmpTable.AssetGroup = _table.AssetGroup;
tmpTable.AssetId = _lending.assetId;
tmpTable.AssetLendDate = _lending.AssetLendDate;
tmpTable.AssetLocation = _lending.AssetLocationId;
tmpTable.ContractACcount = _lending.ContractACcount;
tmpTable.LendEmployee = _lending.AssetLendEmployee;
tmpTable.insert();
}
Return tmpTable;
}X++: protected Query initQuery() { Query query; QueryBuildDataSource qAssetLending; QueryBuildDataSource qAssetTable; ; query = new Query(); // qAssetLending=query.addDataSource(TableNum(RAssetLending), "RAssetLending"); qAssetLending.addSelectionField(FieldNum(RAssetLending, AssetLendEmployee)); qAssetLending.addSelectionField(FieldNum(RAssetLending, ContractCode)); qAssetLending.addSelectionField(FieldNum(RAssetLending, ContractACcount)); qAssetLending.addSelectionField(FieldNum(RAssetLending, AssetId)); qAssetLending.addSelectionField(FieldNum(RAssetLending, AssetLendDate)); qAssetLending.addSelectionField(FieldNum(RAssetLending, AssetLocationId)); qAssetLending.addSelectionField(FieldNum(RAssetLending, PropertyPart)); qAssetLending.addSortField(FieldNum(RAssetLending, AssetLendEmployee)); qAssetTable=qAssetLending.addDataSource(TableNum(RAssetTable), "RAssetTable"); qAssetTable.addSelectionField(FieldNum(RAssetTable, Name)); qAssetTable.addSelectionField(FieldNum(RAssetTable, AssetGroup)); qAssetTable.joinMode(JoinMode::InnerJoin); qAssetTable.fetchMode(0); qAssetTable.addLink(FieldNum(RAssetLending, AssetId), FieldNum(RAssetTable, AccountNum)); return query; } Последний раз редактировалось ek_Pendulum; 04.05.2007 в 15:57. |
|
|
|
|
#9 |
|
SAP
|
Цитата:
если в коде ошибок нет, то у меня руки опускаются ((
|
|
|
|
|
#10 |
|
Участник
|
Цитата:
Цитата:
|
|
|
|
|
#11 |
|
NavAx
|
Значит где-то что-то сломано. "Чистый" наследник от RunBaseReport и "чистый" отчет должны отрабатывать. Как у вас вызывается отчет? Должен вызываться автоматически, через lastValueElementName
__________________
Isn't it nice when things just work? |
|
|
|
|
#12 |
|
Участник
|
Так и вызывается
X++: identifiername lastValueElementName()
{
return reportStr(Report1);
} |
|
|
|
|
#13 |
|
Злыдни
|
Первым делом залезьте в использование данных. Удалите настройки класса, которым пользуетесь. Попробуйте вызвать вновь. Половина ошибок с трассировкой возникает из-за того, что в SysLastValue прописывается чушь
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
|
|
|
#14 |
|
Участник
|
Цитата:
|
|
|
|
|
#15 |
|
NavAx
|
Остается проект выкладывать на всеобщее ковыряние
__________________
Isn't it nice when things just work? |
|
|
|
|
#16 |
|
Участник
|
Пожалуйста ...
Последний раз редактировалось ek_Pendulum; 04.05.2007 в 16:45. |
|
|
|
|
#17 |
|
SAP
|
Не знаю у меня получилось передать курсор вот таким макаром.
X++: public boolean fetch() { boolean ret; TmpInventTableModule tmpInventTableModuleLocal; Counter i; QueryRun queryRuner = new QueryRun(element.query()); ; for (i = 0; i < 10; i++) { tmpInventTableModuleLocal.ItemId = int2str(i); tmpInventTableModuleLocal.insert(); } queryRuner.setCursor(tmpInventTableModuleLocal); while (queryRuner.next()) { tmpInventTableModuleLocal = queryRuner.get(tablenum(TmpInventTableModule)); info(tmpInventTableModuleLocal.ItemId); element.send(tmpInventTableModuleLocal); } return ret; } |
|
|
|
|
#18 |
|
NavAx
|
Вам в школе не говорили, что copy/paste это очень-очень плохо?
У вас отчет вовсе не по TmpAssetLending_RU и фильтры в классе на другие таблицы накладываются
__________________
Isn't it nice when things just work? |
|
|
|
|
#19 |
|
Участник
|
Цитата:
там два отчета..тот что не Copy.. - он используется, но где вы увидели,что он не по временной таблице...а фильтры накладываются на запрос вроде...что мне делать, я щас свихнусь ![]() Дополню : во временную таблицу я складываю уже отобранные фильтром записи, дабы потом группировку сделать необходимую Последний раз редактировалось ek_Pendulum; 04.05.2007 в 17:12. |
|
|
|
|
#20 |
|
NavAx
|
1. читать документацию
2. переписать все вручную и вдумчиво
__________________
Isn't it nice when things just work? |
|
|
|
|
Похожие темы
|
||||
| Тема | Ответов | |||
| И снова Query и временные таблицы | 19 | |||
| Временные таблицы в отчете | 25 | |||
| Временные таблицы | 6 | |||
| Временные таблицы | 3 | |||
| Временные таблицы в запросе | 4 | |||
|