Директен преглед на данни в Rave Reports - гъвкав механизъм за отчитане

версия за печат


Директен преглед на данни в Rave Reports - гъвкав механизъм за създаване на отчети http://www.delphikingdom.com/asp/viewitem.asp?catalogID=1065

Директен преглед на данни в Rave Reports - гъвкав механизъм за отчитане

В тази статия ще ви покажа как да използвате механизма Direct View View от Rave Reports, за да създавате отчети, когато нямате база данни и/или използвате свой собствен изглед на данни. По-специално искам да ви кажа как можете да включите изображение на TChart в отчет, без да го запазвате допълнително във файл или база данни.

Такива въпроси се срещат много често и, разбира се, не може да има категоричен отговор на този въпрос - има много начини да направите това. Според мен използването на Direct Data View предоставя доста гъвкави възможности за решаване на този проблем.

Освен това искам да говоря за използването на XML Data Binding - доста удобен механизъм за представяне на структурирани XML документи като набор от интерфейси в Delphi.

Приложение за директен преглед на данни

Нека да разгледаме използването на технологията Direct Data View като пример за проста задача. Да приемем, че трябва да направим програма, която да може да създава отчети, базирани на температурни данни от време на време. Да предположим, че имаме файл с данни за промяна на температурата и искаме да създадем отчет като този:

  • На първата страница ще има графика на температурните промени във времето;
  • Втората и следващите страници показват точните температурни стойности, представени като списък със стойности.

Нека данните за промяната на температурата с течение на времето да се съхраняват не в база данни, а в XML документ. В нашия случай можем да предложим следната структура на XML документ (файл Data.Xml):

Нуждаем се от Delphi 7 Enterprise или Architect - за да поддържаме работа с XML Data Binding с инсталиран пакет Rave Reports, който е включен в дистрибуцията на Delphi, започвайки от седмата версия.

След като Rave Reports получи необходимата информация, можете да затворите приложението, което описва източника на данни, и да продължите да разработвате формуляра за отчет, независимо от самото приложение.

Сега, след като имаме известна представа за работата, която следва, трябва да обърнем внимание на формата на данните, в който се съхранява информация за валутните котировки. Този формат може да бъде всеки, но тъй като беше решено да се използва XML като такъв, нека видим какви инструменти предлага Delphi за работа с XML, по-специално - XML ​​Data Binding.

XML Data Binding е механизъм за „обвързване“ на елементи на XML документ с интерфейси на Delphi, който има за цел да улесни работата на програмиста с XML данни и да подобри качеството на програмирането, както и ви позволява да идентифицирате някои често срещани грешки при преобразуване на типове на етапа на компилация.

Създайте нов проект за приложение: Файл -> Нов ... -> Приложение

Създаване на обвързване на данни:

    Подайте нова ... -> Други ... -> Обвързване на XML данни

Забележка:
Стойностите на всички елементи на XML документ са от тип Variant. Като задаваме типовете данни да бъдат обвързани в стъпка 3, ние по този начин казваме на генератора на интерфейса, към кой отметка трябва да се добави типът вариант. Например за елемент Timestamp трябва да трансформирате VarToDateTime. Съветникът използва тази функция за преобразуване на типа, но не включва модула, в който се намира тази функция. Може би това е дефект, който ще бъде отстранен в бъдещи версии. Във всеки случай трябва да добавим ръчно единицата с варианти към раздела за употреби.

Разглеждайки генерирания код, в допълнение към интерфейсите за обвързване на XML данни, можете да видите три глобални функции:

Именно те или по-скоро функцията LoadTemperature ще използваме за зареждане на данни за температурата. Останалите функции се използват, когато искаме да създадем нов XML документ с определена структура - NewTemperature или да получим желания клон от XML дървото на документа - GetTemperature.