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

nardmoseley

About

Username
nardmoseley
Joined
Visits
8,058
Last Active
Roles
Administrator

Comments


  • If a TppPrintable component is being displayed in the report designer, then
    its DesignControl will not be nil.

    InvalidateDesignControl is protected and therefore can be called from any
    TppPrintable descendant.

    S…

  • See RBuilder\Soruce\ppVar.pas. The TppVariable.Compute method fires the
    OnCalc event. This should only be done when the report is generating.

    You can try setting the TppVariable.Value property but I do not see that it
    call…

  • I think the columns are calculated based upon the widest text in the column.
    There are some Crosstab events that can be used to modify the caption text.
    See demo ct127.pas in RBuilder\Demos\Crosstab.

    If you want to customi…

  • See article below for how to do this with Delphi code. To use RAP code you
    will need to implement a pass through functinon and call it from the
    Report.OnStartPage event in RAP.


    ---------------------------------------…

  • Below are some options for definng parameters. The issue with RAP is going
    to be a timing issue. Most of the events in RAP occur after the report
    engine has been initialized - the datasets have been opened. The
    BeforeAutoSearchD…

  • From the RBuilder.hlp topic for TppReport.Parameters:

    The Delphi code syntax for accessing a parameter value is

    myReport.Parameters['ParameterName'].Value

    RAP code supports the above syntax, plus the followin…

  • If you have RAP code that takes a long time to process, you could consider
    creationg some RAP pass-through functions that performed the processing.
    Then your RAP code can call the custom functions. This enables the RAP code
    to …

  • Have not tested this. But in theory it would seem like fewer event-handlers
    would be faster. I think it is worth trying.

    It could be that the data query or queries are slow as well.



    --
    Nard Moseley

  • In the Band.BeforePrint event you can set the Band.Visible property.

    if {some condition} then
    Report.Detail.Visible := False
    else
    Report.Detail.Visible := True;

    --
    Nard Moseley
    Digital Metapho…

  • I would agree with Harry suggestion of creating a database view or creating
    a temp table in the database that contains the combined data. Particularly
    since you have many reports to perform on this data. Doing some work on the
    d…

  • I just created a simple Crosstab report and used RAP to implement the
    Crosstab.AfterCalc event. I placed a ShowMessage('AfterCalc'). The code
    compiles and executes properly when I run the report.

    I tested using RB 7.03....…

  • Try using the Report.BeforePrint event to modify Crosstab.ColumnDefs.

    example:

    Crosstab1.ColumnDefs[0].FieldAlias := 'Contact';
    Crosstab1.ColumnDefs[0].FieldName := 'Contact';




    --
    Nar…

  • This is not a known issue. Perhaps it is related to using a Variable in a
    Region that has KeepTogether set to True. Just a guess. Can you create a
    simple, minimal example project that demonstrates the issue. Use
    ReportBuilder, s…


  • Report.Parameters.ItemsByIndex[liIndex].Name



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

  • There are no known issues with Groups in ReportBuilder 7.

    ReportBuilder relies upon the data being sorted in the proper order. Your
    description indicates that the data is ordered properly - perhaps double
    check this.

  • 1. You can use the Report.BeforeAutoSearchDialogCreate to set the
    AutoSearchField search expression. You can set Report.ShowAutoSearchDialog
    to False if you want to prevent the dialog from being displayed.

    2. Another optio…

  • Thanks for feedback. We do not currently have a web page that lists the
    examples, this is on our to do list...


    --
    Nard Moseley
    Digital Metaphors
    htt…

  • Rather than using the section in the group footer, you might try setting
    Band.OutOfSpace to true.

    Here is an example:

    ht…

  • No I did not say that you cannot use RAP code.

    My question to you is how would implement what you need using Delphi code?
    That is the first step. Before you implement anything in RAP code, try
    implementing it in Delphi cod…

  • 1. A good place to start is RBuilder\Demos\AutoSearch.

    2. Report.AutoSearch parameters are simple parameters that do not really do
    anything other than collect information.

    3. The Query tools in DADE enable you to def…

  • There are no other optios other than the ones that you mention.

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

  • RAP was designed primarily to control the report while it is generating.

    You are encountering a timing issue. If you try to set the
    Report.TextFileName while the report is generating, the assigment is ignored
    by the report…

  • I tested this in RAP.

    When I implement the OnDrawCommandCreate like this it works properly

    var
    lDrawCommand: TppDrawCommand;
    begin

    lDrawCommand := TppDrawComand(aDrawCommand);

    lDrawCo…

  • The ReportBuilder license does not permit customers to redistribute the
    product.

    Please note that the source code to RAP is not included with ReportBuilder.
    The raIDE unit is part of RAP. ReportBuilder Enterprise 5 was the…

  • My suggestion to create a Delphi code example was an attempt to break down
    the problem into incremental steps. What I meant was to create a simple
    example report using DBDemos and try to implement a simple minimal example
    that s…

  • 1. If the subreport is traversing the detail pipeline of a master/detail
    relationship then you need to also set the detail datapipeline
    SkipWhenNoRecords property to False. If you are using DADE to link
    DataViews, you can do thi…

  • I created a simple test using DBDemos. I created a query on the customer
    table and added a single DBText to the report. In the DBText.OnPrint I
    implemented the following RAP event-handler:

    DBText1.Font.Bold := customer['C…

  • Check out RBuilder\Demos\Rap\Main\Rap.dpr

    Demos 41 and 42 show how to dynamically create RAP event-handler code (see
    rap0041.pas and rap0042.pas).



    --
    Nard Moseley
    Digital Metaphors

  • Try using the TdaSQL.AvailableCriteria[] field list which contains the
    available fields from the selected tables plus the calc fields. (The TdaSQL
    object has separate arrays for SelectFields and CalcFields that represent
    the sel…

  • To be more clear I should have asked whether the Data workspace of the
    Report Designer was used to create the query(s) for the report. If you are
    loading the report from the rbItems table, then I will assume that this is
    the cas…