|
![]() |
#1 |
Участник
|
Стандартное назначение метода fetch - это вывод данных запроса в отчёт. Т.е. если метод fetch не перекрывать, то в отчёт автоматически выведуться все строки запроса. Если нужно управлять выводом данных (например заблокировать вывод некоторых строк), то нужно перекрыть метод fetch и организовать самостоятельный обход запроса и вручную посылать нужные строки запроса в отчёт. Делается это при помощи методов element.send() или element.execute, в зависимости от используемых вами типов секций отчёта
|
|
![]() |
#2 |
Участник
|
эта мне нужно писать select в цикле с условием
и отправлять qr = new QueryRun(queryRun.query()); while (qr.next()) { portJournal = qr.get(tableNum(FlxPortJournal)); if (portJournal.FlxNumPassengersTotalArrival == !0 && portJournal.FlxNumPassengersTotalDeparture == !0) continue; Select...... element.send(portJournal); } |
|
![]() |
#3 |
Участник
|
![]() Никакого дополнительного select'а не нужно. У вас уже есть QueryRun. QueryRun - это такой способ пробежаться по запросу Query, структуру, которого вы заблоговременно сконструировали всякими там addRange, addSortField, addSelectionField и т.д. т.е цикл "while (qr.next()) {}" делает не что иное как перебирает записи сконструированного вами запроса. Строчка кода "portJournal = qr.get(tableNum(FlxPortJournal));" нужна для того чтобы получить текущую запись перебираемого запроса. "qr.next()" переходит на следующую строку. Итого: в send вам нужно отправить portJournal. Дополнительно ничего выбирать не нужно |
|
|
За это сообщение автора поблагодарили: kornix (1). |
![]() |
#4 |
Участник
|
ничего не понимаю, она у меня не удалила, а
добавела запись с двумя 0 qr = new QueryRun(queryRun.query()); while (qr.next()) { portJournal = qr.get(tableNum(FlxPortJournal)); if (portJournal.FlxNumPassengersTotalArrival == 0 && portJournal.FlxNumPassengersTotalDeparture == 0) element.send(portJournal); } |
|
![]() |
#5 |
MCP
|
Вы неправильно применили правильный совет S.Kuskov'а
![]() X++: if (portJournal.FlxNumPassengersTotalArrival == 0 && portJournal.FlxNumPassengersTotalDeparture == 0) element.send(portJournal); // так вы наоборот выводите если выполняется условие X++: if (portJournal.FlxNumPassengersTotalArrival == 0 && portJournal.FlxNumPassengersTotalDeparture == 0) continue; // если условие выполнится - цикл перейдет к след. записи else element.send(portJournal); // если нет (т.е. будут не нули) в отчет попадет строка |
|
![]() |
#6 |
Участник
|
у меня сейчас написан код
qr = new QueryRun(queryRun.query()); while (qr.next()) { portJournal = qr.get(tableNum(FlxPortJournal)); if (portJournal.FlxNumPassengersTotalArrival == 0 && portJournal.FlxNumPassengersTotalDeparture == 0) continue; else element.send(portJournal); } результат например 12 34 00 12 34 а нужно 12 34 |
|
![]() |
#7 |
MCP
|
У вас этот код написан в методе fetch() ?
|
|
![]() |
#8 |
Участник
|
Сразу после строки "qr = new QueryRun(queryRun.query());" вставьте ради отладки
"info(qr.query().datasourceNo(1).toString);" Тогда вы получите сам текст сконструированного запроса. Возможно он поможет разобраться в чём проблема |
|
![]() |
#9 |
Участник
|
|
|
|
![]() |
||||
Тема | Ответов | |||
DAX2009 EP: Работа с данными в C# | 3 | |||
Данные в отчете | 1 | |||
Динамические контролы в отчете основанные на display-методе | 19 | |||
Работа с полями-массивами в отчете | 2 |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|