• 存储过程操作水晶报表


    这是存储数据库存存储过程

    ALTER proc [dbo].[sp_getpictureinformation]
      (
        @CustID varchar(10),
        @RefNo char(8)
      )
      as
        begin
        
        
        
       select * from(
            select A.*,A_User.CompanyName,A_User.CustID from(
                select  O_OrderWovenLabel.RefNo, O_OrderWovenLabel.ItemNo,O_OrderWovenLabel.Color,O_OrderWovenLabel.Size,
                O_OrderWovenLabel.OrderQty,O_OrderWovenLabel.Seq,O_OrderImg.imgpath
                from O_OrderWovenLabel  join O_OrderImg
                on O_OrderWovenLabel.ItemNo=O_OrderImg.imgItemNO )A,A_User where A_User.CustID=@CustID
                )K
                
                 join M_HBTL

                on K.ItemNo=M_HBTL.ItemNo and K.Color=M_HBTL.Color and K.Size=M_HBTL.Size
                where RefNo=@RefNo

      end

    这是你连接数据存储过程得到的字段(如字段commany,RefNo)

    把字段拖放到Details上

    这是代码操作

    public static void GetBindReportData(string CutsID, string RefNo, CrystalReportViewer crystalReportViewer1)
        {
           SqlConnection Conn=null;
            try
            {

                ParameterFields paramFields = new ParameterFields();  //参数字段 防止不要自已在网页中手动输入参数
                ParameterField paramField1 = new ParameterField();
                ParameterField paramField2 = new ParameterField();
                ParameterDiscreteValue discreteVal1 = new ParameterDiscreteValue();
                ParameterDiscreteValue discreteVal2 = new ParameterDiscreteValue();

                paramField1.ParameterFieldName = "@CustID";
                discreteVal1.Value = CutsID;
                paramField1.CurrentValues.Add(discreteVal1);
                paramFields.Add(paramField1);

                paramField2 = new ParameterField();
                paramField2.ParameterFieldName = "@RefNo";
                discreteVal2.Value = RefNo;
                paramField2.CurrentValues.Add(discreteVal2);
                paramFields.Add(paramField2);
                //将参数字段集合放入查看器控件。
                crystalReportViewer1.ParameterFieldInfo = paramFields;
                ReportDocument rd = new ReportDocument();
     
                rd.Load(@"E:\WebSiteTest\Admin\CrystalReport2.rpt");  //你要载入的报表
                Conn = OpenConn(strConn);
                SqlCommand Cmd = new SqlCommand();
                Cmd.CommandType = CommandType.StoredProcedure;
                Cmd.CommandText = "sp_getpictureinformation";
                Cmd.Connection = Conn;
                Cmd.Parameters.Add("@CustID", SqlDbType.VarChar);
                Cmd.Parameters["@CustID"].Value = CutsID;
                Cmd.Parameters.Add("@RefNO", SqlDbType.Char);
                Cmd.Parameters["@RefNo"].Value = RefNo;
                SqlDataAdapter da = new SqlDataAdapter(Cmd);
                DataSet ds = new DataSet();
                da.Fill(ds, "Throughput");
                rd.SetDataSource(ds.Tables["Throughput"]);  //这里一定要写好,否则它人弹出提示框叫你输入数据库的用户名和密码的,你可以写ds.table[0]
                crystalReportViewer1.ReportSource = rd;//绑定上去
            }
            catch (Exception ex)
            {
                HttpContext.Current.Response.Write(ex.Message);
            }
            finally
            {
                CloseConn(Conn);
                
            }
         

        }

    写到这里,本人也是这段时间做项目刚刚接触一点,希望对朋友们有些帮助!!!

  • 相关阅读:
    centos7使用supermin制作centos7的docker镜像包
    Linux ip netns 命令
    ip命令讲解
    openstack API应用用
    在EF6.0中打印数据库操作日志
    EF记录统一添加创建,修改时间
    Inner Join and Left Join 与条件的结合
    字符串分割
    居中方案
    移动 前端 框架
  • 原文地址:https://www.cnblogs.com/yzenet/p/2473323.html
Copyright © 2020-2023  润新知