简体   繁体   English

如何使用asp.net 4.0以编程方式从水晶报表中删除数据

[英]how to exort data from crystal report programatically with asp.net 4.0

i just want to export data from crystal report programatically. 我只想以编程方式从Crystal报表导出数据。 here is my code : 这是我的代码:

 protected void ImageButton7_Click(object sender, ImageClickEventArgs e)
    {
        System.IO.MemoryStream oStream = new System.IO.MemoryStream();
        if (DDL_ExportOption.SelectedItem.Value != "-1")
        {
            switch (DDL_ExportOption.SelectedItem.Value.ToString())
            {
                case "1":
                    oStream = (System.IO.MemoryStream)((CrystalDecisions.CrystalReports.Engine.ReportDocument)Session[strQueryString]).ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
                    Response.Clear();
                    Response.Buffer = true;
                    Response.ContentType = "application/pdf";
                    break;
                case "2":
                    oStream = (System.IO.MemoryStream)((CrystalDecisions.CrystalReports.Engine.ReportDocument)Session[strQueryString]).ExportToStream(CrystalDecisions.Shared.ExportFormatType.Excel);
                    Response.Clear();
                    Response.Buffer = true;
                    Response.ContentType = "application/vnd.ms-excel";
                    break;
                case "3":
                    oStream = (System.IO.MemoryStream)((CrystalDecisions.CrystalReports.Engine.ReportDocument)Session[strQueryString]).ExportToStream(CrystalDecisions.Shared.ExportFormatType.WordForWindows);
                    Response.Clear();
                    Response.Buffer = true;
                    Response.ContentType = "application/doc";
                    break;
            }
            //export format
            try
            {
                Response.BinaryWrite(oStream.ToArray());
                Response.End();
            }
            catch (Exception err)
            {
                Response.Write("< BR >");
                Response.Write(err.Message.ToString());
            }
        }
    }

but with lack of luck this not works. 但是由于运气不好,这是行不通的。 there is many problem that i faced doing work with crystal report 我在处理水晶报表时遇到很多问题

Try : 尝试:

cryRpt = new ReportDocument();
cryRpt.Load(Server.MapPath(RPTName));
cryRpt.SetDataSource(DT);    

switch (DDL_ExportOption.SelectedItem.Value.ToString()) {
case 1
 cryRpt.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, true, "ExportedReport");

case 2  
cryRpt.ExportToHttpResponse(ExportFormatType.WordForWindows, Response, true, "ExportedReport");

 case 3  
ExportDataSetToExcel(DT, "ExportedReport");
}

and the function of exporting to excel : 以及导出到excel的功能:

public static void ExportDataSetToExcel(DataTable ds, string filename)
 {
HttpResponse response = HttpContext.Current.Response;
response.Clear();
response.Buffer = true;
response.Charset = "";

response.ContentType = "application/vnd.ms-excel";

using (StringWriter sw = new StringWriter()) {
    using (HtmlTextWriter htw = new HtmlTextWriter(sw)) {
        DataGrid dg = new DataGrid();
        dg.DataSource = ds;
        dg.DataBind();
        dg.RenderControl(htw);
        response.Charset = "UTF-8";
        response.ContentEncoding = System.Text.Encoding.UTF8;
        response.BinaryWrite(System.Text.Encoding.UTF8.GetPreamble());
        response.Output.Write(sw.ToString());
        response.End();
    }
  }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM