На главную

Библиотека Интернет Индустрии I2R.ru

Rambler's Top100

Малобюджетные сайты...

Продвижение веб-сайта...

Контент и авторское право...

Забобрить эту страницу! Забобрить! Блог Библиотека Сайтостроительства на toodoo
  Поиск:   
Рассылки для занятых...»
I2R » Бизнес-софт
Разделы в "Бизнес-софт":
ASP - Аренда приложений1С:ПредприятиеСистемы управления финансамиУправление предприятиемСистемы управления продажами (CRM)Новое в разделе "Бизнес-софт"

Excel для разработчиков СУБД

Microsoft Excel уже давно стал стандартом de-facto для анализа и обработки информации. В то же время, разработчики приложений зачастую игнорируют его богатые возможности. Да и эффективно связать Excel и вновь созданное приложение, добившись от них должного взаимодействия, далеко не просто. Свою роль играют и медлительность COM-модели, и некоторые особенности Excel. В общем, налаживание надежной и достаточно скоростной "информационной магистрали" между Excel и вновь разрабатываемыми приложениями и информационными системами - дело совсем не простое, требующее значительного времени и немалых усилий. К счастью, существуют инструменты, которые позволяют свести непроизводительные затраты того и другого к минимуму.

Семейство продуктов XL Report от Afalina Co., Ltd. - это набор решений для платформ VCL (Borland Delphi и C++ Builder), ActiveX и .NET, которые позволяют максимально быстро переносить в Excel данные, а также (в определенных пределах) управлять их обработкой средствами Excel. Как следует из его названия, XL Report - это генератор отчетов. Однако почти ничего общего с привычными band-генераторами отчетов (Quick Report и прочие) он не имеет, поскольку широко использует возможности Excel при создании отчетов. Возможности XL Report выходят за пределы обычного формирования отчетов, поэтому правильнее будет считать его связующим звеном и электронной таблицей. Связь эта является односторонней, поскольку, несмотря на свои особенности, XL Report - это генератор отчетов, а средств для импорта данных из Excel в приложение в нем не предусмотрено. Использование Excel в этом случае открывает весьма широкие возможности для дальнейшего анализа и обработки данных. Кроме того, можно использовать многочисленные встроенные инструменты Excel (условное форматирование, диаграммы, сводные таблицы) для "оживления" отчетов и повышения их доказательно-гипнотической силы.

Форма в Delphi IDE с источником данных и невизуальным компонентом XL Report (выделен)

Для всех платформ XL Report представлен лишь одним невизуальным компонентом. XL Report сконструирован таким образом, чтобы максимально облегчить его изучение и использование. Поэтому создание отчетов на его основе в значительной мере осуществляется в шаблонах этих отчетов - книгах Excel, что позволяет в простых случаях свести программирование к абсолютному минимуму. Фактически, иногда весь кодинг может заключаться в вызове метода Report. Все остальные настройки осуществляются через Object Inspector или Property Page компонента.

XL Report позволяет гибко варьировать способы передачи данных. Обычный способ передачи через массив Variant, применяемый в OLE/COM-модели, является достаточно медлительным и неудобным, поэтому используется редко. Кроме того, при его применении возможны ошибки, связанные с распознаванием типов данных. В связи с этим, применяемым по умолчанию методом является Fast DDE, работающий быстро и без ошибок. Еще одним доступным методом является передача через буфер обмена в формате CSV (достаточно быстро, но возможны ошибки распознавания). Его использование оправдано при работе с длинными текстовыми фрагментами, поскольку Fast DDE ограничивает максимальную длину передаваемых строк 255 символами на строку.

XL Report может осуществлять экспорт данных в двух режимах. Результатом в обоих случаях является лист Excel, содержащий извлеченные из источника данные. Расположение данных на листе отчета определяется шаблоном - электронной таблицей, которая, помимо обычных констант, формул и форматирования Excel, содержит ссылки на извлекаемые данные.

Пример книги-шаблона. Ссылки в ячейках показаны для наглядности. На самом деле, в ячейках с этими ссылками будет отображаться сообщение #ИМЯ?. Обратите внимание на ключи сортировки в служебной строке

В первом случае все данные из текущей записи источника (таблицы или запроса) копируются в скрытый лист Excel. В принципе, избыточной информации можно и не передавать, указав в определенной ячейке листа шаблона, содержимое каких именно полей вам необходимо. Извлечь данные из скрытого листа просто. Ячейки скрытого листа, содержащие соответствующую информацию, именуются в таком формате: "[Имя таблицы]_[Имя столбца]". Например, если в ячейку шаблона введена формула "=tblCustomers_PHONE", то при генерации отчета в этой ячейке окажутся данные поля "PHONE" из текущей записи таблицы "Customers". Учитывая, что после генерации отчета эти данные берутся уже из скрытого листа самого Excel, а не из базы данных, в готовый отчет (а не только в шаблон) можно вставить сколько угодно таких формул-ссылок.

Пример готового отчета

Второй способ немного напоминает работу обычных band-генераторов отчетов. В шаблоне задается специальная область данных, в которую и производится вывод. В этой области точно таким же способом, как в первом случае, задаются ссылки на имена источников (таблиц и запросов) и столбцов. При этом, если размеры области являются недостаточными для вывода всей информации, в нее добавляются дополнительные ячейки (именно ячейки, поскольку дополнительные строки в таблицу не добавляются). Области могут быть безо всяких ограничений вложены друг в друга, что отражает привычные связи между таблицами "один-ко-многим".

Предназначение обоих режимов очевидно. Первый позволяет выводить одну строку таблицы данных или результата выполнения запроса - иначе говоря, информацию, касающуюся какого-либо одного объекта. Второй режим позволяет передавать в Excel групповые выборки. Единицей, с которой в данном случае работает XL Report, является список данных (по терминологии Excel). Диапазон данных - это прямоугольное поле ячеек Excel, которое удовлетворяет следующим требованиям: оно поименовано, содержит не менее двух строк и двух столбцов (крайний левый столбец и нижняя строка являются служебными), может содержать данные, формулы и пустые ячейки; ячейки не должны быть объединены. В служебных строке и столбце указываются опции: сортировка, автофильтр, группирование, промежуточные итоги, форматирование и т.д. В прочих ячейках области указываются ссылки на поля данных, из которых в отчет должна быть перенесена информация. Заголовки с названиями столбцов в диапазон не включаются, но подразумеваются.

XL Report может выводить данные и в область, которая не отвечает всем перечисленным требованиям. Однако в этом случае не может быть применена автообработка при генерации отчетов. Это связано с архитектурными ограничениями Excel, а не XL Report, поскольку операции с данными при формировании отчета выполняет самим Excel. Тем не менее, возможности автоматизации при этом не теряются - просто в этом случае все необходимые действия придется осуществлять с помощью VBA-макросов. XL Report поддерживает вызов макросов как перед генерацией отчета, так и после него, что дает практически неограниченные возможности по вычислению параметров запроса и управлению внешним видом построенного на его основе отчета.

С помощью VBA могут создаваться также сводные таблицы (специальные многомерные таблицы в Excel, являющиеся мощным средством для анализа данных) и диаграммы. Впрочем, сводные таблицы и диаграммы можно создавать и без использования VBA. Сводная таблица может быть сгенерирована XL Report, если на листе шаблона в левой нижней ячейке области данных указана опция pivot с параметрами требуемой сводной таблицы. Последние версии продукта также поддерживают возможность создания диаграмм прямо при редактировании шаблона отчета. При непосредственной генерации отчета они обновляются, принимая вид, соответствующий содержащейся в отчете информации.

Шаблон для генерации сводной таблицы (Pivot Table)

В качестве источников данных XL Report может использовать всех наследников TDataSet (в варианте под VCL), DAO, ADO и RDO Recordsets (в варианте под ActiveX), все классы, реализующие IListSource (в варианте под .NET), а также произвольные наборы данных - вариантные массивы, одиночные значения или списки, формируемые "на лету".

XL Report поддерживает работу с Excel от версии 97 и выше. Все варианты комплектуются достаточно объемистым (разумеется, электронным) "руководством для разработчика" и многочисленными примерамы. В варианте для VCL это - проекты для Delphi и C++ Builder, для ActiveX - база данных Access и VB6-проект, а для .NET-редакции - проект на C#.

Для каждой из платформ XL Report имеет стандартную и профессиональную редакции. Стандартная редакция позволяет быстро освоить продукт и приступить к его использованию. В свою очередь, профессиональная редакция позволяет задействовать богатый набор возможностей XL Report.

Кроме того, XL Report может поставляться с исходными текстами, что дополнительно облегчает изучение и понимание принципов его действия. Лицензионное соглашение допускает модификацию продукта для собственных целей.

Технология XL Report насчитывает уже пятилетнюю историю. По информации от разработчиков, компании Afalina Co., Ltd., готовится к релизу новое поколение продуктов, основанных на этой технологии. В них будут сняты некоторые ограничения, присущие нынешнему XL Report, появятся дополнительные возможности, а главное - список поддерживаемых "партнерских" приложений перестанет исчерпываться только MS Excel. В мире есть еще немало других хороших табличных процессоров.

Дмитрий Лобач
SoftKey.info

Подпишитесь на рассылку
Все о WEBСтроительстве
Подписка на Subscribe.Ru
Дискуссионная рассылка
для веб-мастеров

Подписка на MailList.Ru
Подписка на Content.Mail.Ru

Другие разделы
ASP
1С:Предприятие
Финансовые программы
Управление предприятием
CRM системы
Новое в разделе
I2R-Журналы
I2R Business
I2R Web Creation
I2R Computer
рассылки библиотеки +
И2Р Программы
Всё о Windows
Программирование
Софт
Мир Linux
Галерея Попова
Каталог I2R
Партнеры
Amicus Studio
NunDesign
Горящие путевки, идеи путешествийMegaTIS.Ru

2000-2008 г.   
Все авторские права соблюдены.
Rambler's Top100