foreach (string key in dicValue.Keys)
{
fields.Add(this.CreateParameterField(key, dicValue[key]));
}
return fields;
}
private ParameterField CreateParameterField(string FieldName, object FieldValue)
{
ParameterField field = new ParameterField();
ParameterDiscreteValue pvalue = new ParameterDiscreteValue();
pvalue.Value = FieldValue;
field.Name = FieldName;
field.CurrentValues.Add(pvalue);
field.AllowCustomValues = false;
//返回参数字段
return field;
}
#endregion
#region 显示报表
/// <summary>
/// 显示报表
/// </summary>
/// <param name="formularFieldsValue">显示字段离散值</param>
/// <param name="dicValue">参数键值对</param>
/// <param name="reportData">报表数据</param>
/// <param name="reportFile">报表文件</param>
/// <param name="reportView">报表控件</param>
public void ShowReport(string[] formularFieldsValue, Dictionary<string, string> dicValue, DataSet reportData, string reportFile, CrystalReportViewer reportView)
{
//使用报表对象加载报表
ReportDocument myReport = new ReportDocument();
myReport.Load(reportFile);
DataDefinition dataDefinition = myReport.DataDefinition;
//获取数据对象中的公式字段集合
string[] Text4formularFields = formularFieldsValue;
FormulaFieldDefinitions formularFields = dataDefinition.FormulaFields;
for (int i = 0; i < formularFieldsValue.Length; i++)
{
formularFields[i].Text = formularFieldsValue[i];
}
myReport.SetDataSource(reportData);
reportView.ParameterFieldInfo = GetParameterFields(dicValue);
reportView.ReportSource = myReport;
}
public void ShowReport(string[] formularFieldsValue, Dictionary<string, string> dicValue, DataTable reportData, string reportFile, CrystalReportViewer reportView)
{
//使用报表对象加载报表
ReportDocument myReport = new ReportDocument();
myReport.Load(reportFile);
DataDefinition dataDefinition = myReport.DataDefinition;
//获取数据对象中的公式字段集合
string[] Text4formularFields = formularFieldsValue;
FormulaFieldDefinitions formularFields = dataDefinition.FormulaFields;
for (int i = 0; i < formularFieldsValue.Length; i++)
{
formularFields[i].Text = formularFieldsValue[i];
}
myReport.SetDataSource(reportData);
reportView.ParameterFieldInfo = GetParameterFields(dicValue);
reportView.ReportSource = myReport;
}
public void ShowReport <T>(string[] formularFieldsValue, Dictionary<string, string> dicValue, List<T> reportData, string reportFile, CrystalReportViewer reportView)
{
//使用报表对象加载报表
ReportDocument myReport = new ReportDocument();
myReport.Load(reportFile);
DataDefinition dataDefinition = myReport.DataDefinition;
//获取数据对象中的公式字段集合
string[] Text4formularFields = formularFieldsValue;
FormulaFieldDefinitions formularFields = dataDefinition.FormulaFields;
for (int i = 0; i < formularFieldsValue.Length; i++)
{
formularFields[i].Text = formularFieldsValue[i];
}
myReport.SetDataSource(reportData);
reportView.ParameterFieldInfo = GetParameterFields(dicValue);
reportView.ReportSource = myReport;
}
#endregion