cancel
Showing results for 
Search instead for 
Did you mean: 
Subscribe

Hello,

For my project, I need to change the name of the tables of my project's data

I'm using the lastest version of CR for Visual Studio in C#

To do it, I get the SQL query of the report, I change the names I want in the string and I set the new SQL query. It work perfectly

But now, I need to do the same thing with subreports and I can't do the same simple technique.

When I get the SQL statement with "myReport.ReportClientDocument.SubreportController.GetSubreport("name").RowsetController.GetSQLStatement(groupPath, out temp)" I have an error "Missing parameter values.".

And even when I bypass this problem,
I tried to redo links by changing the name of the tables

SubreportLinks subreportLinks = new SubreportLinks();
                        SubreportLink subreportLink = new SubreportLink();
                        subreportLinks.Add(subreportLink);
                        subreportLink.LinkedParameterName = "{?Pm-DOSSIER_HISTO.DOSS_ID_DOSSIER}";
                        subreportLink.MainReportFieldName = "{DOSSIER_HISTO.DOSS_ID_DOSSIER}";
                        subreportLink.SubreportFieldName = "{JOURNAL_VIEW.JOUR_ID_DOSSIER}";
                        myReport.ReportClientDocument.SubreportController.SetSubreportLinks("name", subreportLinks);

I also tried to redo RecordSelectionFormula by changing the name of the tables and despite all this I have a mistake "Invalid field name".

I can't find the solution and I need to finish this project as soon as possible. I would be very grateful if someone could help me

0 Likes
View Entire Topic
pierrestage
Discoverer
0 Likes

In my project there are several different tables containing the same data with the same column names but containing older data. That's why I want to change the tables dynamically. It works very well for the main report.

here is my code for the report

// Get SQL request
               string request;
               var groupPath = new CrystalDecisions.ReportAppServer.DataDefModel.GroupPath();
               string temp = String.Empty;
               myReport.SetDatabaseLogon(/*"UserId"*/, /*"Password"*/);
               request = myReport.ReportClientDocument.RowsetController.GetSQLStatement(groupPath, out temp);

// Connection to data base
                ConnectionInfo connectionInfo = new ConnectionInfo(myReport.Database.Tables[0].LogOnInfo.ConnectionInfo);
                connectionInfo.Password = /*"PassWord"*/;
                connectionInfo.ServerName = /*"ServerName"*/;

////////////////
// I add a WHERE or I change table names in the request
////////////////

// Set the new SQL request 
               myReport.SetSQLCommandTable(connectionInfo, "newTableName", request);

Why wouldn't it work with the subreports ?