OLAP - это просто
fixin
http://koenigsoft.boom.ru/
Удивительное - рядом ...
По ходу работы мне часто требовалось
делать сложные отчеты, я все время пытался найти
в них что-то общее, чтобы составлять их более
просто и универсально, даже написал и
опубликовал по этому поводу статью.
Однако мою статью раскритиковали и сказали, что
все те проблемы, которые я поднял, давно уже
решены в OLAP (www.molap.rgtu.ru) и
порекомендовали посмотреть сводные таблицы в
EXCEL.
Это оказалось настолько простым, что приложив к
этому свои гениальные ручонки, у меня получилась
очень простая схема для выгрузки данных из 1С или
любой другой базы данных (в дальнейшем под 1С
подразумевается любая база данных) и анализа в
OLAP.
Я думаю, многие схемы выгрузки в OLAP слишком
усложнены, я выбираю простоту.
Характеристики:
1. Для работы требуется только EXCEL 2000.
2. Пользователь сам может конструировать отчеты
без программирования.
3. Выгрузка из 1С в простом формате текстового
файла.
4. Для бухгалтерских проводок уже имеется
универсальная обработка для выгрузки,
работающая в любой конфигурации. Для выгрузки
других данных имеются обработки-образцы.
5. Можно заранее сконструировать формы отчетов, а
затем применять их к разным данным без их
повторного конструирования.
6. Довольно хорошая производительность. На первом
длительном этапе данные сначала импортируются в
EXCEL из текстового файла и строится куб OLAP, а затем
довольно быстро на основе этого куба может быть
построен любой отчет. Например, данные о продажах
товара по магазину за 3 месяца с ассортиментом 6000
товаров, загружаются в EXCEL 8 минут на Cel600-128M,
рейтинг по товарам и группам (OLAP-отчет)
пересчитывается за 1 минуту.
8. В настоящее время разработаны способы анализа движений или остатков, но не движений и остатков вместе, хотя это в принципе возможно.
Что такое OLAP: (www.molap.rgtu.ru)
Предположим у вас есть торговая сеть. Пусть данные о торговых операциях выгружены в текстовый файл или таблицу вида:
Дата | Месяц | Неделя | Вид | Товар | Склад | Количество | Сумма | Контрагент | Автор |
Дата - дата операции
Месяц - месяц операции
Неделя - неделя операции
Вид - закуп, продажа, возврат, списание
Контрагент - внешняя организация, учавствующая в
операции
Автор - человек, выписавший накладную
В 1С, например, одна строка этой таблицы будет
соответствовать одной строке накладной,
некоторые поля (Контрагент, Дата) при этом
берутся из шапки накладной.
Данные для анализа обычно выгружаются в OLAP-систему
за определенный период времени, из которого в
принципе можно выделить другой период
применением фильтров загрузки.
Эта таблица является исходной для OLAP-анализа.
Далее определяются, какие из полей будут суммироваться (Данные) , какие будут являться уровнями группировок (Измерения), какие данные из таблицы брать(Фильтр):
Отчет | Измерения | Данные | Фильтр |
Сколько товара и на какую сумму продается за день? | Дата, Товар | Количество, Сумма | Вид=продажа |
Какие контрагенты поставили какой товар на какую сумму по месячно?љљљ | Месяц, Контрагент, Товар | Сумма | Вид=закуп |
На какую сумму выписали операторы накладных какого вида за весь период отчета? | Автор, Вид | Сумма | љ |
Пользователь сам опрределяются, какие
из полей таблицы будут Измерениями, какие
Данными и какие Фильтры применять. Система сама
строит отчет в наглядной табличной форме.
Измерения можно размещать в заголовках строк или
столбцов таблицы отчета.
Как видно, из одной простой таблицы можно
получить множество данных в виде различных
отчетов.
Как использовать у себя:
Данные из дистрибутива скачайте архив olap.zip љ распаковать именно в каталог c:fixin. Прочитайте readme.txt и выполните все инструкции в нем.
Сначала вы должны написать обработку,
которая выгружает данные из 1С в текстовый файл (таблицу).
Вам нужно определить состав полей, которые будут
выгружаться.
Дата|ДеньНедели|Неделя|Год|Квартал|Месяц|Документ|Фирма|Дебет|ДтНоменклатура
|ДтГруппаНоменклатура|ДтРазделНоменклатура|Кредит|Сумма|ВалСумма|Количество
|Валюта|ДтКонтрагенты|ДтГруппаКонтрагенты|КтКонтрагенты|КтГруппаКонтрагенты|
КтРазныеОбЪекты
Где под префиксами Дт(Кт) идут субконто Дебета (Кредита), Группа - это группа данного субконто (если имеется), Раздел - группа группы, Класс - группа раздела.
Для торговой системы поля могут быть такие:
Направление|ВидДвижения|ЗаНал|Товар|Количество|Цена|Сумма|Дата|Фирма
|Склад|Валюта|Документ|ДеньНедели|Неделя|Год|Квартал|Месяц|Автор
|КатегорияТовара|КатегорияДвижения|КатегорияКонтрагента|ГруппаТовара
|ВалСумма|Себестоимость|Контрагентљ
Для анализа данных используются таблицы
Анализ движений.xls ( Анализ
бухгалтерии.xls ). Открывая их, не отключайте
макросы, иначе вы не сможете обновлять отчеты
(они запускаются макросами на языке VBA). Исходные
данные эти файлы берут из файлов C:fixinmotions.txt (C:fixinbuh.txt),
в остальном они одинаковые. Поэтому возможно, вам
придется скопировать ваши данные в один из этих
файлов.
Чтобы в EXCEL загрузились ваши данные, выберите или
напишите свой фильтр и нажмите кнопку Сформировать
на листе Условия.
Листы отчетов начинаются префиксом Отч.
Перейдите на лист отчета, нажмите Обновить
и данные отчета изменятся в соотсветсвии с
последними загруженными данными.
Технические комментарии:
При выгрузке данных из 1С пользователь
выбирает папку, куда ему выгружать файл. Я сделал
это потому, что вполне вероятно в ближайшем
будующем будут выгружаться несколько файлов (остатки
и движения). Затем по нажатию в Проводнике кнопки
љ Отправить --> На OLAP-анализ в EXCEL 2000
данные копируются из выбранной папки в папку
C:fixin. (чтобы эта команда появилась в списке
команды Отправить и нужно скопировать
файл На OLAP-анализ в EXCEL 2000.bat в каталог
C:WindowsSendTo) Поэтому выгружайте данные сразу давая
имена файлам motions.txt или buh.txt.
Формат текстового файла:
Первая строка текстового файла - заголовки
колонок разделенные |, остальные строки
содержат значения этих колонок, разделенные
|.
Для импорта текстовых файлов в Excel используется
Microsoft Query (составная часть EXCEL) для его работы
необходимо наличие в каталоге импорта (C:fixin)
файла shema.ini, содержащего следующую информацию:
[motions.txt]
ColNameHeader=True
Format=Delimited(|)
MaxScanRows=3
CharacterSet=ANSI
[buh.txt]
ColNameHeader=True
Format=Delimited(|)
MaxScanRows=3
CharacterSet=ANSI
Пояснение: motions.txt и buh.txt - это название
раздела, соответствует имени импортируемого
файла, описывает, как импортировать текстовый
файл в Эксель. Остальные параметры означают, что
первая строка содержит названия колонок,
разделителем колонок является |, набор
символов - Windows ANSI (для ДОС - OEM).
Перечень полей не нужно нигде описывать - EXCEL и OLAP сами определят, какие поля содержатся в файле по заголовкам в первой строке.
Внимание, проверьте ваши региональные
настройки Панель управления --> Региональные
настройки . В моих обработках числа
выгружаются с разделителем запятая, а даты в
формате ДД.ММ.ГГГГ.
Дополнительно:
Рекомендуется также изучить любую книгу по EXCEL 2000
с описанием
сводных таблиц.
Данные при нажатии кнопки Сформировать
загружаются в сводную таблицу на листе База,
а из этой сводной таблицы и берут данные все
отчеты на листах Отч.
Я понимаю, что любители MS SQL Server и мощных баз
данных начнут ворчать, что у меня слишком все
упрощено, что моя обработка загнется на годичной
выборке, но в первую очередь я хочу дать
преимущества OLAP-анализа для средних организаций.
Я бы позиционировал этот продукт как инструмент
годичного анализа для оптовых компаний,
квартального анализа для розничной торговли и
оперативного анализа для любой организации.
Мне пришлось повозиться с VBA, чтобы данные
брались из файла с любым списком полей и можно
было заранее готовить бланки отчетов.
Описание работы в EXCEL (для
пользователей):љ
Инструкция по использованию отчетов:
1. Отправьте на анализ выгруженные данные
(уточните у администратора). Для этого нажмите
правой кнопкой на папке, в которую у вас
выгрузились данные из 1С и выберите команду Отправить,
затем На OLAP-анализ в EXCEL 2000.
3. Выберите Значение фильтра, нужные вам фильтры можно дописать на закладке Значения.
4. Нажмите кнопку Сформировать, при этом выгруженные данные будут загружены в EXCEL.
5. После загрузки данных в EXCEL, можно смотреть различные отчеты. Для этого достаточно нажать кнопку Обновить в выбранном отчете. Листы с отчетами начинаются на Отч.
Внимание! После того как вы поменяете значение фильтра, нужно еще раз нажать кнопку Сформировать, чтобы данные в EXCEL перезагрузились из файла выгрузки в соответствие с фильтрами.
Другие статьи автора:
Визуализация данных
Комментарии
9