Crystal Report с командой - PullRequest
       28

Crystal Report с командой

0 голосов
/ 25 февраля 2011

Файл Crystal Report (.rpt) может быть создан стандартным мастером создания отчетов, в этом случае у пользователя есть две опции.Либо можете добавить команду или выбрать таблицы из базы данных.Вы также можете создать файл отчета Crystal (.rpt) из Visual Studio 2010 -> добавить новый itme -> отчет Crystal. Теперь я меняю имя базы данных файла rpt во время выполнения .

CrystalReportViewer crystalreportviewer = new CrystalReportViewer(); 
ReportDocument rd = new ReportDocument();
rd.Load(filepath);//filepath for rpt file c://command.rpt 
crystalreportviewer.ReportSource = rd; // set the source as reportdocument

 foreach (CrystalDecisions.CrystalReports.Engine.Table tb in rd.Database.Tables)
        {
            TableLogOnInfo tbloginfo = new TableLogOnInfo();
            CrystalDecisions.Shared.ConnectionInfo ci = new ConnectionInfo();
            ci.DatabaseName = databasename; ***// Changing at run time.*** User can change databasename
            ci.ServerName = "Myservername";

            ci.UserID = "userid";
            ci.Password = "userpassword";
            tbloginfo.ConnectionInfo = ci;
            tb.ApplyLogOnInfo(tbloginfo);
            try
            {

                tb.Location = ci.DatabaseName + ".dbo." + tb.Location.Substring(tb.Location.LastIndexOf(".") + 1);
            }
            catch
            {

            }
        }

Код не работает при использовании команды rpt file.При отладке rd (reportdocument) .DataBase.Tables [0] .Name = "Command", если в файле rpt вручную выбраны таблицы rd (reportdocument) .DataBase.Tables [0] .Name = "EmployeeTable" (Имя таблицы)

код не изменяет информацию соединения таблицы, когда находит команду.

Пожалуйста, спросите, не хочу ли я прояснить ситуацию.

Спасибо, N Аватар

1 Ответ

0 голосов
/ 07 марта 2011

Пара ошибок.Я использовал CrystalDecisions.Windows.Forms.CrystalReportViewer, теперь я использую SAPBusinessObjects.WPF.Viewer.CrystalReportsViewer.

Затем я добавил

crystalreportviewer.ViewerCore.RefreshReport();

Проблема решена.Спасибо, N

...