Для эффективного управления предприятием нужно иметь полное представление о его деятельности. Эффективную обработку огромных массивов разнообразных сведений с целью представления их в обобщенном и сопоставимом виде, пригодном для анализа и принятия управленческих решений могут обеспечить только отчеты. Отчеты представляют собой мощное и гибкое средство отбора, обобщения и группировки данных, содержащихся в информационной базе. Пользователь может не только распечатать отчет, но и работать с ним как с интерактивным документом — изменить его параметры, перестроить, сформировать дополнительный отчет на основании отдельных документов уже сформированного отчета.
Прежде чем приступить к созданию отчета, необходимо дать ответ на следующие вопросы:
- с какой целью создается настоящий отчет, и чем он будет полезен?
- какая информация, и из каких таблиц должна быть представлена в отчете?
- отчет, какого вида вы предполагаете создать?
- предполагается ли группировка данных?
Четкие ответы на по ставленные вопросы облегчат вашу работу при создании отчета.
После ответа на поставленные вопросы можно переходить к созданию самого отчета в среде программирования Lazarus.
Когда наступает необходимость экспортировать данные из программы в табличный процессор, можно воспользоваться компонентом OLE. Но могут возникнуть проблемы, если на машине не установлен MS Office excel / OpenOffice Calc.
Рассмотрим две библиотеки, которые позволяют быстро создать отчеты различных типов и не используют компоненты OLE.
Первая из них – ZEXMLSS. Эта библиотека, позволяет создавать и загружать файлы формата excel 2002/2003 XML (SpreadsheetML / XML Spreadsheet) БЕЗ использования MS Office или Open Office. Работает в Lazarus (проверено с Lazarus 0.9.28.2 и FPC 2.2.4 под Linux-ом и Windows XP).
Основные возможности:
- Чтение/запись excel XML файлов в кодировках windows-1251, CP866, UTF-8, UTF-16 (Little Endian и Big End ian)
- Возможность установить каждой ячейке свой стиль (цвет и толщину рамки, цвет и стиль заливки, шрифт и выравнивание)
- Объединённые ячейки
- Возможность устанавливать размер бумаги и отступы
На рисунке 1 приведена схема соответствия различных документов, использующих библиотеку ZEXMLSS при формировании отчетов.
158
Рисунок 1 - Схема соответствия различных документов, использующих библиотеку ZEXMLSS при формировании отчетов
Основные классы библиотеки ZEXMLSS:
- TZEXMLSS - контейнер содержимого документа электронной таблицы
- TZsspXMLWriter - пишет в XML
- TZsspXMLReader - что-то вроде SAX парсера (может читать некоторые некорректные XML)
Вторая библиотека – FpSpreadsheet. FpSpreadsheet библиотека предо ставляет удобный способ создания и чтения табличных документов в различных форматах. Библиотека написана на очень гибкой основе, и поэтому её можно легко расширять поддержкой любого количества форматов.
В FPSpreadsheet поддерживаются два вида формул: строковый и RPN. Строковый вид записываются также как и в офисных приложениях, например, "ROUND (A1 + B1)", а RPN формулы записываются в обратной польской записи (Reverse Polish Notation (RPN)), например: A1, B1, Add, 0, ROUND
Нужно отметить, что библиотека FpSpreadsheet имеет встроенные процедуры ABS и ROUND.
ABS - возвращает абсолютное значение заданного числа. Принимает 1 аргумент. Пример: ABS (-1) = 1
ROUND - округляет число до заданного числа десятичных знаков. Принимает 2 аргумента, сначала округляемое число, а затем количество десятичных знаков. Второй аргумент по умолчанию равен нулю и может быть отрицательным.
Пример использования встроенной процедуры
// Write the formula E1 = ABS(A1)
SetLength(MyRPNFormula, 2);
MyRPNFormula[0].ElementKind := fekCell;
MyRPNFormula[0].Col := 0;
MyRPNFormula[0].Row := 0;
MyRPNFormula[1].ElementKind := fekABS;
MyWorksheet.WriteRPNFormula(0, 4, MyRPNFormula);
// Write the formula F1 = ROUND(A1, 0) SetLength(MyRPNFormula, 3);
MyRPNFormula[0].ElementKind := fekCell;
MyRPNFormula[0].Col := 0;
MyRPNFormula[0].Row := 0;
MyRPNFormula[1].ElementKind := fekNum;
MyRPNFormula[1].DoubleValue := 0.0;
MyRPNFormula[2].ElementKind := fekROUND;
MyWorksheet.WriteRPNFormula(0, 5, MyRPNFormula);
Чтобы создать проект, который использует библиотеку fpspreadsheet, необходимо добавить пакет fpspreadsheet_pkg в ваш Lazarus проект или добавить корневой каталог fpspreadsheet в опциях вашего компилятора, если используется другая IDE.
FPSpreadsheet можно скачать с SourceForge, также можно воспользоваться программным обеспечением subversion, или следующей командой: svn c адреса https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus- ccr/components/fpspreadsheet fpspreadsheet
Ниже приводим таблицу текущее состояние поддерживаемых форматов библиотеки FPSpreadsheet.
Таблица 1 - Текущее состояние поддерживаемых форматов библиотеки FPSpreadsheet
Формат |
Поддержка нескольких листов |
Поддержка Unicode |
Чтение |
Запись |
Текст |
Число |
Строковая формула |
RPN формула |
Excel 2.x |
Нет |
Нет** |
Работает |
Работает |
Работает |
Работает |
Не реализован о |
Работает |
Excel 3.0 |
Нет |
Нет** |
Не реализован о |
Не реализован о |
Не реализов ано |
Не реализован о |
Не реализован о |
Не реализова но |
Excel 4.0 |
Нет |
Нет** |
Не реализован о |
Не реализован о |
Не реализов ано |
Не реализован о |
Не реализован о |
Не реализова но |
Excel 5.0 (Excel 5.0 and 95) |
Да |
Нет** |
Работает* |
Работает |
Работает |
Работает |
Не реализован о |
Работает |
Excel 8.0 (Excel 97, 2000, XP and 2003) |
Да |
Да |
Работает* |
Работает |
Работает |
Работает |
Не реализован о |
Не реализова но |
Microsoft OOXML |
Да |
Да |
Не реализован о |
Не реализован о |
Не реализов ано |
Не реализован о |
Не реализован о |
Не реализова но |
Open Documen ŧ |
Да |
Да |
Работает |
Работает |
Работает |
Работает |
Не реализован о |
Не реализова но |
Примечания: (*) Некоторые ячейки могут быть возвращены пустыми из-за отсутствия реализации некоторых числовых и строковых форматов. (**) В форматах, не поддерживающих Unicode, данные сохраняются в виде ISO 8859-1. Обратите внимание, что при чтении/записи FPSpreadsheet предлагает использовать UTF-8, но эти данные будут преобразованы в ISO при чтении или записи на диск. Будьте осторожны - символы, которые не укладываются в ISO Latin 1, будут потеряны в этих операциях. |
Полное представление о деятельности предприятия необходимо для эффективного управления им. Эффективную обработку огромных массивов разнообразной информации в обобщенном и сопоставимом виде, пригодном для анализа и принятия управленческих решений могут обеспечить только отчеты. Использование библиотек ZEXMLSS и FPSpreadsheet позволяет разработчикам программного обеспечения, работающих со средой программирования Lazarus, создавать довольно мощные отчеты, даже если на персональном компьютере не установлен MS Office excel/OpenOffice Calc.
Литература
- http://linux.ru
- http://www.vitaliy.org/Node/View/63
- http ∶//avemey. com/zexmlss/index. php
- http ://wiki. Iazarus. freepascal. org/FP Spreadsheet/ru