Category Archive: George Kahn

Lead Developer, Boston, USA

Aspose.Report – Some advanced features for RDL element

As we know, most of business reports are not just based on a static SQL script, they will be varied by different situation such as field column or filter, our RDL element class model allow user to create their own data type and bind the data with our existed report element type. The following is the sample RDL script.
 <?xml version="1.0"?>
 <report name="TestDataBinding" startaction="define_data">
   <reportparameter id="sql.table.name" value="product" />
   <reportaction name="define_data" nextaction="generate_sql">
      <dataitemset id="sql.fields">
         <sqlfield id="sql.fields.1" field="category_name" alias="cat" />
         <sqlfield id="sql.fields.2" 
Continue Reading
Posted in George Kahn |

Aspose.Report – How RDL define the report layout

Inside the last post, I introduced how RDL deal with procedural flow and macro variables, the following is another sample that illuminates how RDL handle the report layout.

 <?xml version=”1.0″?>
 <report name=”TestReportItemlayout” startaction=”format_report” librarydir=”E:\reporttools\src\Aspose\ReportTools\ReportTools.RDLElement\bin\Debug”>
   <reportaction name=”format_report”>
      <log message=”format report!” level=”Debug” />
      <reportparameter name=”body.top” value=”5″ />
      <reportparameter name=”body.left” value=”5″ />
      <reportparameter name=”row.height” value=”10″ />
      <reportparameter name=”column.width” value=”50″ />
      <reportparameter name=”header.height” value=”25″ />
      <reportparameter name=”footer.height” value=”30″ />
      <reportparameter name=”body.column.count” value=”0″ />


      <reportitem left=”${body.left}” top=”${body.top}” label=”mainpage”>
         <reportitem height=”${header.height}” label=”header”>
            <reportitem left=”${int::parse(column.width) * rdl::get-zindex()}” 
Continue Reading
Posted in George Kahn |

Aspose.Report – A unit test case for RDL element types

The following is RDL script used by one of unit test cases.

 <?xml version=”1.0″?>
 <report name=”Simple” startaction=”prepare_query”  librarydir=”E:\reporttools\src\Aspose\ReportTools\ReportTools.RDLElement\bin\Debug”>
   <variable name=”var_action_1″ value=”gather_data” />
   <variable name=”var_action_2″ value=”format_report” />
   <reportaction name=”prepare_query” nextaction=”check_sql” description=”generate the Sql script for reports”>
      <log message=”generate the SQL for report query!” level=”Debug” />
 <!– Putting the RDL elements that are used for specifying or assembling the SQL script here –>
      <variable name=”action_result” value=”good” />
      <if condition=”${action_result==’bad’}”>
         <variable name=”var_action_1″ value=”done” />
      </if>
   </reportaction>
   <reportaction name=”check_sql” nextaction=”${var_action_1}”>
      <log message=”the SQL is 
Continue Reading
Posted in George Kahn |

Aspose.Report – The brief introduction to RDL element class and interface model

I am currently working on RDL element class and interface model, here is the brief introduction.

  •   BaseElement – Base abstract RDL element class

The BaseElement class is an abstract class for all of RDL elements; it provides three major functionality – Composite structure support, Serialize support, logging and debugging support.

  1. Composite structure support – considering the RDL is based on XML document, so every element is capable to hold the reference of its child elements. It also provides an
Continue Reading
Posted in George Kahn |

Aspose.Report – The module list for report tools

The following is the module list for upcoming report tools, the first release will include report build engine, visual report designer and data gather interface.

  • Report build engine.

The Report build engine could create and format a report based on a RDL (report definition language) script, RDL is an industry standard and a kind of extensible script, the different development tools vendor could add their own predefined syntax into it. Here is the brief introduction about which feature our RDL … Continue Reading

Posted in George Kahn |