Home RAP
New Blog Posts: Merging Reports - Part 1 and Part 2

Engine and PrintPosRect

edited August 2005 in RAP
Hi,

I've posted an issue in d-m.p.r.subReports for summary alignment at bottom
of the page.
It was sent to me an example called SummaryAlignBottom. It worked really
fine. Now I'm trying to implement it in RAP. Almost everything is running
fine, including TList creation and management and onDrawCommandCreate.
Actualy there is only two lines of code that I didn't find out how to write
in RAP. They are:

liSummaryTop := ppReport1.Summary.PrintPosRect.Top;
liNewSummaryTop := ppReport1.Engine.PageBottom -
ppReport1.Summary.SpaceUsed;

More specificaly, I didn't get access to Summary.PrintPosRect.Top and
Engine.PageBottom.

Thank you for your attention.

--

-----
Ricardo Acras
Acras Desenvolvimento de Sistemas
www.acras.net
ricardo@acras.net
+41-223-9109
+41-9974-3201
+42-9108-5672

Comments

  • edited September 2005

    You will need to extend RAP with one or more custom functions to do what you
    need.
    (Not all properties and functions are exposed to RAP.)

    --------------------------------------------------
    Article: Extending RAP
    ---------------------------------------------------

    There are two very simple and powerful techniques to extend the capabilities
    of RAP infinitely. These are summarized below and covered in more detail in
    the RAP.hlp online help. Demos and tutorials are installed to
    RBuilder\Demos\RAP. The tutorial text is located in RAP.hlp.


    1. RAP Pass-Through Functions

    These are functions that appear in the Language tab of RAP's Code Toolbox.
    These functions are written in Delphi and can be called from RAP. RAP's
    pass-through function architecture enable's developers to add new built-in
    functions to RAP's code toolbox.

    2. Extend RAP's RTTI

    RAP's Run-time Type information defines what classes and properties can be
    accessed via RAP. By default the published properties of any class that is
    registered with Delphi's RegisterClass procedure is recognized by RAP. In
    addition many of the public properties and methods of ReportBuilder classes
    are exposed.


    --
    Tech Support mailto:support@digital-metaphors.com
    Digital Metaphors http://www.digital-metaphors.com


    --
    Nard Moseley
    Digital Metaphors Corporation
    http://www.digital-metaphors.com



    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited September 2005
    >

    Spetacular.
    It worked fine here. All my needs are ok. This question is just curiosity.
    To solve the engine.PageBottom issue I created a function named
    getReportPageBottom, which gets a report as parameter and returns an
    integer. Is it possible to extend a RTTI that is already exported like
    TppReport?
    I did the TDatabase RTTI tutorial and it works fine.

    Thanks.
    Ricardo Acras
  • edited September 2005

    Yes. TraTppReportRTTI is defined in ppReport.pas. You could descend from
    this class and add more properties. Then in the initialization section of
    your unit unregister the existing class and register your custom RTTI class.

    example:


    Initialization

    raUnRegisterRTTI(TraTppReportRTTI); // unregister the existing RTTI class
    raRegisterRTTI(TmyTppReportRTTI); // register your custom RTTI class




    --
    Nard Moseley
    Digital Metaphors Corporation
    http://www.digital-metaphors.com


    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited September 2005
    It worked perfectly, thank you again.

    acras

This discussion has been closed.