понедельник, 3 декабря 2012 г.

Генератор отчетов

Было время столкнулся с тем что у нас на предприятии использовалась(и используется) программа для ведения кадрового учета, она всем хороша, падает регулярно, но что делать у всех свои недостатки.
Переписывать программу никто добро не даст, и не давал(так как за неё уплочены не малые деньги), а отделу кадров работать надо. В принципе программа(указывать какая не буду дабы избежать нежелательных комментариев) всю информацию ведет как надо, но вот отчетная информация страдает, отчеты формируются часами, и не всегда так как того  ожидает пользователь. Я как программер вынужденный сопровождать сие чудо вынужден был придумать инструмент для генерации отчетов таких каких мне захочется, и работающих как можно быстрее. Тут то и появилось ТЗ:
1) Нужно получение информации из базы данных персонала
2) Критерии отбора должны быть гибкие и понятные для человека занимающегося сопровождением программы
3) Должна быть гибкость в выборе данных
4) Должна быть возможность использовать генератор отчетов не только с программой работающей у нас.

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

Для подключения решил использовать строку подключения ADO. Конкретно наша программа работала с DBF файлами :( печаль, но что делать. Изучив заголовок файла пришел к выводу что самый подходящий драйвер VFP(Visual FoxPro), хотя программа работает не на Фоксе, но Фокс благополучно разобрал типы данных .... кроме дат, зашифрованных в полях.
Для работы через ADO использовал драйвер VFPOLEDB, саму строку подключения использовал примерно вот такую:

Provider=VFPOLEDB.1;Data Source=#SOURCE#;Mode=Share Deny None;Extended Properties="";User ID="";Password="";Mask Password=False;Cache Authentication=False;Encrypt Password=False;Collating Sequence=MACHINE;DSN=""

Как среду разработки выбрал Delphi 7, под рукой большего не было, на связку PHP/Apach/MySql пришлось забить, потому как в сети http протокол зарублен на уровне сис.админа, нет ни интернета и ДНС не фурычит в сети, вот такие вот сложные дела.

Собственно решение было найдено, к базе данных коннектится через ADO, главное что бы драйвер под ADO существовал, после установки соединения к базе данных выполняем SQL запрос, полученный результат представляем в виде таблицы, с которой есть импорт в CSV формат, который благополучно может переварить MS Excel/Open Office.

Генератор отчетов был реализован, если вдруг кому надо: бесплатно можно пробовать

https://docs.google.com/open?id=0B888Vt6ak9afTUpQVDlfQjdZbmc

Комментариев нет:

Отправить комментарий