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

Simulate Parent Child Runtime Report Designer

edited October 2004 in Subreports
Hello,
How can I filter the subreport to only show the records of the current group
on the main report. This needs to be done at runtime by the user of the
Runtime Report Designer. I don't seen any way to set this parent-child
relationship in the report designer.

If there is no way to establish this relationship in the designer. Is there
a way to say which records of the reports to print in the group filtered by
the current value of a group?

For this to work I would assume that the subreport pipeline would need to be
sorted first by the parent child link field so that the group identifiers
are together. But if there is a more efficient way I am open for
suggestions.

Bill

Comments

  • edited October 2004

    The ReportBuilder Data workspace can be used to visually link queries. You
    can select a field in the detail dataview and then drag to the field in the
    master dataview. For examples, run the
    RBuilder\Demos\EndUser\ReportExplorer. The example contains some linked
    reports.

    -------------------------------------------
    Tech Tip: Linking DataViews
    -------------------------------------------

    Overview
    ---------

    Linking DataViews in the ReportBuilder Data workspace (DADE), requires that
    the detail data be sorted by the linking fields. When DataViews are linked,
    DADE generates special linking SQL for the detail DataView. The linking SQL
    (Magic SQL) can be viewed by positioning the mouse over the DataView window
    and pressing Ctrl + Left Mouse button. The results of the Magic SQL query
    can be viewed by pressing Shift + Left Mouse button.

    ReportBuilder's DataPipeline architecture includes support for linked data
    traversal. Whenver the record position of the master data changes, the
    traversal logic compares the master and detail field link values and then
    determines where to locate the record position for the related detail data.
    The linking logic will only work properly if the Database engine's collation
    of the detail query result set is in sync with ReportBuilder's internaly
    field link comparison logic.




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



    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited October 2004
    Unfortunately this isn't an option because the DBPipelines are created at
    runtime. And the report is loaded at runtime. Now if there was a way to
    save the DBPipeline Client-Server mapping within the report this would work.

    The other problem is that I cannot see the DBPipelines in the detail
    dataview. I do have the Enterprise version of report builder and so I have
    access to the Calc tab. In the past I was able to somehow associate with an
    event of the sub-report weither or not to print the detail item in the
    sub-report based off of the current group id.

    i.e.

    Subreport1.Visible := DataPipeline1.ID = DataPipeline2.ID ???

    Bill


  • edited October 2004

    Here is an example of dynamically creating and linking DADE dataviews. See
    the DADE thread of the Tech Tips newsgroup for articles on the DADE
    architecture.

    www.digital-metaphors.com\tips\CreateDataModCustOrderLinkedDataViews.zip





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



    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited October 2004
    How I did it....

    in the Subreport - Detail - BeforePrint event I put the following
    Detail.Visible :=DataPipeline1['ID'] = DataPipeline2['ID'];



    Done!



This discussion has been closed.