用户自定义水晶报表字段

实现效果:


 

 

 

用户自定义水晶报表字段代码:

 using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using CrystalDecisions.CrystalReports;

public partial class CReportEm2 : System.Web.UI.Page
{

    DB db = new DB();
   
    protected void Page_Load(object sender, EventArgs e)
    {
       //String cnstr = "";
        //保持字段的字符串
        String fldstr = "";
        //保持字段名称的数组
        String[] fldArr = new string[6];
        int i = 0;
        int j = 0;
        //获取选取的字段并进行处理
        if (checkBox1.Checked == true)
        {
            fldstr = fldstr + "," + checkBox1.ToolTip;
        }
        if (checkBox2.Checked == true)
        {
            fldstr = fldstr + "," + checkBox2.Text;
        }
        if (checkBox3.Checked == true)
        {
            fldstr = fldstr + "," + checkBox3.Text;
        }
        if (checkBox4.Checked == true)
        {
            fldstr = fldstr + "," + checkBox4.Text;
        }
        if (checkBox5.Checked == true)
        {
            fldstr = fldstr + "," + checkBox5.Text;
        }
        if (checkBox6.Checked == true)
        {
            fldstr = fldstr + "," + checkBox6.Text;
        }
        if (fldstr == "")
        {

            //Response.Write("<script language='javascript'>alert('请选择要显示的字段!');</script>");
            return;
        }
        if (fldstr.Substring(0, 1) == ",")
        {
            fldstr = fldstr.Substring(1, fldstr.Length - 1);
        }
         fldArr = fldstr.Split(new Char[] { ',' });
         db.Open();

         string sql = "";
         sql = " Select " + fldstr + " From Employee";//--------------------------------------
      
         SqlDataAdapter da1 = new SqlDataAdapter(sql, db.Open());

         DataSet ds1=new DataSet();
         da1.Fill(ds1, "Employee");

         //CrystalReport1 crReportDocument = new CrystalReport1();
         ReportDocument crReportDocument = new ReportDocument();
       //  ReportDoc.Load(Server.MapPath("crystalreport.rpt")); 
         crReportDocument.Load(Server.MapPath("CReport2.rpt"));
       

        //-------------------------
         //CrystalReport1 crReportDocument = new CrystalDecisions.Web.CrystalReportViewer();
         for(i=0;i<fldArr.Length;i++)
            {
         
            // 将公式绑定到具体字段    
                crReportDocument.DataDefinition.FormulaFields["mf" + (i + 1).ToString()].Text = "{Employee." + fldArr[i] + "}";
                crReportDocument.DataDefinition.FormulaFields["mt" + (i + 1).ToString()].Text = "/"" + fldArr[i] + "/"";

                //crReportDocument.DataDefinition.ParameterFields["myParaField" + (i + 1).ToString()].ToString = "/"" + fldArr[i] + "/"";
                //ParameterDiscreteValue DiscreteVal = new ParameterDiscreteValue();

            }

            for (j =i+ 1; j <= 6; j++)
            {
                crReportDocument.DataDefinition.FormulaFields["mt" + (j).ToString()].Text = "";
            }
       
            crReportDocument.SetDataSource(ds1);
         
            CrystalReportViewer1.ReportSource = crReportDocument;

       
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        //String cnstr = "";
        //保持字段的字符串
        String fldstr = "";
        //保持字段名称的数组
        String[] fldArr = new string[6];
        int i = 0;
        int j = 0;
        //获取选取的字段并进行处理
        if (checkBox1.Checked == true)
        {
            fldstr = fldstr + "," + checkBox1.ToolTip;
        }
        if (checkBox2.Checked == true)
        {
            fldstr = fldstr + "," + checkBox2.Text;
        }
        if (checkBox3.Checked == true)
        {
            fldstr = fldstr + "," + checkBox3.Text;
        }
        if (checkBox4.Checked == true)
        {
            fldstr = fldstr + "," + checkBox4.Text;
        }
        if (checkBox5.Checked == true)
        {
            fldstr = fldstr + "," + checkBox5.Text;
        }
        if (checkBox6.Checked == true)
        {
            fldstr = fldstr + "," + checkBox6.Text;
        }
         if (fldstr == "")
         {
              
                Response.Write("<script language='javascript'>alert('请选择要显示的字段!');</script>");
              return;
         }
         if (fldstr.Substring(0, 1) == ",")
         {
             fldstr = fldstr.Substring(1, fldstr.Length - 1);
         }
         fldArr = fldstr.Split(new Char[] { ',' });
         db.Open();

         string sql = "";
         sql = " Select " + fldstr + " From Employee";//--------------------------------------
      
         SqlDataAdapter da1 = new SqlDataAdapter(sql, db.Open());

         DataSet ds1=new DataSet();
         da1.Fill(ds1, "Employee");

         //CrystalReport1 crReportDocument = new CrystalReport1();
         ReportDocument crReportDocument = new ReportDocument();
       //  ReportDoc.Load(Server.MapPath("crystalreport.rpt")); 
         crReportDocument.Load(Server.MapPath("CReport2.rpt"));
       

        //-------------------------
         //CrystalReport1 crReportDocument = new CrystalDecisions.Web.CrystalReportViewer();
         for(i=0;i<fldArr.Length;i++)
            {
         
            // 将公式绑定到具体字段    
                crReportDocument.DataDefinition.FormulaFields["mf" + (i + 1).ToString()].Text = "{Employee." + fldArr[i] + "}";
                crReportDocument.DataDefinition.FormulaFields["mt" + (i + 1).ToString()].Text = "/"" + fldArr[i] + "/"";

                //crReportDocument.DataDefinition.ParameterFields["myParaField" + (i + 1).ToString()].ToString = "/"" + fldArr[i] + "/"";
                //ParameterDiscreteValue DiscreteVal = new ParameterDiscreteValue();

            }

            for (j =i+ 1; j <= 6; j++)
            {
                crReportDocument.DataDefinition.FormulaFields["mt" + (j).ToString()].Text = "";
            }
       
            crReportDocument.SetDataSource(ds1);
         
            CrystalReportViewer1.ReportSource = crReportDocument;

 

 


    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值