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


  • - For RB 10.03, the GlobalOnCreate is fired called from the
    Report.InitializeParameters method. This change was made because it was
    firing too late (after the autosearch dialog had been displayed). It needs
    to fire before any…

  • - there is an example in the RB Developers Guide (RBuilder\Developers
    Guid\RBuilder.pdf)

    - check out the CodeBased thread of the Tech Tips newsgroup for additional
    tech tip articles on creating subreports in code, groups…

  • - The Report.Language property is used to specify the language for the user
    interface (i.e. the designer captions).

    - The Report.Language property is a published property and as such, its
    value is saved/restored to the .…

  • That is a mystery indeed, there must a difference between the two somewhere.
    I canoot think of anything that would cause it to not work in another
    application, except that perhaps theTChart or TCustomChart class is not
    regist…


  • - Here is a copy teh myChartFunc.pas unit that I created and used for
    testing. Try a test using this same code.


    unit myChartFuncs;

    interface

    uses
    Sysutils, classes,
    raFunc,

  • I tried a simple example here. At first I received an AV and after some
    trial and error was able to get it to work by adding some code to the
    Initialization section to register the TChart class.

    uses
    Chart;
    <…

  • Example:

    uses
    ppEnum;

    Initialization
    // parameters are TypeName, TypeInfo
    raRegisterEnum('TPenStyle', TypeInfo(TPenStyle));



  • - In Delphi code you can reference Crosstab.Matrix.Value[aColumn, aRow].

    - For RAP code you will to write a pass thru function.




  • Run RBuilder\Demos\Crosstabs\Demo.dpr and cehck out ct126.pas, it contains
    an example of formatting cell color. I was able to use the same code in RAP.
    The example uses the Crosstab.OnFormatCell event and the following code to
  • ----------------------------------------------
    Tech Tip: RAP: Checking for Null Data values
    ----------------------------------------------

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

  • please create a simple test case using the DBDemos data and email to
    support@digital-metaphors.com in zip format. We can run it here and examine
    it in the debugger.



    --
    Nard Moseley
    Digital Metaphor…
  • - Ok, well like I said in a simple test here it worked. However, your code
    example below is much more complex.

    - I would modify that code so that when not null the
    {Pms_Project['PMS_PROJECT-Proj Stat Funding'] value is place…

  • - here is a tech tip about checking for null values, I think that might be
    causing the AV
    - I tried creating a case statement with a negative value and it worked
    properly in my testing here


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

  • Please update to RB 10. RB 10 includes support for Delphi 2006, Delphi 2005,
    Delphi 7, and Delphi 6. RB 10 includes many new features and hundreds of
    internal improvements and fixes since RB 7. One of these features is Delphi

  • Try omitting that statement.

    When you call TdaSQLBuilder.Free, the destructor will automatically call
    ApplyUpdates if it detects that modifications have been made to the TdaSQL.

    I researched this and we need to expo…

  • For RB 10, the internals of the designer were refactored/rewritten. Here is
    an example that shows how customize the menus and toolbars.

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


    -…
  • I suspect the eror is elsewhere - you did no post the entire source code the
    custom functions. Compare the signature of the functions, perhaps that can
    provide an answer. Also, make sure that the datapipeline is not returning a
    nul…

  • - like most all of the dialogs in ReportBuilder, the AutoSearch dialog can
    be replaced. For an example of a custom autosearch dialog, check out
    RBuilder\Demos\AutoSearch\Custom AutoSearch Dialog.

    - No, you cannot just re…

  • I recommend using RB's AutoSearch feature to implement "ask at runtime"
    search criteria. RB will automatically generate the dialog and modify the
    SQL Where clause for you.



    --
    Nard Moseley
    Digital M…

  • You need to do it in steps.

    SQLBuilder basically works like the QueryDesigner - they are organized like
    the tabs of the query designer interface. They both manipulate an underlying
    TdaSQL object that contains an object b…

  • Here is an example that was provided by a customer.

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


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


  • - perhaps a miscommunication. The sentence "I created a patch for RB
    10.04..." means that registered users of RB 10.04 can email
    support@digital-metaphors.com and request a patch. (If RB 10.04 included
    support for calling App…

  • - As a test, try implementing the same event-handler via Delphi code and add
    the call to ApplyUpdates. Ttrace the event in the Delphi debugger and verify
    that it is working. Then comment out the ApplyUpdates method and test
    w…

  • I tested this using RB 10.04 (the latest release and it worked). I tested
    the Report.OnInitializeParameters and the Report.BeforePrint and both
    worked.

    If you try to do this later in the report generation process, you ne…

  • - For a multi-threaded evnironment I would implement a global singleton list
    that tracks the report instance for each thread or each session.

    - Starting with RB 9 we introduced the Report.OnInitializeParameters event
    to …

  • - to provide a reference to the report, you might try creating a global
    singleton object or variable. Use the Report.Template.OnLoadend event in
    Delphi to initialize the report reference. Then in your RAP pass-thru
    functions …

  • - You need to pass the Report as a parameter to the RAP function. (Just as
    you would need to pass the Report as a parameter to a stand alone function
    in Delphi).

    myFunc(aReport, aSecondParam);

    - TraParamList r…

  • - creating reports in code is no different than creating reports via the
    designer. The designer is essence a visual layout tool that is creates the
    report in code for you.

    - simples way to use an existing report as a sub…

  • - For any objects that you create in code (report, label, etc) make sure
    that use the main report.Owner as the owner.

    - For any elements that you add to a band, set object.Band (do nto call
    Band.AddObject). Likewise if y…

  • I recommend updating to RB 10.04. Over time we have fixed some intermittent
    AV's that a few customers were reporting. You can download a trial version
    from our web site if you would like to peform some testing.

    We litera…