cancel
Showing results for 
Search instead for 
Did you mean: 

Problems with subreports after changing from access .dbf to access .accdb

Former Member
0 Kudos

Hi - I have been running Win 8.1, VS Studio Ultimate 2012 and CR Reports SP4 quite happily now for a year or more. My app has a VB.net front end which modifies Select and Sort strings before running 1 of 52 reports in the Viewer. The database used was Access jet, which sadly has just been upgraded to Ace (Access 2007 +). I used the modify database location to change the .dbf to .accdb and this worked quite happily for 49 of the 52 reports. The 3 reports which failed all had sub reports.

When trying to run the failing reports these I now get the message. 'Not implemented. Error in file temp_............rpt: Operation not yet implemented.

I have upgraded the environment to SP12 - it fails, same error message.

If I try to run the report in CR2011 it works just fine, including sub-report.

If I remove the sub-report it works fine.

If I remove the sub-report and add any sub-report from scratch it fails - same error message.

Any help will be well received, I've no idea how to even try to move forward.

BTW this is a commercial app.

Regards - Derek Hall

Accepted Solutions (1)

Accepted Solutions (1)

former_member183750
Active Contributor
0 Kudos

Hi Derek

Are you using the same code for the subreports as for the main report?  Something like this;

//loop through all the sections to find all the report objects

foreach (CrystalDecisions.CrystalReports.Engine.Section crSection in crSections)

{

    crReportObjects = crSection.ReportObjects;

    //loop through all the report objects to find all the subreports

    foreach (CrystalDecisions.CrystalReports.Engine.ReportObject crReportObject in crReportObjects)

    {

        if (crReportObject.Kind == ReportObjectKind.SubreportObject)

        {

            //you will need to typecast the reportobject to a subreport object once you find it

            crSubreportObject = (CrystalDecisions.CrystalReports.Engine.SubreportObject)crReportObject;

            string mysubname = crSubreportObject.SubreportName.ToString();

            //open the subreport object

            crSubreportDocument = crSubreportObject.OpenSubreport(crSubreportObject.SubreportName);

            //set the database and tables objects to work with the subreport

         .

         .

         .

         .

            }

        }

    }

rpt.VerifyDatabase();

- Ludek

Senior Support Engineer AGS Product Support, Global Support Center Canada

Follow us on Twitter

Former Member
0 Kudos

Hi Ludek,

Yes I have similar code to yours, not posted because for some reason I can't cut and paste. I have been using the code for over 10 years and it worked fine with Jet databases.

I have though managed to find a 'sort of' workaround. In debugging the code, I find that if I introduce a time delay between applying the logoninfo overrides and calling the report, it starts to work. In the case of 2 of the reports a 5 second delay is OK, in the case of the 3rd report I need a 3 - 5 minute delay. The only difference is that in the first two reports the sub-report is bound at report level, in the case of the 3rd report the sub-report is bound at detail level.

Any insight, help in reducing the 5 min delay would be very welcome.

I am very happy to provide the full app to you if you'd like to see this in practice.

Thanks - Derek

former_member183750
Active Contributor
0 Kudos

Here is an explanation based on what I know about how the report engine renders the subreports.

When a subreport is placed into a detail section, it will run the same number of times as you have records. E.g.; 100 records in a detail section means that you will run 100 subreports. So, my guess would be that each of the subreports runs is doing the new connection and verification of the database.

A subreport in any other section is only run once.

So reducing the 5 minute delay would involve bringing in less data or moving the subreport out of the detail section. Perhaps not doing Verify DB may also help.

That does not explain the need for the time delay though. The report should (1) load, (2) logon, (3) view/print/export. I don't quite see why a report would essentially jump over the logon and try to go to step 3. I'll get Don to have a look at this, see if he has any ideas.

- Ludek

0 Kudos

Hi Derek,

CR does not support the JET engine to ACCDB data files, it's not clear how you are connecting though.

I did a quick test and ODBC only works, which is what we support. No more JET engine to Accdb files. Ms did not support it at first so we now only support through ODBC or OLE DB.

Are all of the tables linked in the subreport?

Make sure you also have all Verify options in the Report Options menu unchecked. It could be CR is attempting to verify each subreport.

Can you attach one of the 3 reports that are failing? Rename to txt first.

Don

Former Member
0 Kudos

CR seemed to work fine with the ACE provider, except in the area of subreports. So I hade 49 of my reports working great.

ODBC does seem to have solved the problems for those reports using sub-reports. No problems with delays.

Many thanks for all your help.

Answers (0)