Я звоню в Crystal Report из формы c #, как показано ниже, но я получаю сообщение об ошибке Invalid report file path
в строке подключения
rep.DataSourceConnections[0].SetConnection(StrServer, StrDatabase, StrUserID, StrPwd);
строка пути отчета верна
string RepPath = Application.StartupPath + @"\" + vRepName;
потому что, когда я комментирую строку, которая выдает ошибку, она работает на моем компьютере разработчика, но когда я перемещаю приложение на клиентские ПК, так как строка соединения будет отличаться, я получу ошибку соединения с БД, такЯ читаю строку подключения из appsetting
if (vRepName == "REP0105.RPT")
{
ReportDocument rep = new ReportDocument();
ConnectionInfo info = new ConnectionInfo();
ParameterFields paramFields = new ParameterFields();
ParameterField paramField = new ParameterField();
ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue();
paramField.Name = "P_WHERE";
paramDiscreteValue.Value = vWHERE;
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);
paramField = new ParameterField();
paramField.Name = "P_ComparingFun";
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = F0112.ComparingFun;
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);
paramField = new ParameterField();
paramField.Name = "P_TotalCount";
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = F0112.TotalPatientCount;
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);
paramField = new ParameterField();
paramField.Name = "P_ResultCount";
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = F0112.ResultPatientCount;
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);
paramField = new ParameterField();
paramField.Name = "P_Pct";
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = F0112.PatientPct;
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);
paramField = new ParameterField();
paramField.Name = "P_TotalSessionCount";
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = F0112.TotalSessionCount;
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);
paramField = new ParameterField();
paramField.Name = "P_ResultSessionCount";
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = F0112.ResultSessionCount;
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);
paramField = new ParameterField();
paramField.Name = "P_SessionPct";
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = F0112.SessionPct;
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);
RepViewer.ParameterFieldInfo = paramFields;
rep.DataSourceConnections[0].SetConnection(StrServer, StrDatabase, StrUserID, StrPwd);
rep.Load(RepPath);
RepViewer.ReportSource = rep;
rep.Refresh();
}