STROYDEVIZ ru
» » Delphi таблица с объединением ячеек

Delphi таблица с объединением ячеек

Рубрика : Блог

Delphi Plus - ежедневные новости IT-технологий Delphi site: При создании программных продуктов, которые предоставляют пользователю некую отчётную информацию, всегда встаёт вопрос — какой генератор отчётов использовать?

Принятие решения зависит от сложности программы, от её направленности, от круга задач, ей решаемых. В каком-то случае достаточно будет QuickReport, кто-то обратиться к более серьёзному FastReport, а разработчики на Visual Studio наверняка предпочтут Crystal Reports.

В конце концов, есть возможность самим разработать и написать генератор отчётов для конкретных целей. Но все эти генераторы отчётов формируют документы в своих собственных форматах. Доступ извне к таким файлам труден или невозможен в принципе. Конечно, экспортирование в другие, более распространённые и популярные форматы, поддерживаются серьёзными разработками, такими, как FastReport. Но это, скорее, вынужденная мера.

Так, работая с FastReport и получая в нём все отчёты, вам, допустим, ещё необходимо преобразовывать некоторые из них в формат MS Excel. Более того, часто данные, передаваемые в отчёт, остаются неизменными по структуре, а внешний вид документов может динамично меняться во времени.

Следовательно, требуется решение, которое позволяет самому пользователю менять структуру документа при одинаковом наборе данных. Или, по крайней мере, это решение даёт достаточно свобод пользователю при формировании внешнего вида отчёта с неизменным набором данных. Следует учитывать, что доступ к документам должен быть и после формирования отчётов, на случай необходимости "что-то там подправить или изменить".

И фактор пользователя, привыкшего в виду окон MS Office, и наотрез отказывающегося воспринимать что либо новое, также необходимо учитывать. Отношение к новым форматам и к непривычному внешнему виду вызывает недовольство и недоумение у заказчика, и это давно известно разработчикам. Ну да хватит о грустном, лучше поговорить собственно о Afalina XL Report, ради чего и было такое большое лирическое отступление. Поэтому часто здесь будут описываться очевидные решения для подготовленных пользователей Excel, но совсем не очевидные для Delphi-разработчиков, привыкших создавать свои отчеты с помощью стандартных средств.

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

Также перед работой в программе Excel необходимо включить доверительный доступ к VB-проектам. Четвёртая версия пакета, а именно такая была доступна для загрузки и ознакомления, может работать с тремя версиями MS Excel — от 97 SR2 до В этой версии разработчики многое основательно переделали.

По-прежнему в палитре компонентов XL Report будет представлен всего одним компонентом. Но изнутри XL Report значительно изменился и теперь представляет собой иерархию классов, позволяющую создавать несколько уровней абстракций. Разработчику и конечному пользователю это даёт множество преимуществ. Основываясь на абстрактных классах, на которых построен XL Report, строится описание опций шаблона и их обработка. Допускается перегрузка существующих опций, расширение её возможностей или даже их полное переопределение.

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


Товар(а/ов) в результатах поиска

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

Для этого в шаблоне создаётся область главного и область подчинённого наборов данных и область подчинённого "вкладывается" в область главного. А в элементе DataSources указывается значение свойства MasterSource. Глубина вложенности таких построений может быть неограниченной, требования к дизайну областей — минимальны. Возможность создавать композитные отчёты позволяет эффективно управлять процессом создания отчётов по сложно структурированным данным любых приложений.

Разработчикам удалось найти алгоритм быстрой передачи больших объёмов данных в книги Excel, поэтому использование OLE совершенно не отражается на производительности. Пакет работает на раннем связывании и использует только Native-типы данных, что также положительно отзывается на времени генерации документов. Для того, чтобы эффективно использовать XL Report, требуется разделить задачи между приложениями. Пусть мы будем считать, что MS Excel является частью нашего приложения.

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

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

XL Report не является band-ориентированным. Такие понятия, как Footer, Header, Detail, тут отсутствуют. В этом плане разработчику предоставлена полная свобода. Компоненты XL Report позволяют строить отчёты по одному или нескольким наборам данных или их потомков.

В основе XL Report лежит компонентный класс TxlReport, инкапсулирующий необходимые методы и свойства для доступа к одной книге Excel посредством OLE и передачи в неё данных. Вся работа построена на шаблонах XLS-файлах — книгах Excel, содержащих описание формы отчёта, опции книги, листов и областей отчёта.

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



объединением delphi ячеек с таблица


Опубликованные свойства XL Report позволяют сделать процесс построения отчётов максимально простым. Все примеры, приведённые в статье, взяты из одного демонстрационного проекта — QDemo. Проект содержит формы-примеры соответственно темам по построению отчётов. Каждый из проектов демонстрирует решение какой либо конкретной задачи. Почти каждая форма содержит блок комментариев, в котором описаны тонкости шаблона отчёта. Необходимо учитывать, что данные примеры приведены только для того, чтобы сохранить простоту и ясность примеров этого проекта.

Сложный код, нестандартные приёмы программирования и громоздкие компоненты не использовались. Многие простейшие первичные документы представлены всего двумя таблицами с отношением "один-ко-многим". Присвоим компонентам таблиц и источникам данных соответствующие имена и свяжем их связью "один-ко-многим".



таблица с объединением ячеек delphi


Также рядом с навигатором для таблицы Customers. Мы изменили свойство Caption у этих кнопок на, соответственно, "Report" и "Template". Проделав все это и сделав активными Active: Для создания отчета мы добавили на форму один экземпляр этого компонентного класса и назвали его xlReport.

Так как практически вся работа по созданию отчета сводится к проектированию шаблона, нам необходимо создать этот шаблон. Для этого нажатием правой кнопки мыши вызовем на компоненте xlReport контекстное меню и выберем пункт "Edit template…" можно просто дважды щелкнуть мышью на этом компоненте. Редактором компонента для TxlReport является Microsoft Excel.

Поэтому в результате этого действия произойдет вызов Excel и добавление в него пустой книги. Эту книгу мы и будем использовать как шаблон будущего отчета. В этом свойстве указывают имя и путь к книге Excel, которая используется в качестве шаблона.


Покупки по категориям

Если имя книги-шаблона указано, то по вызову "Edit template…" будет открыта именно эта книга. Разрешено опускать путь к книге-шаблону. В таком случае подразумевается, что во время редактирования проекта шаблон расположен в пути проекта там, где находится файл проекта -.

Допустимо использование и относительного пути ".. Создадим шаблон отчета, который отобразит текущую видимую запись из "мастер-таблицы" Customer и все подчиненные ей записи из таблицы Orders. Не стоит обращать внимание на значения ячеек NAME? Excel просто не находит ячеек с такими именами в шаблоне. Но это только пока.


Delphi Plus - ежедневные новости IT-технологий

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

Для вывода всех счетов заказчика нам необходимо выделить область, имеющую определённый формат.


Для этого в шаблон вставляется таблица. Как вы понимаете, никаких ограничений тут не накладывается, вы сами определяете, как будет выглядеть ваша таблица. Затем формируется "нулевая строка" набора данных — в ячейки записываются формулы полей этих наборов данных. Из рисунка видно, что столбцы D и E являются скрытыми, но мы всё равно вписали в них формулы полей. Это было сделано потому, что мы хотим разместить в ячейках G полный адрес отгрузки, который, и состоит из этих двух полей.

Используя XL Report, вы можете применять и обыкновенные формулы Excel. Из формулы видно, что полученное значение будет объединением скрытых ячеек столбцов D и E. Чтобы ещё раз показать применение формул Excel, используем полей SpecialTax, которое всегда меньше стандартного TaxRate на величину значения ячейки L4. Итак, на текущий момент мы имеем шаблон отчёта, в котором закреплена область прокрутки за шапкой таблицы, применено различное форматирование ячеек, которое придаст отчёту более удобный вид.



Delphi таблица с объединением ячеек видеоматериалы




В качестве примера можно выделить цветом те записи, оплата по которым произведена картой Visa. Ячейку G13, содержащую метод оплаты, условно отформатируем так:



ячеек delphi таблица с объединением







Комментарии пользователей

Я удалил это вопрос
25.09.2018 12:33
Поздравляю, замечательная идея и своевременно
05.10.2018 20:13
Я Вам очень благодарен за информацию.
10.10.2018 04:11
Этот топик просто бесподобен :), мне очень нравится .
16.10.2018 00:11
Большое спасибо за помощь в этом вопросе. Я не знал этого.
16.10.2018 22:40

  • © 2010-2017
    stroydeviz.ru
    RSS | Sitemap