Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #52, МАРТ 2005 г.

Оформление БД

Антон Деникин (ant_den@mail.ru)

Спецвыпуск: Хакер, номер #052, стр. 052-052-2


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

Использование картинок в таблице

Работая с данными, бывает полезно дополнять их соответствующими картинками. Тогда все становится нагляднее. DBGridEh позволяет связывать картинки из ImageList с данными и совмещать их (рис. 6).

Экспорт данных

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

Можно создавать различные OLE-объекты и, перебирая нужные записи в DataSet, копировать их в ячейки Excel. Этот способ довольно гибкий, так как позволяет формировать качественные отчеты, предварительно оформив их. То есть добавлять заголовки, формулы, делать выделение критических данных и т.д. Но вот копирование по строкам сильно замедляет создание отчета, особенно если данных много. К тому же у тебя самого уйдет много времени на программирование этого переноса данных.

Поэтому, когда речь идет не о создании красивого оформления, а о скорости и простоте экспорта данных, лучше использовать средства EhLib. Эта библиотека позволяет одним вызовом функции записывать содержимое таблички в форматы .xls, .rtf, .html, .txt и .csv. Также полезна функция копирования в буфер выделенных данных (рис. 7). Например, у тебя есть несколько офисов, которые в течение дня обмениваются данными о наличии у них количества товара. Менеджерам будет достаточно скопировать нужные данные и вставить их в ту же ICQ, в почтовую программу или в любое другое офисное приложение.

Итоговые значения

Часто данные в табличке не имеют смысла, если по ним не подведены итоги. Это может быть сумма продаж или общий процент прибыли и т.д. При использовании Footers в твоем "гриде" внизу добавляется новая строка и по каждому из столбцов в табличке считается сумма, среднее значение и число записей. При изменении данных в DataSet итоги пересчитываются автоматически. Причем количество Footers в таблице не ограничено, их можно навесить несколько штук, а по каждому столбцу выводить разные итоги (рис. 8). Если потом понадобится использовать значения Footers для отчета или для чего-нибудь еще, используй функцию, которая вытаскивает данные из итоговых значений.

Назад на стр. 052-052-1  Содержание  Вперед на стр. 052-052-3