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

DataDictionary question

edited June 2005 in General
I just ran through the "Adding Data Dictionary Support to the End-User
Application". Rather than chosing generate for the tables I selected "Add"
and added the table I wanted. For the fields I chose "Generate".

When I run the example the explorer opens and I create a new report. Once in
the report I chose Report - Data which shows the pipelines. The problem is
that is the only option. Where's the table I added to the
dataDictionary?

ppDesigner.DataDictionary is set accordingly.
ppDesigner.UseDataDictionary is set to true.

Any ideas?

Comments

  • edited June 2005
    Hi Preston,

    The Data Dictionary is to be used with DADE (the data tab of the report
    designer). If you move to the data tab and try to add a new dataview, you
    will see that the table you have selected in your Data Dictionary is the
    only one available. For more information on this feature, I would recommend
    reading pages 150 - 162 in the ReportBuilder Developer's Guide.

    --
    Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com

    Best Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com
  • edited June 2005
    Apparently the tutorial left a big section out.

    I opened the report at design time and selected the data tab. I still
    couldn't add my table until I reconfigured the Data Connection section under
    Data Settings.Why aren't the report's Data Connection properties begin set
    to what I set in the ppDesigner? How do I set the data connection properties
    at run time? They don't appear to be properties within the report itself.

    Preston


  • edited June 2005
    Hi Preston,

    The Data Connection settings in DADE are completely separate from the report
    and any datapipelines you have on your form. DADE enables you to create
    reports without the need of datapipelines and keep all data access local to
    the template file. If you need to set these at run-time, you will do so
    with the TppDesigner object rather than the report object.

    My suggestion would be to spend some time reading about DADE in the
    Developer's guide and working through each end-user tutorial located in the
    \RBuilder\Tutorials\Complete\II. Applications\... directory. There are also
    other end-user tutorials located in the \RBuilder\Demos\... directory.

    --
    Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com

    Best Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com
  • edited June 2005
    I read through the pages you suggested before posting. Normally the
    documentation is quite good, but in the explaination of DADE it's failing.
    I'll read some more as well as looking at the other tutorials.

    You said "If you need to set these at run-time, you will do so with the
    TppDesigner object rather than the report object." Earilier I said I was
    setting the designer object and wanted to know why the report was not
    getting the settings???



  • edited June 2005
    Hi Preston,

    Perhaps I am missunderstanding what you are ultimately trying to accomplish.
    Please describe exactly what you are trying to do and I can advise on how
    you should approach the problem.

    Remember that DADE (data tab of the designer) was developed to allow you to
    keep all your data access information local to the template. This is
    specifically convenient when loading numerous templates that need to be
    connected to separate queries in the same database. Before DADE, you would
    need to have a separate datapipeline, sometimes more, on your form for each
    of these templates. Now with DADE the TDataSet -> TDataSource ->
    TppDataPipeline combination is replaced by the TdaDataView. Once you create
    these dataviews, using the Query Wizard or Query Designer, the report will
    see them as ordinary datapipelines during the design process (report tab).

    --
    Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com

    Best Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com
  • edited June 2005
    Hi Nick,

    The problem is that the ppReport's -> data tab's -> data settings -> data
    connection does not get its settings from the ppDesigner (at runtime or
    design time). The database name I use at design time is different than the
    one used at runtime. At runtime I can set the ppDesigner's database name,
    but I can't set the ppReports.

    The original problem was that I couldn't see the tables I added to the
    dataDictionary. Howver, they started showing up as soon as I manually
    configured the dataConnection in the report.

    Preston




  • edited June 2005
    Hi Preston


    If you are loading templates, the datasettings will be replaced with the
    datasettings saved down with the template originally. If you are creating a
    new report from scratch the datasettings should be as you set them at design
    time or run time before calling Designer.Show.

    Which database/connectivity are you using in your application?

    --
    Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com

    Best Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com
  • edited June 2005
    I'm not saving templates. I've just got the explorer hooked up with the
    designer. I followed the tutorial to do this.

    At runtime when I created a new report from the explorer there were no data
    piplines available. To fix it, in design time I manully configured my
    reports dataconnection. New reports either dropped onto the form and hooked
    up to the designer or created from the explorer at runtime do not get the
    settings from the designer.

    I'm using a TQuery with the BDE. The explorer works fine, creates folders,
    etc..

  • edited June 2005
    Preston,

    Ok, let's start over. Please open the example located in the
    \RBuilder\Demos\3. EndUser\1. Report Explorer\... directory. Taking a look
    at the form design gives a good idea how data is flowing through an end-user
    application in ReportBuilder. Notice there is a database object pointing
    towards the \RBuilder\Demos\Data\.. directory and four TTable -
    TDataSource - TppDBPipeline combinations. The Folders and Items tables are
    required for the explorer to work correctly and the Tables and Fields tables
    are required for the DataDictionary. Also notice that the visibility of
    these pipelines are set to False in order to prevent the end-users from
    actually connecting their reports to any of these pipelines when designing
    their own reports.

    Now if you run the app, you will see the explorer pop up. If you create a
    new report you will notice there are not datasources available. This is
    normal behavior. If you would like to give your users some datasources to
    select you will need to place them on your form as TDataSet - TDataSource -
    TppDataPipeline combinations or your users will need to create them using
    the Data workspace (data tab). In other words, the DataSettings options
    only affect DADE, they do not affect the datasources the Report can use.

    If you take a look at the DataSettings of the designer at design time, you
    will notice the database name is set to DBDEMOS. This is what the database
    settings in dade will be set to by default when you create a new report. If
    you change these settings, they will be reflected in dade when you try to
    create new dataviews for your new report.

    Moving on...


    This is correct, you will not have any pipelines available unless they are
    present and visible on your application form or data module or if you create
    dataviews in DADE.


    The dataconnection will only affect the creation of dataviews in DADE. This
    will not affect the Report object in any way.


    The Report object does not receive its data settings from the designer, if
    you would like to manually set the datasource each individual report object
    on your form will use, you need to use the DataPipeline property of the
    report.

    --
    Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com

    Best Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com
This discussion has been closed.