Subreport not working correctly
I am using D7, ADO, MS SQL 2005 and RB 7.04 (I know it's old). We will be
upgrading but the following problem is in an existing app.
I have a simple report that has a a child table connected to a parent table.
I have a ton of reports that do this and it works perfectly.
For some reason the report doesn't properly filter on the subreport. If I
copy the report to another customer database and run it, it works perfectly.
The two queries fire the same on both databases so it points to how the
subreport component determines when to break/filter. It starts with the
correct id then it doesn't break until another random id.
Any ideas of where I can look? I already checked for database corruption
and index problems.
upgrading but the following problem is in an existing app.
I have a simple report that has a a child table connected to a parent table.
I have a ton of reports that do this and it works perfectly.
For some reason the report doesn't properly filter on the subreport. If I
copy the report to another customer database and run it, it works perfectly.
The two queries fire the same on both databases so it points to how the
subreport component determines when to break/filter. It starts with the
correct id then it doesn't break until another random id.
Any ideas of where I can look? I already checked for database corruption
and index problems.
This discussion has been closed.
Comments
Collation and IsCaseSensitive are controlled by the Designer.DataSettings.
Please see the following tech tip.
-------------------------------------------
Tech Tip: Database Collation and Linking
-------------------------------------------
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.
Typically the database engine can be configured to use various language
drivers which control the collation order used to sort query results.
ReportBuilder contains two properties that can be configured to control the
internal field link comparison:
Designer.DataSettings.CollationType (ctASCII or ctANSI) and
Designer.DataSettings.IsCaseSensitive (True/False). Using these properties
results in one of 4 Delphi string comparison routines being used to compare
string data:
1. ctASCII
a. IsCaseSensitive = True --> CompareStr
b. IsCaseSensitive = False --> CompareText
2. ctANSI
a. IsCaseSensitive = True --> AnsiCompareStr
b. IsCaseSensitive = False --> AnsiCompareText
The current values for the Designer.DataSettings are used to create new
DataViews. The DataView's internal TdaSQL object saves the
Designer.DataSettings as part of the dataview's definition. The
CollationType and IsCaseSensitive values are assigned any DataPipeline field
links created for the dataview.
Designer.DataSettings -----> QueryDataView
|_ SQL object
|_ DataPipeline.Links[]: TppMasterFieldLInk
Therefore to modify the DataSettings once a query has been modified requires
that the SQL object and the DataPipeline.Links be updated.
--
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
The Report.Template.OnLoadEnd event can be used to initialize reports.
--
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com