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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.03.2006, 14:08   #1  
MaxAR is offline
MaxAR
Участник
 
22 / 10 (1) +
Регистрация: 23.03.2006
Занимаюсь я тут разработкой генератора отчетов для Navision, который должен позволять создавать любой отчет с любыми таблицами и полями. Выбор информации должен происходить по любому заданному пользователем условию или набору условий. Полученный отчет должен выгружаться в Ecxel. Может кто уже имеет наработки по этой теме. Если да, то подскажите, как это лучше сделать. Заранее благодарен.
Старый 24.03.2006, 14:25   #2  
Fordewind is offline
Fordewind
Участник
 
1,134 / 10 (3) +
Регистрация: 01.12.2005
На этом форуме уже эта тема была пару раз. Если поищите, то обязательно найдете.
Старый 24.03.2006, 14:45   #3  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
Возможно Вас спасет SQL версия базы и Query Analizer .

Создать универсальный генератор отчетов для Навижна имхо утопия.
Старый 24.03.2006, 15:48   #4  
Dzemon is offline
Dzemon
Moderator
 
1,247 / 12 (3) ++
Регистрация: 09.09.2004
Или Crystal Report ;-)
А вообще-то уже есть такой продукт, называется Jet Reports http://www.avfconsulting.com/product....asp?docID=321
Старый 28.03.2006, 09:23   #5  
RobiBaggio is offline
RobiBaggio
Участник
Аватар для RobiBaggio
 
285 / 10 (1) +
Регистрация: 16.02.2004
Цитата:
Сообщение от Dzemon Посмотреть сообщение
Или Crystal Report ;-)
А вообще-то уже есть такой продукт, называется Jet Reports http://www.avfconsulting.com/product....asp?docID=321
А про Crystal Report подробней можешь рассказать? Как его прикручивать?
Старый 28.03.2006, 10:44   #6  
Dzemon is offline
Dzemon
Moderator
 
1,247 / 12 (3) ++
Регистрация: 09.09.2004
Crystal как обычно ;-) Если база SQL, то вообще без вопросов, если родная, то через ODBC.
Старый 28.03.2006, 10:52   #7  
RobiBaggio is offline
RobiBaggio
Участник
Аватар для RobiBaggio
 
285 / 10 (1) +
Регистрация: 16.02.2004
Цитата:
Сообщение от Dzemon Посмотреть сообщение
Crystal как обычно ;-) Если база SQL, то вообще без вопросов, если родная, то через ODBC.
То есть вызов идет не из Navision? Отчеты формируются в Crystale, и оттуда же запускаются?
Старый 28.03.2006, 12:05   #8  
Dzemon is offline
Dzemon
Moderator
 
1,247 / 12 (3) ++
Регистрация: 09.09.2004
Конечно!
Вы на этом целую лицензию сэкономите, в случае SQL.
Старый 28.03.2006, 12:23   #9  
RobiBaggio is offline
RobiBaggio
Участник
Аватар для RobiBaggio
 
285 / 10 (1) +
Регистрация: 16.02.2004
Цитата:
Сообщение от Dzemon Посмотреть сообщение
Конечно!
Вы на этом целую лицензию сэкономите, в случае SQL.
Ясно, еще вопрос. Как формировать обортки, если там используется SIFT? и еще как они потом вызываются. Я использую 8.5, там нет возможности делать exe файл как в 7, для запуска
Старый 28.03.2006, 15:20   #10  
Fordewind is offline
Fordewind
Участник
 
1,134 / 10 (3) +
Регистрация: 01.12.2005
Цитата:
Сообщение от RobiBaggio Посмотреть сообщение
Ясно, еще вопрос. Как формировать обортки, если там используется SIFT?
Посмотрите в Nav, как вычесляется то или иное поле и пропишите это руками в той же вьюшке.
Старый 28.03.2006, 15:26   #11  
RobiBaggio is offline
RobiBaggio
Участник
Аватар для RobiBaggio
 
285 / 10 (1) +
Регистрация: 16.02.2004
Цитата:
Сообщение от Fordewind Посмотреть сообщение
Цитата:
Сообщение от RobiBaggio Посмотреть сообщение
Ясно, еще вопрос. Как формировать обортки, если там используется SIFT?
Посмотрите в Nav, как вычесляется то или иное поле и пропишите это руками в той же вьюшке.
Там проще можно. Все вычисляемые поля идут в SQL отдельными таблицами, например Firma$12401$1
это таблица 12401 G/L Correspondence Entry вычисляемое поле 1.
Токо не нашел таблицу 27......
Старый 02.05.2006, 15:04   #12  
e-statik is offline
e-statik
Участник
 
102 / 11 (1) +
Регистрация: 06.07.2005
Я, как и автор темы, сейчас думаю над отчетным движком. Navision + SQL.
У нас очень часто слишком хитрые отчеты нужны. Стандартные репорты не подходят. Поэтому пока пишем прям на формах.

Размышляю, как бы оптимизировать наши отчеты и из требований выделил такие:
- быстрая разработка отчета (не писать каждый раз выгрузку в excel, не тратить много времени на визуальное оформление);
- достаточная сложность построения - с различными вычислениями с использованием других таблиц, связанных не самыми примитивными отношениями;
- возможность крутить отчет на лету, используя различные контролы (периоды, флаги, списки), выбор параметров (из наборов данных постоянных и сформированных специально для отчета);
- разграничение доступа к отчетам на уровне отчета (в идеале хотелось бы не тупо раздавать права по USERID, а что-то более продвинутое исходя из функционального положения сотрудника);
- ограничение доступа на изменение параметров построения отчета для конкретного пользователя (к примеру, пользователь видит отчет не по всей таблице, а по тем строкам, по которым ему можно);
- простота доступа к отчету и работы с ним, изменения по параметрам на лету;
- отчеты консолидированы в одном месте, отсутствие необходимости устанавливать что-то на клиенте.

Кристал на клиентов ставить не катит. Пробовал Кристал Сервер. Там портал даже есть, но громоздкий (пользователь хочет за минимум итераций получать доступ к результатам) и гибкости не даёт. Не нашел я там средств, при помощи которых можно было бы крутить отчет на лету по всяким параметрам...

Сдаётся мне, что для обозначенных критериев нету готового решения. Остается только писать отчетный веб-портал и юзать хранимые процедуры - уж их мощи хватит точно.
Старый 02.05.2006, 16:05   #13  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
Если отчеты "не тяжелые" (условно - менее 5 - 10 тысяч записей), можно попробовать реализовать через универсальную отчетную табличку (20 полей - текст, 20 код, 20 decimal.. etc + несколько полей для сортировки).
Функции по заполнению полей, вставке, заданию полей для сортировки, подсчету итогов, получению записей (FindRec, NextRec) , caption'ов и получению уведомлений о событиях (assistedit, drilldown, lookup)- вынести в отдельный кодеюнит.
Определить одну форму с отчетной табличкой в качестве источника, прописать уведомления кодеюнита о событиях (assistedit, drilldown, lookup) на соответсвующих триггерах полей формы, переопределить ф-ции findrec и nextrec и возможно ф-ции по экспорту в Эксель.
Далее создание отчета будет сводится:
1. Созданию новой формы отчета.
2. Определению формы отчетной таблички в качестве сабформы.
3. Написанию кода заполнению отчета через ф-ции кодеюнита.
4. По таймеру - получение событий от кодеюнита с соответсвующей обработкой.

Плюсы: не нужно под каждый отчет, выводимый посредством формы создавать свою табличку или мучительно искать какую же стандартную использовать , не нужно заморачиваться над сортировкой и подсчетом итогов и подитогов.

Минусы: ограничение в 4000 символов на запись.
Старый 02.05.2006, 16:17   #14  
Scorpie is offline
Scorpie
Участник
 
239 / 10 (1) +
Регистрация: 25.10.2004
Адрес: Moskow
Делал несколько отчётов на SQL Analysis Services.
Быстро, эффективно.
Разграничение прав доступа к отчётам (кубам) и по измерениям работает.
Возможность крутить данные в Excel "на лету".
Простота максимальная - базовое знание Excel.
Отчёты консолидированы в одном месте. Единственный минус - если Excel файл с данными уже был сохранён на диске, то после его открытия для получения актуальных данных из куба нужно жать refresh.

С нетерпением жду перехода на SQL2005 потому как 2000й немного(или не кривя душой - "порядком") глюкавый интерфейс дизайнера кубиков
Старый 02.05.2006, 16:55   #15  
e-statik is offline
e-statik
Участник
 
102 / 11 (1) +
Регистрация: 06.07.2005
2 rmv:
Пользуем такую штуку уже. Табличка Universal Report, временная, глобальная в форме. Очень удобно.
Неудобен сам навижн со своими сортировками. Иногда приходится буквально одно место себе поднадорвать, чтобы сделать сортировку по какому-то столбцу, когда отчет сложный и берет много данных и самых разных таблиц - много времени уходит, код громоздкий, соваться туда в очередной раз порой страшно бывает .
Так что сортировки можно сделать любые, но цена бывает высокой.

События в кодюните не пробовал. Интересная мысль, но удобно кодить, когда всё в одном месте, а так же дрилы/асисты бывают самые разные и писать их в кодюнит не всегда оправдано.

А чего там по таймеру? Не совсем понял, как/зачем можно в отчетах использовать таймер?


А вообще на возню всю эту в форме уходит масса времени. И выгрузка в Excel - аналогично. Это при том, что уже все методы по выбросу в excel перед глазами - тока откорректировать.

Кстати, отчеты на формах с итогами делаем - заморачиваться нужно.

2 Scorpie:
Интересный вариант, стоит посмотреть. А нет ли информационных источников, примеров по теме (кроме хелпов )? Analysis Services пока в глаза даже не видел.
Старый 02.05.2006, 17:39   #16  
Scorpie is offline
Scorpie
Участник
 
239 / 10 (1) +
Регистрация: 25.10.2004
Адрес: Moskow
Цитата:
Сообщение от e-statik Посмотреть сообщение
2 Scorpie:
Интересный вариант, стоит посмотреть. А нет ли информационных источников, примеров по теме (кроме хелпов )? Analysis Services пока в глаза даже не видел.
Документация была в первую очередь - хелп... Ну и некоторое кол-во литературы в pdf формате.
С 2005м ситуация тоже не однозначная. Хелп там на порядок лучше... но вот литературы пока раздобыть не удалось. По некоторым данным в феврале за бугром должна была появиться бумажная книга по этой проблеме - думаю заказать твёрдую копию когда вопрос перехода станет актуальным...

А вариант действительно интересный. Мы так решили вопрос с онлайн доступом к отчётности ряду сотрудников которым из навижна ничего кроме статистики не нужно было.
При этом если заранее настроить вид полей в эксель файле и переслать сотруднику по почте - то в самом файле сохраняется не только внешний вид отчёта - как ему удобнее будет смотреть те или иные данные, но и свойства соединения с сервером. Т.е. настраивать на машине пользователя не нужно ровным счётом ничего... - открыл файл и работай.
Старый 02.05.2006, 17:24   #17  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
2 e-statik:
Код по формированию отчета не должен задумываться о сортировке . Его задача - сказать кодюниту - хочу сортировать по таким-то то полям.

Наводка - ключ может быть таким:
Code Key 1,Decimal Key 1,Date Key 1,Code Key 2,Decimal Key 2,Date Key 2,Code Key 3,Decimal Key 3,Date Key 3,Total.
Как видите покрывается любая комбинация из трех полей сортировки. (более как правило и не требуется).
Ну и уже совсем просто задать сифты на decimal поля и использовать calcums для автоматической генерации итогов.

По поводу событий:
Сабформа (она одна для всех отчетов) - передает кодеюниту тип события и номер поля. Верхняя форма по таймеру опрашивает кодеюнит на предмет наличия необработанных событий, получает текущую запись и выполняет (если нужно) код по обработке события.
Старый 02.05.2006, 19:33   #18  
e-statik is offline
e-statik
Участник
 
102 / 11 (1) +
Регистрация: 06.07.2005
2 rmv:
По поводу сортировки - разные варианты бывают. У меня в таблице для отчетов первостепенный ключ один - Report Id (int). Во всех отчетах строки пронумерованы - это бывает удобно юзерам при работе с отчетом. А уж для сортировки - да - ключей по полям создано много, без этого никуда. Бывают просто изощренные варианты с группировками.

СИФТ так ни разу и не удосужился попробовать в работе. Теперь буду иметь в виду

2 Scorpie:
А правильно я понял, в excel'документе настраиваются соединения, источники данных и погнали? Что-то такое? Нужно конекшны настроить у юзера предварительно?... Или я что-то с чем-то путаю?
Старый 03.05.2006, 00:36   #19  
Scorpie is offline
Scorpie
Участник
 
239 / 10 (1) +
Регистрация: 25.10.2004
Адрес: Moskow
Цитата:
Сообщение от e-statik Посмотреть сообщение
2 Scorpie:
А правильно я понял, в excel'документе настраиваются соединения, источники данных и погнали? Что-то такое? Нужно конекшны настроить у юзера предварительно?... Или я что-то с чем-то путаю?
Они настраиваются для документа в момент создания оного. Например на моей машине создается новый Data Source на OLAP куб. Но потом название оного и на какой машине он создан - уже не важно. Excel файл хранит в себе все значимые параметры как то сервер и название куба к которому коннектиться нужно для апдейта данных.
Файл пересылается пользователю, он его открывает и обновляет уже со своей машины.
Авторизация Windows - так что меньше головной боли с security. Файл будет обновляться уже от имени новой учётной записи.
Старый 03.05.2006, 12:35   #20  
e-statik is offline
e-statik
Участник
 
102 / 11 (1) +
Регистрация: 06.07.2005
Задумался тут... А можно ли будет с excel'ем сделать, скажем, отчет с детализацией? Открылся отчет, строки... Жмём на значение - открывается форма с подробной информацией. У нас и такие отчеты нужны.
 


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

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

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