02.02.2010, 20:32 | #1 |
Участник
|
Report InventJournalTrans
Предистория.
Есть репорт InventJournalTrans, у которого уже был перекрыт fetch. в нем выполняется query: X++: while (qr.next()) { ..... this.send(lInventDim, 2, false,false); this.send(lInventJournalTrans, 1, true, false); } Обратите внимание на красные квадраты. Понадобилось сделать сортировку особым образом, для этого мне пришлось использовать временную таблицу, и код вида: X++: while (qr.next()) { ..... this.send(lInventDim, 2, false,false); this.send(lInventJournalTrans, 1, true, false); } X++: while (qr.next()) { ..... tmpInventJourTrans.clear(); tmpInventJourTrans.ContInventDim = [lInventDim]; tmpInventJourTrans.ContInventJourTrans = [lInventJournalTrans]; } X++: while select _tmpInventJourTrans order by xxx { cont = _tmpInventJourTrans.ContInventJourTrans; lInventJournalTrans = conpeek(cont, 1); cont = _tmpInventJourTrans.ContInventDim; lInventDim = conpeek(cont, 1); this.send(lInventDim, 2, false,false); this.send(lInventJournalTrans, 1, true, false); } Результат работы после модификаций см 222.bpm Кто нибудь сталкивался? Целый день бьюсь, у меня идей просто нет... Спасибо. |
|
03.02.2010, 07:25 | #2 |
Участник
|
Поля(Красные квадраты) показанные на рисунке 111, в дизайне отчета их нет. В шаблоне отчета, их тоже нет. Откуда изначально они берутся не понятно.
|
|
03.02.2010, 08:47 | #3 |
Участник
|
Последний раз редактировалось S.Kuskov; 03.02.2010 в 08:51. |
|
|
За это сообщение автора поблагодарили: Proba (1). |
03.02.2010, 11:46 | #4 |
Участник
|
Большое спасибо за интерестные ссылки.
Попробовал, изменил класс,как описано по ссылке. Ни чего не изменилось. Смотрю дебагер в классе в методе header, класс SysReportRun не проходит условие: X++: ... if (!this.hasGeneratedDesign() && // if auto design _headerSection && // and in active header section _headerSection.sectionType() == ReportBlockType::Header && _fieldId) { .... Тут пришел на помощь научный тык. И код вида X++: while select _tmpInventJourTrans order by xxx { cont = _tmpInventJourTrans.ContInventJourTrans; lInventJournalTrans = conpeek(cont, 1); cont = _tmpInventJourTrans.ContInventDim; lInventDim = conpeek(cont, 1); this.send(lInventDim, 2, false,false); this.send(lInventJournalTrans, 1, true, false); } X++: while select _tmpTable { contDim = _tmpTable.ContInventDim; contTrans = _tmpTable.ContInventJourTrans; lInventDim = conpeek(contDim, 1); lInventJournalTrans = conpeek(contTrans, 1); select InventJournalTrans where InventJournalTrans.JournalId == lInventJournalTrans.JournalId && InventJournalTrans.LineNum == lInventJournalTrans.LineNum; this.send(lInventDim, 2, false, false); this.send(InventJournalTrans, 1, true, false); } Вот! Еще раз спасибо! |
|