水晶报表无效的报表文件路径

时间:2018-10-21 18:42:41

标签: c# .net-4.0

我正在从c#表单中调用水晶报表,如下所示,但是在连接行上出现Invalid report file path的错误

rep.DataSourceConnections[0].SetConnection(StrServer, StrDatabase, StrUserID, StrPwd);

报告路径字符串正确

string RepPath = Application.StartupPath + @"\" + vRepName;

因为当我注释给出错误的行时,它对我的​​开发有效 pc,但是当我将应用程序移至客户端PC时,因为连接字符串会有所不同,所以我将获得与db的连接错误,因此我正在从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();
}

0 个答案:

没有答案
相关问题