13.04.2004, 15:19 | #1 |
Участник
|
Параметры отчета в RunBaseReport
Создал отчет с помощь мастера из трех таблиц. Создал для этого отчета класс RunBaseReport. При вызове класса появляется диалог, в котором перечислены кличевые поля таблиц отчета.
1. Как их убрать? 2. Как получить доступ к этим полям в программном коде? |
|
13.04.2004, 17:28 | #2 |
Участник
|
Re: Параметры отчета в RunBaseReport
Цитата:
Изначально опубликовано Mystery
Создал отчет с помощь мастера из трех таблиц. Создал для этого отчета класс RunBaseReport. При вызове класса появляется диалог, в котором перечислены кличевые поля таблиц отчета. Настраиваются они в Query отчета на каждом из датасорсов. Цитата:
1. Как их убрать? 2. Как получить доступ к этим полям в программном коде? |
|
13.04.2004, 17:34 | #3 |
Участник
|
1. Убрать с формы
2. Получить доступ в програмном коде в классе RunBaseReport |
|
13.04.2004, 17:54 | #4 |
Участник
|
[QUOTE]Изначально опубликовано Mystery
1. Убрать с формы [QUOTE] Вы уверены, что не хотите дать пользователю возможность выбора? Чтобы убрать весь блок - установите свойство Ineractive отчета в No. Цитата:
2. Получить доступ в програмном коде в классе RunBaseReport
|
|
13.04.2004, 18:06 | #5 |
Участник
|
Абсолютно уверен что не хочу дать пользователю возможность выбора. Программный код сам выбирает на основании довольно долгих процедур код листа который отображается с права в группе параметров только для ознакомительных целей.
Изменения свойства Interactive совсем не поменяло картины. Насколько мне помниться оно влияет только на отчет, а не на поведение RunBaseReport. То есть при запуске отчета сначала выдается диалог-запросов по query а потом показывается диалог самого отчета по параметрам вывода на печать (Interactive отчета не отображает второй диалог), первый диалог отключается свойством Interactive в самом query у отчета. Меня же интерисует класс RunBaseReport |
|
|
За это сообщение автора поблагодарили: evv (1). |
13.04.2004, 18:13 | #6 |
Участник
|
Цитата:
Изначально опубликовано Mystery
Изменения свойства Interactive совсем не поменяло картины. Насколько мне помниться оно влияет только на отчет, а не на поведение RunBaseReport. То есть при запуске отчета сначала выдается диалог-запросов по query а потом показывается диалог самого отчета по параметрам вывода (Interactive не отображает второй диалог), а меня больше интерисует первый. Не вызывайте super() в методе dialog() |
|
13.04.2004, 18:22 | #7 |
Участник
|
Вообще удалил метод диалог, не помогает. Тогда я перекрыл метод dialog вот так:
PHP код:
|
|
13.04.2004, 19:16 | #8 |
Участник
|
Еще один способ:
У Data Sources отчета в группе Ranges, у необходимого поля установите свойство Status=Hide |
|
13.04.2004, 19:42 | #9 |
Участник
|
Спасибо, это очень интересное свойство я не пременно им воспользуюсь, теперь хочу разобраться со вторым вопросом:
как получить доступ к полям на форме из кода класса? Поясню что мне нужно: метод main моего класса от RunBaseReport: PHP код:
|
|
14.04.2004, 10:25 | #10 |
Участник
|
скажите, а как сделать так, чтобы
окно с предложением выбрать параметры отчета вообще не появлялось? я что-то не смог этого сделать |
|
14.04.2004, 10:30 | #11 |
Участник
|
Если ты про RunBaseReport то читай 7 пост, про перекрытие метода dialog
Если про отчет то читай 5-й пост про свойства Interactive у отчета и его query |
|
14.04.2004, 10:42 | #12 |
Участник
|
спасибо - помогло
народ, а где-нибудь про это вообще написано или все вот так самому нада выискивать? :/ |
|
14.04.2004, 10:59 | #13 |
Участник
|
Цитата:
Изначально опубликовано Mystery
как получить доступ к полям на форме из кода класса? Поясню что мне нужно: метод main моего класса от RunBaseReport: PHP код:
Важно понимать, что это не поля на форме, а ranges от query вашего отчета. У класса RunBaseReport есть метод initQuery. Перекройте его и перенесите туда ваш код где устанавливаются значения ranges. PHP код:
Кстати, рекоммендую вместо dataSourceName использовать dataSourceTable(tableNum(...)), а в случае двух одинаковых таблиц в датасорсах dataSourceNo() |
|
14.04.2004, 11:00 | #14 |
сибиряк
|
Цитата:
Изначально опубликовано Mystery
Все стало работать как хотелось изначально, даже лутче (дилог вообще не выдается, а сразу показывается отчет), спасибо за помощь. [/B] PHP код:
__________________
С уважением, Вячеслав. |
|
14.04.2004, 11:27 | #15 |
Участник
|
Цитата:
Вообще удалил метод диалог, не помогает. Тогда я перекрыл метод dialog вот так:
X++ code:-------------------------------------------------------------------------------- public Object dialog(DialogRunbase dialog, boolean forceOnClient) { return dialog; }-------------------------------------------------------------------------------- Все стало работать как хотелось изначально, даже лутче (дилог вообще не выдается, а сразу показывается отчет), спасибо за помощь. Цитата:
как получить доступ к полям на форме из кода класса?
Поясню что мне нужно: метод main моего класса от RunBaseReport: X++ code:-------------------------------------------------------------------------------- rptPaperBlank = new M082_GetPaperBlank(); if (rptPaperBlank.prompt()) { rptPaperBlank.queryRun().query().dataSourceName('tblPaperTable').range(1).value(paperTable.ID); rptPaperBlank.run(); }-------------------------------------------------------------------------------- Мне не хочется чтоб параметр по Range устанавливался после промпта. Хочу поставить его до промпта и показать на форме. Как это сделать? Выглядеть должно приблизительно так: PHP код:
|
|
14.04.2004, 11:41 | #16 |
Участник
|
Все что вы оба предлагаете уже опробовано но отвергнуто за ненадобностью. Мне нужно имено до строчки кода вызова промта присвоить значение. Не используя никаих других методов класса.
Чтобы было ясней: мне не хочется создавать парм методы, паки и унпаки. Я не хочу передовать никакие значения в конструктор или создавать свой инициализатор. У меня есть статический метод майн в котором идет долгая обработка чего-то по окончании которой получается суперпуперзначение, которое я не хочу передовать в новый класс, который создается для показа промта и вызова метода ран. Я хочу сохранить это значение во втовь созданом классе и показать в стандартном диалоге, это возможно или придется реальзовывать весь механизм с карентверсионами и карентлистами и всем что вы предлагаете? Вся проблема только в том что до вызова метода промпт куериран не инициирован также как и остальные методы. Мне нужно достукиваться к ним до промпта. |
|
14.04.2004, 12:12 | #17 |
Участник
|
Цитата:
Изначально опубликовано Mystery
Все что вы оба предлагаете уже опробовано но отвергнуто за ненадобностью. Мне нужно имено до строчки кода вызова промта присвоить значение. Не используя никаих других методов класса. Чтобы было ясней: мне не хочется создавать парм методы, паки и унпаки. Я не хочу передовать никакие значения в конструктор или создавать свой инициализатор. У меня есть статический метод майн в котором идет долгая обработка чего-то по окончании которой получается суперпуперзначение, которое я не хочу передовать в новый класс, который создается для показа промта и вызова метода ран. Я хочу сохранить это значение во втовь созданом классе и показать в стандартном диалоге, это возможно или придется реальзовывать весь механизм с карентверсионами и карентлистами и всем что вы предлагаете? Желаю успехов в вашем нелегком деле |
|
14.04.2004, 12:33 | #18 |
сибиряк
|
Цитата:
Изначально опубликовано Mystery
__________________
С уважением, Вячеслав. |
|
14.04.2004, 12:33 | #19 |
Участник
|
Цитата:
Все что вы оба предлагаете уже опробовано но отвергнуто за ненадобностью. Мне нужно имено до строчки кода вызова промта присвоить значение. Не используя никаих других методов класса.
Чтобы было ясней: мне не хочется создавать парм методы, паки и унпаки. Я не хочу передовать никакие значения в конструктор или создавать свой инициализатор. Цитата:
У меня есть статический метод майн в котором идет долгая обработка чего-то по окончании которой получается суперпуперзначение, которое я не хочу передовать в новый класс, который создается для показа промта и вызова метода ран. Я хочу сохранить это значение во втовь созданом классе и показать в стандартном диалоге,
Цитата:
это возможно или придется реальзовывать весь механизм с карентверсионами и карентлистами и всем что вы предлагаете? об этом речи совсем не шло. Цитата:
Вся проблема только в том что до вызова метода промпт куериран не инициирован также как и остальные методы. Мне нужно достукиваться к ним до промпта.
смотрите пример, читайте книжки, надеюсь поможет. |
|
14.04.2004, 12:55 | #20 |
Участник
|
Какие-то все непонятливые собрались. Элементарнейшая задача. Наверное я плохо объясняю. Может это вам прояснит ситуацию:
1. Методы класса от RunBaseReport PHP код:
Я бы очень был рад, если бы кто-то подсказал, как не использовать подобную технику, а просто перенести показ значения кода листа с моих параметров, которые я зделал через пармметод, в параметры по умолчанию как показывает класс, как показано на самом первом рисунке самой первой моей реплики согласно красной стрелки. |
|
|
Похожие темы | ||||
Тема | Ответов | |||
axaptapedia: RunBaseReport | 0 | |||
Параметры menuitem отчета | 2 | |||
Русская локализация Axapta 3 ? | 59 | |||
Формирование отчета с динамически изменяемым числом столбцов. | 1 |
|