![]() |
#1 |
Участник
|
Отчеты
Доброго времени суток.
Есть таблица из 4 полей. Необходимо получать отчет лишь по определенным записям, я создал на каждое поле Display метод такого типа: X++: Table _table; ; select * from _table where _table.field == this.field; return _table.field_2; |
|
![]() |
#2 |
Участник
|
Вы в свойствах вашей кнопки MenuItemButton указали DataSource?
В методе init() вашего отчета нужно сделать проверку на наличие переданного курсора из grid'а и указать фильтр, который будет служить связкой между таблицей и записью из grid'а. Примерно так: X++: public void init() { Args parameters; ; super(); parameters = element.args(); if(!parameters.record()) throw error('Отчет должен вызываться с параметрами!'); else if(parameters.record().TableId == tablenum( )) = parameters.record(); this.query().dataSourceTable(tableNum( )).addRange(fieldNum( , )).value( . ); } P.S. Для того, чтобы не отображалась форма запроса(SysQueryForm) при запуске отчета, нужно в свойствах Query отчета Interactive поставить в No.
__________________
С уважением, Александр. Последний раз редактировалось samolalex; 25.01.2011 в 17:13. |
|
![]() |
#3 |
северный Будда
|
Чего-то я не понял
Если запуск по нажатию MenuItemButton, то что означает конструкция "this.field"? Никаких полей у класса нет. Может быть всё-таки имеется в виду простой button?
__________________
С уважением, Вячеслав |
|
![]() |
#4 |
Участник
|
Видимо методы у AngelDominantes табличные.
__________________
С уважением, Александр. |
|
![]() |
#5 |
Участник
|
Да методы табличные, немного разобрался и понял, что в Display методы не передается указатель с грида, точнее я не знаю как его оттуда вытащить, если в init() отчета его возможно получить, то как его передать или использовать именно в Display?
|
|
![]() |
#6 |
Участник
|
Цитата:
Вы писали: Цитата:
Забудем на время про дисплей-методы (ведь их использование никоим образом не влияет на решение этой задачи). Каким образом у вас работает "отчёт"? В его методе init есть цикл для обхода записей таблицы? Он основан на Query? Перекрыт ли метод fetch? |
|
![]() |
#7 |
Участник
|
Цитата:
Сообщение от S.Kuskov
![]() Так. Сдаётся мне, что у вас полный сумбур в голове
Вы писали: Для чего вы сделали эти дисплей методы? Забудем на время про дисплей-методы (ведь их использование никоим образом не влияет на решение этой задачи). Каким образом у вас работает "отчёт"? В его методе init есть цикл для обхода записей таблицы? Он основан на Query? Перекрыт ли метод fetch? |
|
![]() |
#8 |
Участник
|
Цитата:
Дисплей метод - это аналог вычисляемых полей; они не имеют параметров, а работают лишь в контексте вызывающего курсора (this); при помощи их невозможно ограничить выборку Цитата:
|
|
![]() |
#9 |
Участник
|
Цитата:
Сообщение от S.Kuskov
![]() Разберитесь с тем, что такое дисплей-методы (сейчас у вас неправильное представление о них).
Дисплей метод - это аналог вычисляемых полей; они не имеют параметров, а работают лишь в контексте вызывающего курсора (this); при помощи их невозможно ограничить выборку Читали morphx.pdf? |
|
![]() |
#10 |
Участник
|
|
|
![]() |
#11 |
Участник
|
Цитата:
X++: public boolean fetch() { QueryRun qr; Boolean ret; qr = new QueryRun(element); qr.next(); .... |
|
![]() |
#12 |
MCP
|
Цитата:
Сообщение от AngelDominantes
![]() К примеру следующий код:
X++: public boolean fetch() { QueryRun qr; Boolean ret; qr = new QueryRun(element); qr.next(); .... Последний раз редактировалось kornix; 27.01.2011 в 11:45. |
|
|
За это сообщение автора поблагодарили: AngelDominantes (1). |
![]() |
#13 |
Участник
|
|
|
![]() |
#14 |
MCP
|
|
|
![]() |
#15 |
Участник
|
Цитата:
Сообщение от kornix
![]() В этой теме есть примеры
![]() PHP код:
|
|
![]() |
#16 |
Гость
|
Заодно правописание -ТСЯ и -ТЬСЯ тут запости, вдруг тоже кому пригодится
|
|
Теги |
query, отчет, report |
|
![]() |
||||
Тема | Ответов | |||
Изменить отчеты | 2 | |||
Фин отчеты: может ли работать по нескольким компаниям сразу | 3 | |||
Шаблонные отчеты | 2 | |||
Отчеты по клиентам | 2 | |||
CrystalReport и внутренние отчеты | 7 |
|