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

nardmoseley

About

Username
nardmoseley
Joined
Visits
8,265
Last Active
Roles
Administrator

Comments

  • Tony,

    You can modify the implementation section of the source units, but not the
    interface section.

    To add additional output formats, create a descendant of TppFileDevice and
    register it with ReportBuilder. For the so…

  • I do not think there are any fixes for anything like that in RB 7.04, I
    thought perhaps you were using an older version like RB 6.x

    We have not had other reports of this issue, so it may be that you have a
    very complex cas…

  • 1. If you are not using the latest release, RB 7.04, then try downloading a
    trial version and perform the same test.

    2. If you still have an issue with the latest release, please create a
    simple, minimal example that we ca…

  • I created an example that you can download...

    www.digital-metaphors.com/tips/DadeUpdateDatabaseName.zip


    --


  • Modify your Delphi library path from RBuider\Lib to RBuilder\Source and set
    the debugger options to break on Delphi language exceptions. Then run the
    same test.

    --
    Nard Moseley
    Digital Metaphors Corporation

  • -------------------------------------------------
    Tech Tip: How to modify the DatabaseName stored
    with a DADE Query
    -------------------------------------------------

    Currently when DADE is used to create dat…

  • Here is an example of a report that contains a custom query and two detail
    queries on orders. The first orders query contains an autosearch criteria on
    SaleDate, the second query contains an a search criteria (but not
    autosearch…

  • I think the issue here is that it is too late to add autosearch criteria -
    the autosearch dialog has already been displayed.

    I think you want to define the second search criteria using the Query
    Designer and define it as A…


  • The report, datapipeline, etc. all need to have the same Owner. The Owner is
    typically a Form/DataModule. This enables the all of the object references
    to be resolved when the .rtm is loaded. (RB is using standard Delphi
    s…

  • Unfortunately we cannot make the source code to RAP available. The
    competition blatantly copies our trade secrets when this occurs. To date no
    competitors have anything close to RAP or RB Server. The reason for this is
    that they…

  • Have not heard of this before. There is nothing in RAP that requires any
    special version or capabilities of Windows. I use Windows 2000 on my Tech
    Support machine and Windows XP on my R&D machine but never encountered any
    di…


  • Use the Report.OnPrintDialogClose event to set the ModalResult to 2 - this
    is equivalent to mrCancel (mrCancel is not currently defined to the RAP
    RTTI). I just tested this from RAP and it worked.

    Report.PrintDialog.…

  • Aha, now I understand the key concept that your are missing. :)

    1. "Do the property settings in TppReport persis…

  • I tried a simple example in which I created a report, configured the
    NoDataBehaviors and then save the report to an .rtm. I then changed the
    TppReport.NoDataBehaviors back to the defaults and wrote a Button OnClick
    event-handler…

  • 1. In my testing here the NoDataBehaviors property is working correctly.
    Note that this is a published property. Therefore when you load a report
    from .rtm or database, the NoDataBehaviors that were saved with the report
    will be…

  • Sorry, there is no way to suppress the dialog. The only way it is not shown
    is if the report is being loaded into a separate thread (i.e. not the main
    thread of the app).

    Probably the simplest solution is manually load eac…

  • 1. I researched this and was able to detect it in the FooterBand.BeforePrint
    event. (The DetailBand.AfterPrint is too early).

    if myPipeline.EOF then
    {last footer band is going to print}

    2. Another option is to…

  • You can change the names of the DataSources via the Data workspace. Access
    the Query Designer and select the SQL tab.

    To customize the AutoSearchDialog, see RBuilder\Demos\AutoSearch\Custom
    AutoSearch....



  • Sorry for not responding sooner. Thanks for pointing that out the flaw.
    Looks like the code needs to modified so that the ModifiedNames object is
    created after the Exit code.

    example:

    if not LoadStart then Exi…

  • The FModifiedNames TStringList object is created in the the
    TppTemplate.LoadFromStream and destroyed in the try..finally block in that
    same method. The purpose of the StringList is to track object references
    that are renamed dur…

  • First try to implement something using Delphi code and then convert it to
    RAP pass-thru functions. My first try would be to traverse the records in
    the report.DataPipeline.

    lDataPipeline := myReport.DatatPipeline;
  • ----------------------------------------------
    Tech Tip: RAP: Checking for Null Data values
    ----------------------------------------------

    The DataPipeline.FieldObjects[] array property provides access to the
    TppField objec…

  • The DataPipeline.Next method is not defined to RAP by default. However you
    can easily extend RAP using the two techniques described below....

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

  • Thanks for the feedback.

    I'll add this to the list of requested enhancements. Because of the way in
    which the Parser is currently handling comments, it is not a trivial change.

    --
    Nard Moseley
    Digital Meta…

  • I tried a simple example like this

    if Report.AutoSearchFieldCount > 0 then
    Report.AutoSearchFields[0].Free;

    Report.ShowAutoSearchDialog := Report.AutoSearchFieldCount > 0;


    --
    Nard Mosel…

  • Here is an example that you can download...

    www.digital-metaphors.com/tips/ForceBreakBasedOnDataValueRAP.zip

    --

    Nard Moseley
    Digital Metaphors Corporation
    www.digital-metaphors.com



  • Try clearing all ShiftRelative relationships first and then in a second step
    define the new relationships:

    {clear shift relative relationships}
    myDBMemo1.ShiftRelativeTo := nil;
    myDBMemo2.ShiftRelativeTo := nil;

  • That is a mistake.

    Thanks for pointing that out, we'll get it fixed for the next release...


    --
    Nard Moseley
    Digital Metaphors Corporation
    www.digital-metaphors.com



  • Sorry, I do not understand the question. You can specify search criteria
    like that via the Data tab by using the Query Designer. Specify the Like
    operator. Designate the criteria as AutoSearch if you want a dialog to be
    displaye…

  • The group header generates, then each detail and then the group footer.
    For examples see RBuilder\Demos\RAP. Use the TppVariable component its
    OnCalc event to perform the calculations. See the Calculations thread of the
    Tech Tip…