破曉之陽原創『水晶報表』之打印(xml)

一: 先跑下程序看下效果。

 二:下面我就來一步一講解了。

1.新建一個項目,項目名i169_Web

2.新建一個WEB頁面,名稱爲i169_web.aspx

3.新建一個dataset,名稱爲DataSet1.xsd

   在工具箱中把element控件拖放到主窗口中。進行如下設定:

保存。(記得一定要保存

4.新建一個水晶報表文件,名稱爲CR_i169.rpt,作爲空白報表點確定。

  添加/刪除數據庫,選擇剛開始我們創建的DataSet1.xsd,保存。(其實這個時候你可以把DataSet1.xsd文件刪除掉。當然不刪除也沒關係。但是這個時候它已經是沒用的東西)

5.回到剛開始我們創建的i169_web.aspx這個頁面,雙擊進入代碼頁面。

添加命名空間

using System.IO;
using System.Data.SqlClient;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System.Drawing.Printing; 

給報表文件創建一個實例

CR_i169 ReportDoc=new CR_i169();

我們先添加一個返回表的方法

 

    private DataTable CreateDataSource( )
        
{
            DataTable dt 
= new DataTable();
            DataRow dr;
            dt.Columns.Add(
new DataColumn("i169_01"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_02"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_03"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_04"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_05"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_06"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_07"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_08"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_09"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_10"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_11"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_12"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_13"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_14"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_15"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_16"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_17"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_18"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_19"typeof(string)));
            dr 
= dt.NewRow();
            
//            dr[0] = Session["i169_01"]+"";
            
//            dr[1] = Session["i169_02"]+"";
            
//            dr[2] = Session["i169_03"]+"";
            
//            dr[3] = Session["i169_04"]+"";
            
//            dr[4] = Session["i169_05"]+"";
            
//            dr[5] = Session["i169_06"]+"";
            
//            dr[6] = Session["i169_07"]+"";
            
//            dr[7] = Session["i169_08"]+"";
            
//            dr[8] = Session["i169_09"]+"";
            
//            dr[9] = Session["i169_10"]+"";
            
//            dr[10] = Session["i169_11"]+"";
            
//            dr[11] = Session["i169_12"]+"";
            
//            dr[12] = Session["i169_13"]+"";
            
//            dr[13] = Session["i169_14"]+"";
            
//            dr[14] = Session["i169_15"]+"";
            
//            dr[15] = Session["i169_16"]+"";
            
//            dr[16] = Session["i169_17"]+"";
            
//            dr[17] = Session["i169_18"]+"";
            
//            dr[18] = Session["i169_19"]+"";
            dr[0= "*"+"37343042"+"*";
            dr[
1= "37343042";
            dr[
2= "2007/08/24";
            dr[
3= "深圳龍華[布吉]站";
            dr[
4= "雷小姐";
            dr[
5= "5112008";
            dr[
6= "鬆井塑膠製品有限公司全域製造廠";
            dr[
7= "深圳市龍崗坪地鎮";
            dr[
8= "0755-4073767";
            dr[
9= "雷小姐";
            dr[
10= "5112008";
            dr[
11= "鬆井塑膠製品有限公司全域製造廠";
            dr[
12= "深圳市龍崗坪地鎮";
            dr[
13= "0755-4073767";
            dr[
14= "深圳龍華[布吉]站";
            dr[
15= "";
            dr[
16= "";
            dr[
17= "";
            dr[
18= "";
            dt.Rows.Add(dr);
            
return dt;
        }

再寫一個報表綁定數據集的方法

 

        private void printers() 
        

            DataTable i169 
= CreateDataSource();
            DataSet ds
=new DataSet();
            ds.Tables.Add(i169); 
            ds.Tables[
0].TableName = "i169"
            ReportDoc 
= new CR_i169();            
            ReportDoc.SetDataSource(ds);
            
//this.CrystalReportViewer1.ReportSource=ReportDoc;
        }

再寫一個轉PDF的方法

 

        private void Pdf()
        
{
            
            
string sDestFile = Path.GetTempFileName();
            DiskFileDestinationOptions diskOpts 
= new DiskFileDestinationOptions();
            diskOpts.DiskFileName 
= sDestFile; 
            ReportDoc.ExportOptions.ExportDestinationType 
= ExportDestinationType.DiskFile;
            ReportDoc.ExportOptions.ExportFormatType 
= ExportFormatType.PortableDocFormat;
            ReportDoc.ExportOptions.DestinationOptions 
= diskOpts;
            ReportDoc.Export();
            Response.ClearContent();
            Response.ClearHeaders();
            Response.ContentType 
= "application/pdf";
            Response.WriteFile(sDestFile);
            Response.Flush();
            Response.Close(); 
            File.Delete(sDestFile);
        }

最後在Page_Load寫代碼

 

        private void Page_Load(object sender, System.EventArgs e)
        
{
            
// 在這裡放置使用者程式碼以初始化網頁
            printers();
            Pdf();
        }

而有關水晶報表裏面的設定你看圖:

完整代碼如下:

 

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Data.SqlClient;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System.Drawing.Printing; 

namespace i169_Web
{
    
/// <summary>
    
/// WebForm1 的摘要描述。
    
/// </summary>

    public class WebForm1 : System.Web.UI.Page
    
{
        CR_i169 ReportDoc
=new CR_i169();
        
private void Page_Load(object sender, System.EventArgs e)
        
{
            
// 在這裡放置使用者程式碼以初始化網頁
            printers();
            Pdf();
        }

        
private void Pdf()
        
{
            
            
string sDestFile = Path.GetTempFileName();
            DiskFileDestinationOptions diskOpts 
= new DiskFileDestinationOptions();
            diskOpts.DiskFileName 
= sDestFile; 
            ReportDoc.ExportOptions.ExportDestinationType 
= ExportDestinationType.DiskFile;
            ReportDoc.ExportOptions.ExportFormatType 
= ExportFormatType.PortableDocFormat;
            ReportDoc.ExportOptions.DestinationOptions 
= diskOpts;
            ReportDoc.Export();
            Response.ClearContent();
            Response.ClearHeaders();
            Response.ContentType 
= "application/pdf";
            Response.WriteFile(sDestFile);
            Response.Flush();
            Response.Close(); 
            File.Delete(sDestFile);
        }

        
private void printers() 
        

            DataTable i169 
= CreateDataSource();
            DataSet ds
=new DataSet();
            ds.Tables.Add(i169); 
            ds.Tables[
0].TableName = "i169"
            ReportDoc 
= new CR_i169();            
            ReportDoc.SetDataSource(ds);
            
//this.CrystalReportViewer1.ReportSource=ReportDoc;
        }

        
private DataTable CreateDataSource( )
        
{
            DataTable dt 
= new DataTable();
            DataRow dr;
            dt.Columns.Add(
new DataColumn("i169_01"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_02"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_03"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_04"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_05"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_06"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_07"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_08"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_09"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_10"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_11"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_12"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_13"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_14"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_15"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_16"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_17"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_18"typeof(string)));
            dt.Columns.Add(
new DataColumn("i169_19"typeof(string)));
            dr 
= dt.NewRow();
            
//            dr[0] = Session["i169_01"]+"";
            
//            dr[1] = Session["i169_02"]+"";
            
//            dr[2] = Session["i169_03"]+"";
            
//            dr[3] = Session["i169_04"]+"";
            
//            dr[4] = Session["i169_05"]+"";
            
//            dr[5] = Session["i169_06"]+"";
            
//            dr[6] = Session["i169_07"]+"";
            
//            dr[7] = Session["i169_08"]+"";
            
//            dr[8] = Session["i169_09"]+"";
            
//            dr[9] = Session["i169_10"]+"";
            
//            dr[10] = Session["i169_11"]+"";
            
//            dr[11] = Session["i169_12"]+"";
            
//            dr[12] = Session["i169_13"]+"";
            
//            dr[13] = Session["i169_14"]+"";
            
//            dr[14] = Session["i169_15"]+"";
            
//            dr[15] = Session["i169_16"]+"";
            
//            dr[16] = Session["i169_17"]+"";
            
//            dr[17] = Session["i169_18"]+"";
            
//            dr[18] = Session["i169_19"]+"";
            dr[0= "*"+"37343042"+"*";
            dr[
1= "37343042";
            dr[
2= "2007/08/24";
            dr[
3= "深圳龍華[布吉]站";
            dr[
4= "雷小姐";
            dr[
5= "5112008";
            dr[
6= "鬆井塑膠製品有限公司全域製造廠";
            dr[
7= "深圳市龍崗坪地鎮";
            dr[
8= "0755-4073767";
            dr[
9= "雷小姐";
            dr[
10= "5112008";
            dr[
11= "鬆井塑膠製品有限公司全域製造廠";
            dr[
12= "深圳市龍崗坪地鎮";
            dr[
13= "0755-4073767";
            dr[
14= "深圳龍華[布吉]站";
            dr[
15= "";
            dr[
16= "";
            dr[
17= "";
            dr[
18= "";
            dt.Rows.Add(dr);
            
return dt;
        }


        
Web Form 設計工具產生的程式碼

    }

}


                                                                                                                                            -----破曉之陽原創

                                                                                                                                                      2007/08/25

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章