水晶报表公式的高级使用,急,在线等!!
问题描述:
水晶报表想要使用他来绑定显示一个数据表,应该如何绑定这个表的字段呢??
代码如下:
其中绑定表的代码是:CR_Document.DataDefinition.FormulaFields["paraField1"].Text = "{" + dt.Columns[0].DefaultValue + "}";
private void ConfigCrystalReports()
{
//获取表数据对公式进行数据绑定
OraDALBase BaseDAL = new OraDALBase();
string StringSql = "select it.stritemname,it.stritemname from item it";
DataTable dt = BaseDAL.OraGetTableSQL(StringSql);
for (int i = 0; i < dt.Rows.Count;i++ )
{
ArrayList Test = new ArrayList();
}
Fields_List = new ArrayList();
CrystalReportViewer1.ReportSource = Server.MapPath("~/rpt/CR_ViewBanlance.rpt");
ParameterFields ParamFields = new ParameterFields();
ParameterField ParamField1 = new ParameterField();
ParameterValues ParamValues1 = new ParameterValues();
ParameterDiscreteValue ParamValue1 = new ParameterDiscreteValue();
ParameterField ParamField2 = new ParameterField();
ParameterValues ParamValues2 = new ParameterValues();
ParameterDiscreteValue ParamValue2 = new ParameterDiscreteValue();
if (CK_Primarykey.Checked == true)
{
string FieldString = "stritemname";
FieldString = FieldString + ",";
ArrayList FieldArray = new ArrayList();
string[] FieldArray1 = FieldString.Split(',');
string strPath = Server.MapPath("~/rpt/CR_ViewBanlance.rpt");
CR_Document.Load(strPath);
ParamValue1.Value = CK_Primarykey.Text.ToString(); // 参数值
ParamValues1.Add(ParamValue1);
ParamField1.ParameterFieldName = "Parameter1"; // 参数名
ParamField1.CurrentValues = ParamValues1;
ParamFields.Add(ParamField1);
//CR_Document.DataDefinition.FormulaFields["paraField1"].Text = dt.Columns[0].ToString();
//CR_Document.DataDefinition.FormulaFields["paraField1"].Text = "{" + dt.Columns[0].DefaultValue + "}";
CR_Document.SetDataSource(dt);
this.CrystalReportViewer1.ReportSource = CR_Document;
//CR_Document.DataDefinition.FormulaFields("Parameter1")
}
else
{
ParamValue1.Value = ""; // 参数值
ParamValues1.Add(ParamValue1);
ParamField1.ParameterFieldName = "Parameter1"; // 参数名
ParamField1.CurrentValues = ParamValues1;
ParamFields.Add(ParamField1);
ParamField1.AllowCustomValues = false;
}
if (CK_Period.Checked == true)
{
ParamValue2.Value = CK_Period.Text.ToString(); // 参数值
ParamValues2.Add(ParamValue2);
ParamField2.ParameterFieldName = "Parameter2";
ParamField2.CurrentValues = ParamValues2;
ParamFields.Add(ParamField2);
}
else
{
ParamValue2.Value = ""; // 参数值
ParamValues2.Add(ParamValue2);
ParamField2.ParameterFieldName = "Parameter2";
ParamField2.CurrentValues = ParamValues2;
ParamFields.Add(ParamField2);
ParamField2.AllowCustomValues = false;
}
CrystalReportViewer1.ParameterFieldInfo = ParamFields;
CrystalReportViewer1.DataBind();
}