Показать сообщение отдельно
Старый 04.08.2009, 13:43   #28  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
А можно еще в Access "расшифровывать" (из него и в Excel можно лихо выгружать). Надо только пользователей немножко обучить (в пределах недели, было бы желание!)

С тех пор как, начиная с версии 2000, Microsoft фактически сделал Access клиентским придатком SQL сервера, все как-то стали забывать про его автономный формат MDB. Да, для промышленных баз этот формат слабоват, но никто не мешает его использовать для отчетных целей и создавать файл (такую мини-БД) в момент выгрузки отчета. Единственное, пожалуй, при этом неудобство состоит в том, что файл обязательно должен сохраняться на диске (в отличие от Excel, где на таблицу можно насмотреться в памяти и убить, если она больше не нужна).

Зато в случае Access'а окончательный вид результатам можно придавать уже в самом Access'е, используя его SQL-запросы (a аксессному SQL в ряде случаев может позавидовать даже большой SQL Server - например, перекрестным запросам). Т.е., например, выгрузили из Аксапты данные в 3 аксессные таблицы, которые на ходу кодом X++ и создали. Потом кодом создали запрос, который заджойнил первую и вторую таблицу и выполнил группировку. Далее кодом создали второй запрос, который заджойнил результаты первого запроса с третьей таблицей. И окончательно предъявили пользователю для просмотра результат работы второго запроса. Причем в любой момент пользователь может обратиться к любому промежуточному этапу (все таблицы и запросы сохраняются в файле). Кроме того, владея основами построения запросов (даже не SQL, а просто тасканием элементов мышкой типа QBE), пользователь тут же самостоятельно еще пару-тройку выборок на тех же данных может выполнить.

Таким образом, пользователь фактически получает не просто отчет, а своебразный на ходу собранный временный АРМ, содержащий все необходимые данные без избыточности, которой в частности грешит плоская таблица Excel, в которую, поскольку она одна, запихиваются все нужные данные с неизбежным дублированием информации (обычно справочной). А если вывести данные Excel на несколько листов, то далее для эффективной их совместной обработки надо быть прилично продвинутым в формулах типа ИНДЕКС, ПОИСКПОЗ и прочих лукапах типа ВПР и ГПР.

P.S. Ну и конечно в Access есть же еще и собственный "репортинг" - объекты типа Reports, из которых тоже можно делать конфетки. В этом случае создание такого report'а кодом X++ с нуля, наверное, "перебор", но никто ж не мешает создать mdb-файл-шаблон со всеми необходимыми объектами: пустыми таблицами (потом только выводи в них!), вереницей запросов и отчетом (или даже несколькими отчетами).

Возможная экономическая выгода при данном подходе состоит также и в том, что создание такого файла-шаблона можно поручить программисту, от Аксапты весьма далекому.

Последний раз редактировалось Gustav; 04.08.2009 в 13:57.