Introduction to the Delphi Information Processing framework

Big parts of software are made up of transformations of existing information. For example, reports are just fancy ways of showing information that is stored in some other form in the database. Many of these transformations can be thought of as being composed of more primitive, and thus reusable, transformations.

The goal of the Delphi Information Processing (DIP) framework is to deliver these sorts of reusable transformations as Delphi components so that complex information processing networks can be built up from simple components, connected at design time. This brings RAD to the processing layer of your application, just as the VCL brings RAD to the user interface and database layers.

A longer introduction, as well as more technical documentation, can be found in the documentation section.


Example: Reporting

Reporting example

In this example, the TDipXmlDataSetExporter component named Table2Xml exports the data in its dataset (the component named Table) to an XML file. This file is then moved to the Templates application directory, where it is converted to HTML by the TDipXsltTransformer component named Xml2Html, and deleted by the TDipFileDeleter component named DeleteXml. The HTML file is then moved to the Reports application directory, and presented to the user by the TDipFileViewer component.

Al this can be achieved by placing a few component on a data module, linking them using the Object Inspector, and setting some properties, as shown below:

Table2Xml MoveXml
Xml2Html DeleteXml
MoveHtml ViewHtml

Table2Xml needs to be linked to the data set to be exported, Table. The TDipFileMover components need to have their DestinationFolder properties set, and the TDipXsltTransformer its Template property. All the DIP components have their AutoRun properties set to arOnAnyInput, so that they start processing any input whenever it becomes available. The exception is Table2Xml, that does not have any input, and thus cannot be run automagically. Instead, it needs to have its Run method called to start off the information processing network. This is taken care of by a TDipAction component that is linked to Table2Xml:


More examples