[水晶报表]Asp.net调用水晶报表

本文介绍了一个使用水晶报表(Crystal Reports)展示物料需求计划(MRP)详细报告的应用案例,并演示了如何通过调用存储过程来动态地填充报表数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1.如果是对单个表的处理

------------------------------------------------------------------------------------------

 using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Drawing;
using System.IO;
using System.Text;
using CrystalDecisions.Shared;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.ReportSource;

public partial class Rpt_EveryMrpPlanningDetail : System.Web.UI.Page
{
    public string sql;
    public string Itemfrom;
    public string Itemto;
    public string Mrpdate;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            MrpDate_Bind();
            sql = "select  item,DueDateDay,QtyOnHand,QtyRecv,QtyReq,ExceptMessage,MrpRef,Parent,Lead_time,order_min,order_mult,days_supply,PriVendNum,ReplenPoNum,ProcessDueDate,ProcessQtyReq,ProcessVendNum,RecordDate,UpdateBy,CreateDate from UF_EveryMrpPlanningDetail where  convert(varchar(10),CreateDate,120)='2008-10-06' ";
            Bind();
            CrystalReportSource1.ReportDocument.SetDatabaseLogon(PublicVar.UserID, PublicVar.PW, PublicVar.DS, PublicVar.DB);
            CrystalReportSource1.DataBind();
        }
    }
    protected void MrpDate_Bind()
    {
        string sqlstr = "SELECT distinct(CreateDate) ,convert(varchar(10),CreateDate,120) as mrpdate FROM UF_EveryMrpPlanningDetail order by CreateDate desc";
        //SELECT convert(varchar(10),CreateDate,120) as mrpdate FROM UF_EveryMrpPlanningDetail group by  CreateDate order by CreateDate desc  //also can be this
        PublicFunction.DropDown_List(DropDownList_MrpDate, sqlstr, 1);
    }
    protected void But_Check_Click(object sender, EventArgs e)
    {
        if (TextBox1.Text == "") { Itemfrom = ""; } else { Itemfrom = TextBox1.Text; }
        if (TextBox2.Text == "") {Itemto = "ZZZZZZZZZZZZZZ";}else{Itemto = TextBox2.Text;}
        Mrpdate=DropDownList_MrpDate.SelectedItem.Text;
        PublicVar.sqlstr = "select  item,DueDateDay,QtyOnHand,QtyRecv,QtyReq,ExceptMessage,MrpRef,Parent,Lead_time,order_min,order_mult,days_supply,PriVendNum,ReplenPoNum,ProcessDueDate,ProcessQtyReq,ProcessVendNum,RecordDate,UpdateBy,CreateDate from UF_EveryMrpPlanningDetail ";
        sql = PublicVar.sqlstr + "where convert(varchar(10),CreateDate,120)>=" + "convert(varchar(10)," + Mrpdate+ ",120)" + "and item >='" + Itemfrom + "'and item<='" + Itemto + "'";
        Bind();
    }
    protected void Bind()
    {

        //string DBConfig_sql = "Data Source=syteline;Initial Catalog=SHAT_App;Persist Security Info=True;User ID=SA;Password=SVTEP";//连接到指定数据库
        string DBConfig_sql = PublicVar.strCon;
        DataSet ds = new DataSet();
        SqlConnection sqlCon = new SqlConnection(DBConfig_sql);
        SqlCommand sqlCmd = new SqlCommand(sql, sqlCon);
        SqlDataAdapter sqlAd = new SqlDataAdapter();
        sqlAd.SelectCommand = sqlCmd;
        sqlAd.Fill(ds, "sql");
        //CrystalReportSource1.ReportDocument.Load(Server.MapPath("HandQty.rpt"));
        //注意此处必需指明Dataset中的表的名称,否则会提示“您请求的报表需要更多信息.”
        CrystalReportSource1.ReportDocument.SetDataSource(ds.Tables["sql"]);
        //{?}中的参数可以不用赋值,即使赋了值也不起作用。
        // CrystalReportSource1.ReportDocument.ParameterFields["Parm"].CurrentValues.AddValue("1234567");
        //CrystalReportSource1.ReportDocument.ParameterFields["Title"].CurrentValues.AddValue("这时推模式的报表样例!");
        CrystalReportSource1.DataBind();

        CrystalReportViewer1.ReportSource = CrystalReportSource1;
        CrystalReportViewer1.DataBind();

    }
}

-------------------------------------------------------------------------------------------------------------------------------
2.水晶报表调用存储过程示例子:

-------------------------------------------------------------------------------------------------------

 using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Drawing;
using System.IO;
using System.Text;
using CrystalDecisions.Shared;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.ReportSource;

public partial class HandQty : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

        if (!IsPostBack)
        {

            CrystalReportSource1.ReportDocument.SetDatabaseLogon(PublicVar.UserID, PublicVar.PW, PublicVar.DS, PublicVar.DB);//取得公共变量
            CrystalReportSource1.ReportDocument.SetParameterValue("@item", null);
            CrystalReportSource1.DataBind();

        }
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
           CrystalReportSource1.ReportDocument.SetDatabaseLogon(PublicVar.UserID, PublicVar.PW, PublicVar.DS, PublicVar.DB);//取得公共变量
           CrystalReportSource1.ReportDocument.SetParameterValue("@item", TextBox1.Text);
           CrystalReportSource1.DataBind();
    }


}


--------------------------------------------------------------------------------------------------------------------------

           CrystalReportSource1.ReportDocument.SetDatabaseLogon(PublicVar.UserID, PublicVar.PW, PublicVar.DS, PublicVar.DB);--连接数据库
           CrystalReportSource1.ReportDocument.SetParameterValue("@item", TextBox1.Text);---传入存储过程的参数
           CrystalReportSource1.DataBind();--邦定到数据源

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

厦门德仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值