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

Specifying the order of the tabs on the search panel

edited October 2007 in End User
Hi,

We are now using RB 10.05. In a previous version of ReportBuilder (v 9
I think) it as possible to specify the order of the tabs in the search
panel during the design of a report. You could right click on a tab
and say 'Move left' or 'Move right'.
This doesn't seem to work anymore in 10.05. Have I missed something??

regards
Paul

Comments

  • edited October 2007
    I tested using RB 10.07 and RB 9.03 and in my testing it works the same.
    From the Preview page of the designer I access the autosearch dialog and
    press the right mouse button over the tabs. From the popup menu I can move
    tabs left and right.

    I did notice that when previewing a report that contains RAP code, the tab
    order settings did not persist when leaving preview and then returning
    again. When RAP is present, the designer saves the layout to stream prior to
    preview and reloads it afterwards, thus any changes made during preview are
    lost.


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

    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited October 2007
    Hi Nard,

    The next question now is, can the order of the tabs be changed using
    RAPand if yes how??

    regards
    Paul
  • edited October 2007

    - The TdaDataView.AutoSearchTabOrder property can be used to specify the
    order of the AutoSearch notebook tabs. If you update one of them, you need
    to update the others, so they will unique 0, 1, ...

    - You can use eitther DataPipeline.DataView and AutoSearchFields[ ].DataView
    properties to access the DataView. You will need to type case the dataview
    as TdaDataView. (A third approach is to get the TdaDataModule associated
    with the report and use the DataModule.DataViews[ ] array property).

    - Below is a simple Delphi code example

    - To implement in RAP, I recommend writing a custom pass-thru function


    var
    lDataView: TdaDataView;
    liIndex: Integer;
    begin

    for liIndex := 0 to ppReport1.AutoSearchFieldCount - 1 do
    begin
    if (ppReport1.AutoSearchFields[liIndex].DataView is TdaDataView) then
    begin
    lDataView :=
    TdaDataView(ppReport1.AutoSearchFields[liIndex].DataView);
    lDataView.AutoSearchTabOrder := liIndex;

    end;

    end;



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

    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited October 2007
    Hi Nard,

    Unfortunately we can't use Delphi code, these are end-user generated
    reports. The application is already out in the field, so it is
    difficult to use a custom pass through function at this point in time.
    We can add this for the next release but we are looking for way to do
    this in RAP code (since the order will be reset in reports using RAP
    as you said earlier).

    Are you saying it is impossible to do this in RAP at the moment??

    regards
    Paul

    On Thu, 4 Oct 2007 10:13:36 -0500, "Nard Moseley \(Digital
  • edited October 2007

    I can compile this code in RAP...

    var
    lDataView: TdaQueryDataView;
    liIndex: Integer;
    begin

    lDataView := TdaQueryDataView(Report.DataPipeline.DataView);
    lDataView.AutoSearchTabOrder := 0;

    end;

    That code uses Report.DataPipeline to access the DataPipeline. In RAP code
    you can also reference a datapipeline by name. So you could code
    Customer.DataView where 'Customer' is the name of the datapipeline.

    The other example I posted will not compile because
    TppAutoSearchField.DataView is not currently defined to the RAP RTTI. We
    will add RAP RTTI support for that property for the next release.


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

    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited October 2007
    Excellent,

    will try the code,

    thanks Nard

    On Fri, 5 Oct 2007 09:05:12 -0500, "Nard Moseley \(Digital
  • edited October 2007
    Hi Nard,

    While you are making changes can I ask for another one??

    Would it be possible to toggle the visibility of SearchTabs in RAP??
    Often we have several pipelines that use the same search criteria.
    We propagate the search values from one tab to another, but all has to
    be done in RAP since these are end-user specific reports.
    Being able to not show search tabs would be a great enhancement

    thanks
    Paul

    regards
    Paul

    On Fri, 5 Oct 2007 09:05:12 -0500, "Nard Moseley \(Digital
  • edited October 2007


    Here is an example that shows how to propogate an auto search value to more
    than one query.

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

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

    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited October 2007

    The example I posted contains a solution in RAP.

    If you find other tasks that can be accomplished in Delphi code but not in
    RAP code, then you can easily extend 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
    www.digital-metaphors.com

    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
This discussion has been closed.