09.04.2003, 12:06 | #1 |
Юзовские
|
Отчет по всем компаниям
Люди знающие, помогите решить проблему:
Есть отчет, построенный на Query. Естественно сейчас он выбирает данные в рамках текущей компании. Необходимо заставить его вывести данные по всем компаниям. Как это сделать с минимальными трудозатратами. За ранее благодарен. |
|
09.04.2003, 13:39 | #2 |
NavAx
|
Проще всего это сделать - вызывать super() в fetch() после смены каждой компании. В результате получим отчёт по всем компаниям. Правда вот один недостаток - форму настройки печати отчёт будет вызывать при каждом вызове super().
__________________
С уважением, Игорь Ласийчук. |
|
09.04.2003, 15:09 | #3 |
Юзовские
|
Спасибо, уважаемый Garic, за ответ. Но по нескольким причинам он неприемлим. Не пробовал ли кто-нибудь с помощью range перебить поле DataAreaId, чтобы выбирались данные не по текущей компании, а по всем? У меня не получилось.
|
|
09.04.2003, 15:44 | #4 |
NavAx
|
Без использования changecompany() здесь не обойтись (ну конечно если не таскать данные напрямую из таблицы через Connection ). В текущей области видимости вы можете видеть только данные из этой области и никакие range тут не помогут.
__________________
С уважением, Игорь Ласийчук. |
|
09.04.2003, 15:52 | #5 |
Юзовские
|
Действительно так и есть. Эта замечательная программа (Аксапта) автоматически добавляет в запрос WHERE DataAreId = <текущая компания>
|
|
09.04.2003, 16:30 | #6 |
NavAx
|
Цитата:
Эта замечательная программа (Аксапта) автоматически добавляет в запрос WHERE DataAreId = <текущая компания>
__________________
С уважением, Игорь Ласийчук. |
|
09.04.2003, 17:06 | #7 |
SAP
|
Классическое решение такого рода задачи состоит в том, чтобы отчет работал по временной таблице, которая заполняется в при запуске отчета необходимыми данными из разных компаний.
После заполнения записи во временной таблицы можно "обычным" образом сортировать, фильтровать и т.д. для формирования отчета. |
|
09.04.2003, 18:14 | #8 |
сибиряк
|
Цитата:
Изначально опубликовано Pavel
Классическое решение такого рода задачи состоит в том, чтобы отчет работал по временной таблице, которая заполняется в при запуске отчета необходимыми данными из разных компаний. После заполнения записи во временной таблицы можно "обычным" образом сортировать, фильтровать и т.д. для формирования отчета. Самое первое : использование временных таблиц намного увеличит время формирования отчета, .. и т.д. У dataSourc'ов Query отчета есть свойство Company. Точно не уверен, но возможно именно изменяя его можно добиться нужного результата.
__________________
С уважением, Вячеслав. |
|
09.04.2003, 19:00 | #9 |
NavAx
|
Цитата:
У dataSourc'ов Query отчета есть свойство Company. Точно не уверен, но возможно именно изменяя его можно добиться нужного результата.
Ну а если в отчёте есть всякие суммы, которые нужно вычислять по всем компаниям (проводки скажем), то придётся всё-таки делать временную таблицу.
__________________
С уважением, Игорь Ласийчук. |
|
10.04.2003, 12:17 | #10 |
SAP
|
Пример
Предлагаю продемонстрировать эффективное техническое решение на конкретном примере.
Имеем - бизнес, у которого несколько юридических форм (ЗАО, Представительство, офшор + теневой) - по каждому юр. лицу ведется своя компания (сдается баланс и другая бух.отчетность) - одни и те же контрагенты проходят в учете по разным компаниям Задача: руководство компании хочет еженедельно (в любой момент времени) видеть консолидированный отчет по дебиторке. Отчет должен быть совершенно четко классифицирован по аналитикам: - юр.лицо (компания) - структурное подразделение компании (если несколько профит центров) - договор - счет - дата возникновения задолжности или ее погашения - товар/услуга/бренд/и т.п. - валюта задолжности - и т.п. Каким образом построить такой отчет "на лету", прыгая между компаниями? P.S. С временной таблицей и единой аналитической кодировкой по компаниям все тривиально. Для оптимизации времени весь процесс делится на две части: 1) выборка данных запросами из разных компаний во временную таблицу 2) печать одного или нескольких консолидированных отчетов по данной выборке (сколько угодно раз без повторных запросов к разным компаниям) |
|
12.04.2003, 11:42 | #11 |
SAP
|
Цитата:
Изначально опубликовано slava
Вот уж точно это "классическое решение" не самое лучшее Самое первое : использование временных таблиц намного увеличит время формирования отчета, .. и т.д. У dataSourc'ов Query отчета есть свойство Company. Точно не уверен, но возможно именно изменяя его можно добиться нужного результата. Где же решение, то, самое лучшее? |
|
14.04.2003, 10:09 | #12 |
Юзовские
|
Итак, если я правильно понял, на сегодняшний день есть только два варианта:
1. Писать запрос напрямую к базе данных. 2. Переключаться между компаниями стандартными средствами Ахарты. Есть еще варианты? |
|