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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.04.2003, 12:06   #1  
metal is offline
metal
Юзовские
Дети Юза
 
92 / 10 (1) +
Регистрация: 06.08.2002
Адрес: Украина
Отчет по всем компаниям
Люди знающие, помогите решить проблему:
Есть отчет, построенный на Query. Естественно сейчас он выбирает данные в рамках текущей компании. Необходимо заставить его вывести данные по всем компаниям. Как это сделать с минимальными трудозатратами.
За ранее благодарен.
Старый 09.04.2003, 13:39   #2  
Garic is offline
Garic
NavAx
Аватар для Garic
NavAx Club
 
393 / 63 (3) ++++
Регистрация: 23.07.2002
Адрес: Москва
Проще всего это сделать - вызывать super() в fetch() после смены каждой компании. В результате получим отчёт по всем компаниям. Правда вот один недостаток - форму настройки печати отчёт будет вызывать при каждом вызове super().
__________________
С уважением, Игорь Ласийчук.
Старый 09.04.2003, 15:09   #3  
metal is offline
metal
Юзовские
Дети Юза
 
92 / 10 (1) +
Регистрация: 06.08.2002
Адрес: Украина
Спасибо, уважаемый Garic, за ответ. Но по нескольким причинам он неприемлим. Не пробовал ли кто-нибудь с помощью range перебить поле DataAreaId, чтобы выбирались данные не по текущей компании, а по всем? У меня не получилось.
Старый 09.04.2003, 15:44   #4  
Garic is offline
Garic
NavAx
Аватар для Garic
NavAx Club
 
393 / 63 (3) ++++
Регистрация: 23.07.2002
Адрес: Москва
Без использования changecompany() здесь не обойтись (ну конечно если не таскать данные напрямую из таблицы через Connection ). В текущей области видимости вы можете видеть только данные из этой области и никакие range тут не помогут.
__________________
С уважением, Игорь Ласийчук.
Старый 09.04.2003, 15:52   #5  
metal is offline
metal
Юзовские
Дети Юза
 
92 / 10 (1) +
Регистрация: 06.08.2002
Адрес: Украина
Действительно так и есть. Эта замечательная программа (Аксапта) автоматически добавляет в запрос WHERE DataAreId = <текущая компания>
Старый 09.04.2003, 16:30   #6  
Garic is offline
Garic
NavAx
Аватар для Garic
NavAx Club
 
393 / 63 (3) ++++
Регистрация: 23.07.2002
Адрес: Москва
Цитата:
Эта замечательная программа (Аксапта) автоматически добавляет в запрос WHERE DataAreId = <текущая компания>
Не текущая компания, а текущая область видимости. Это может быть и виртуальная компания.
__________________
С уважением, Игорь Ласийчук.
Старый 09.04.2003, 17:06   #7  
Pavel is offline
Pavel
SAP
SAP
 
2,760 / 239 (13) ++++++
Регистрация: 14.12.2001
Адрес: Moscow
Классическое решение такого рода задачи состоит в том, чтобы отчет работал по временной таблице, которая заполняется в при запуске отчета необходимыми данными из разных компаний.
После заполнения записи во временной таблицы можно "обычным" образом сортировать, фильтровать и т.д. для формирования отчета.
Старый 09.04.2003, 18:14   #8  
slava is offline
slava
сибиряк
Самостоятельные клиенты AX
 
468 / 23 (1) +++
Регистрация: 28.12.2001
Адрес: Москва
Цитата:
Изначально опубликовано Pavel
Классическое решение такого рода задачи состоит в том, чтобы отчет работал по временной таблице, которая заполняется в при запуске отчета необходимыми данными из разных компаний.
После заполнения записи во временной таблицы можно "обычным" образом сортировать, фильтровать и т.д. для формирования отчета.
Вот уж точно это "классическое решение" не самое лучшее
Самое первое : использование временных таблиц намного увеличит время формирования отчета, .. и т.д.

У dataSourc'ов Query отчета есть свойство Company. Точно не уверен, но возможно именно изменяя его можно добиться нужного результата.
__________________
С уважением, Вячеслав.
Старый 09.04.2003, 19:00   #9  
Garic is offline
Garic
NavAx
Аватар для Garic
NavAx Club
 
393 / 63 (3) ++++
Регистрация: 23.07.2002
Адрес: Москва
Цитата:
У dataSourc'ов Query отчета есть свойство Company. Точно не уверен, но возможно именно изменяя его можно добиться нужного результата.
Может и получится, но всё равно не будет сортировки и т.п. Проще это сделать как я писал выше.

Ну а если в отчёте есть всякие суммы, которые нужно вычислять по всем компаниям (проводки скажем), то придётся всё-таки делать временную таблицу.
__________________
С уважением, Игорь Ласийчук.
Старый 10.04.2003, 12:17   #10  
Pavel is offline
Pavel
SAP
SAP
 
2,760 / 239 (13) ++++++
Регистрация: 14.12.2001
Адрес: Moscow
Пример
Предлагаю продемонстрировать эффективное техническое решение на конкретном примере.

Имеем
- бизнес, у которого несколько юридических форм (ЗАО, Представительство, офшор + теневой)
- по каждому юр. лицу ведется своя компания (сдается баланс и другая бух.отчетность)
- одни и те же контрагенты проходят в учете по разным компаниям

Задача: руководство компании хочет еженедельно (в любой момент времени) видеть консолидированный отчет по дебиторке.

Отчет должен быть совершенно четко классифицирован по аналитикам:
- юр.лицо (компания)
- структурное подразделение компании (если несколько профит центров)
- договор
- счет
- дата возникновения задолжности или ее погашения
- товар/услуга/бренд/и т.п.
- валюта задолжности
- и т.п.

Каким образом построить такой отчет "на лету", прыгая между компаниями?

P.S. С временной таблицей и единой аналитической кодировкой по компаниям все тривиально. Для оптимизации времени весь процесс делится на две части:
1) выборка данных запросами из разных компаний во временную таблицу
2) печать одного или нескольких консолидированных отчетов по данной выборке (сколько угодно раз без повторных запросов к разным компаниям)
Старый 12.04.2003, 11:42   #11  
Pavel is offline
Pavel
SAP
SAP
 
2,760 / 239 (13) ++++++
Регистрация: 14.12.2001
Адрес: Moscow
Цитата:
Изначально опубликовано slava
Вот уж точно это "классическое решение" не самое лучшее
Самое первое : использование временных таблиц намного увеличит время формирования отчета, .. и т.д.

У dataSourc'ов Query отчета есть свойство Company. Точно не уверен, но возможно именно изменяя его можно добиться нужного результата.
2slava
Где же решение, то, самое лучшее?
Старый 14.04.2003, 10:09   #12  
metal is offline
metal
Юзовские
Дети Юза
 
92 / 10 (1) +
Регистрация: 06.08.2002
Адрес: Украина
Итак, если я правильно понял, на сегодняшний день есть только два варианта:
1. Писать запрос напрямую к базе данных.
2. Переключаться между компаниями стандартными средствами Ахарты.
Есть еще варианты?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вывод в отчёт значения QueryBuildRange Sergey Petrov DAX: Программирование 2 16.10.2008 16:33
Вписать динамический отчет в страницу (DAX 4.0) Qaz Qwerty DAX: Программирование 2 17.07.2008 05:46
Как получить указатель на отчёт когда пользователь выбрал Печать на принтер в просмотрщике, в форму SysPrintForm? rkorchagin DAX: Программирование 10 17.04.2008 11:59
отчет по всем компаниям delicia DAX: Программирование 6 22.11.2002 14:57
отчет по всем компаниям delicia DAX: Программирование 1 22.11.2002 10:54
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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