AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.07.2003, 16:59   #1  
artemmikhailov is offline
artemmikhailov
Участник
 
6 / 10 (1) +
Регистрация: 07.07.2003
Вывод программируемых секций отчета
Доброго времени суток,

В отчете есть две программируемые секции:
(1) шапка группировки; например, имя клиента
(2) строки группировки; например, заказы по этому клиенту

При выводе (2) происходит подсчет неких сумм по выводимым строкам, например, сумма заказов клиента. Вопрос в том, как вывести эту сумму в (1).

Секция (1), будучи выведенной через execute.section(), уже не видит никаких переменных, образованных в коде после данного execute.

Есть ли способ вывести в (1) данные, рассчитанные в момент вывода (2)? Любым способом.

Артем
Старый 09.07.2003, 17:19   #2  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Объявить несколько переменных в classDeclaration() отчета, считать их в (2), а выводить в (1)
Старый 09.07.2003, 17:39   #3  
artemmikhailov is offline
artemmikhailov
Участник
 
6 / 10 (1) +
Регистрация: 07.07.2003
Спасибо за ответ!

В этом случае в (1) будет выводится сумма, подсчитанная на предыдущей группировке (2).

То есть, сейчас (*) мне нужно отразить в строке (1):
(1) Вася
(2) васин заказ №1 ------------------------ 110 руб
(2) васин заказ №2 ------------------------ 130 руб
всего 240 руб *
(1) Коля
(2) колин заказ №1 ------------------------ 210 руб
(2) колин заказ №2 ------------------------ 230 руб
всего 440 руб *

Расчет идет так: сумма перед (1) обнуляется и добавляется при проходе по строкам (2). На каждый (1) и (2) работает execute.section().

С вариантом объявления суммарых переменных в ClassDeclaration мы получим:

(1) Вася всего 0 руб
(2) васин заказ №1 ------------------------ 110 руб
(2) васин заказ №2 ------------------------ 130 руб

(1) Коля всего 240 руб
(2) колин заказ №1 ------------------------ 210 руб
(2) колин заказ №2 ------------------------ 230 руб

Артем
Старый 09.07.2003, 17:55   #4  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
тогда никак..
как можно вывести то, что еще не посчитано?

придется вычисления делать отдельно от вывода (2)
Старый 10.07.2003, 15:31   #5  
Алексей Контев is offline
Алексей Контев
Участник
 
118 / 31 (2) +++
Регистрация: 28.12.2001
Адрес: Барнаул
А вариант :

(2) васин заказ №1 ------------------------ 110 руб
(2) васин заказ №2 ------------------------ 130 руб
(1) Вася всего 240 руб

вас не устраивает?
Старый 10.07.2003, 15:44   #6  
artemmikhailov is offline
artemmikhailov
Участник
 
6 / 10 (1) +
Регистрация: 07.07.2003
Алексей, меня лично - устраивает. Пользователей - нет. В реальности отчет имеет от 3 до 4 группировок (ниже как 1.1 - 1.3), и каждая из них имеет суммы, например:


(1.1) Вася-менеджер---------------------------------------------------- всего 650 руб
(1.2) Васина группа клиентов: "ВИПы" ------------------------- всего 300 руб
(1.3.) Номерклатура: "вилы хоз." ------------------------------- всего 240 руб
(2) заказ васиного випового клиента на вилы №1 ------- 110 руб
(2) заказ васиного випового клиента на вилы №2 ------- 130 руб
(1.3.) Номерклатура: "веники"--- ------------------------------- всего 60 руб
(2) заказ васиного випового клиента на веники №1 ---- 20 руб
(2) заказ васиного випового клиента на веники №2 ---- 40 руб
(1.2) Васина группа клиентов: "не ВИПы" --------------------- всего 350 руб
и т.д.

И тут логичнее - я понимаю бухгалтеров - видеть итоги по заголовку группировки. Но вот считать их отдельно ох как не хочется!
Старый 10.07.2003, 15:46   #7  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
OFF
Лично меня, "(1) Вася всего 240 руб" устраивает больше, чем "(1) Вася всего 0 руб"
Старый 10.07.2003, 16:22   #8  
dn is offline
dn
Участник
Самостоятельные клиенты AX
 
486 / 159 (6) ++++++
Регистрация: 26.03.2003
Адрес: Москва
Цитата:
Изначально опубликовано artemmikhailov
И тут логичнее - я понимаю бухгалтеров - видеть итоги по заголовку группировки. Но вот считать их отдельно ох как не хочется!
Ну тогда остается вариант прикрутить внешний построитель отчетов. Crystal Reports такую фитчу точно поддерживает.
p.s. Но по-моему лучше всё-таки подсчитать итоги отдельно.
Старый 10.07.2003, 22:29   #9  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
artemmikhailov, вы или ваши пользователи наверняка раньше пользовались 1Сом
Вспомните, что 1С строить отчеты в два прохода: сначала считает итоги, затем выводит секции. Таким образом, пользователи вынуждены ждать пока итоги посчитаются. И только потом они хоть что-то увидят.

Это цена того, что они привыкли видеть. И кстати, это далеко не логичнее! Это просто привычка такая.

В Аксапте немного другой принцип. Аксапта (да и многие другие западные программы) стремится вывести первые страницы как можно раньше, чтобы пользователь сразу мог оценить нужность получаемых данных. Именно поэтому у стандартной Аксапты нет итогов ДО того, как она выведет строчку.


Теперь о вашем отчете.
Во-первых, бросьте привычку программировать!
отчет вида
Цитата:
(1) Вася
(2) васин заказ №1 ------------------------ 110 руб
(2) васин заказ №2 ------------------------ 130 руб
всего 240 руб *
(1) Коля
(2) колин заказ №1 ------------------------ 210 руб
(2) колин заказ №2 ------------------------ 230 руб
всего 440 руб *
в Аксапте делается БЕЗ программирования.
Для этого достаточно:
= в датасорсе добавить сортировку по клиентам и включить автосуммирование и автозаголовок
= сгенерировать дизайн по датасорсу, накидать туда поля и
= в дизайне указать у нужных полей признак Sum

Отчеты такого вида получаются в Аксапте просто и быстро и БЕЗ программирования.
Большинство отчетов именно так и построено.

Попробуйте, вам непременно понравится.
Попробуйте также добавить несколько полей сортировки
и посмотрите на закладку сортировка и, если у вас 3.0, опции печати.
(http://axapta.mazzy.ru/screenshots/common/sort.html в конце страницы)
Вас несомненно обрадуют возможности
А самое главное? вы сможете генерировать отчеты своим пользователям намного быстрее и качественнее. В общем, бросайте программировать и посмотрите на стандартные возможности.


Теперь о том, что вы хотите сделать.
Это можно. Для этого надо всего лишь "проэмулировать" поведение 1С.
Т.е. сначала рассчтать итоги в промежуточную таблицу, а затем вручную вывести значения из нее. Но как сами понимаете для этого вам нужны будут средства разработки (как и в 1С) и терпение .
Старый 11.07.2003, 09:40   #10  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
опять OFF
Цитата:
Изначально опубликовано mazzy
Попробуйте, вам непременно понравится.
Попробуйте также добавить несколько полей сортировки
и посмотрите на закладку сортировка и, если у вас 3.0, опции печати.
(http://axapta.mazzy.ru/screenshots/common/sort.html в конце страницы)
Вас несомненно обрадуют возможности
А самое главное? вы сможете генерировать отчеты своим пользователям намного быстрее и качественнее. В общем, бросайте программировать и посмотрите на стандартные возможности
Ну прям "магазин на диване"
Старый 11.07.2003, 11:24   #11  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Re: опять OFF
Цитата:
Изначально опубликовано Wamr
Ну прям "магазин на диване"
Извините. Привычка
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вывод отчета в WORD ea DAX: Программирование 15 10.01.2008 13:19
Вывод отчета в файл в пакетном режиме Egor_bl DAX: Программирование 16 09.10.2006 19:10
Вывод второстепенного отчёта. Dronas DAX: Программирование 1 30.08.2006 11:26
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38
Вывод отчета на почту ea DAX: Программирование 7 21.06.2003 13:38
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 18:51.