2016-08-30 15 views
0

私は.netとC#の初心者です。私のasp crystal reportは印刷もエクスポートもしません。私はあなたがこれを行うためにセッションを使用しなければならないことを読んだ。誰も私にこれのためのヒントを与えることができますか?レポートを表示してパラメータを入力できる基本的なWebページ設定があります。それはうまくいきます。ページを印刷したり書き出したりしようとすると、何かが始まると停止して何も得られません。任意の提案ですか?ここでは私のコードCrystal Reportsでasp.netのセッションを使用する方法

protected void Page_Load(object sender, EventArgs e) 
{ 
    SqlConnection CN; 
    String MyConnectionString = null; 
    MyConnectionString = "data source=srv;initial catalog=db;user id=reports;password="; 
    CN = new SqlConnection(MyConnectionString); 
    CN.Open(); 
    string SQL = null; 
    SQL = "SELECT oeordhdr_sql.ord_no, oeordlin_sql.line_seq_no, oeordlin_sql.qty_to_ship, oeordlin_sql.cus_item_no, imitmidx_sql.upc_cd, imitmidx_sql.item_desc_1, oelincmt_sql.cmt, oeordhdr_sql.ship_to_name, oeordhdr_sql.ship_to_addr_1, oeordhdr_sql.ship_to_addr_2, oeordhdr_sql.ship_to_addr_3, oeordhdr_sql.ship_to_addr_4,sycdefil_sql.cd_type, sycdefil_sql.code_desc FROM(((oeordhdr_sql oeordhdr_sql INNER JOIN oeordlin_sql oeordlin_sql ON(oeordhdr_sql.ord_type = oeordlin_sql.ord_type) AND(oeordhdr_sql.ord_no = oeordlin_sql.ord_no)) LEFT OUTER JOIN oelincmt_sql oelincmt_sql ON oeordhdr_sql.ord_no = oelincmt_sql.ord_no) LEFT OUTER JOIN sycdefil_sql sycdefil_sql ON oeordhdr_sql.ship_via_cd = sycdefil_sql.sy_code) INNER JOIN imitmidx_sql imitmidx_sql ON oeordlin_sql.item_no = imitmidx_sql.item_no WHERE sycdefil_sql.cd_type = 'V' AND oeordhdr_sql.ord_no = ' {?Ord_no}' ORDER BY oeordhdr_sql.ord_no"; 

    SqlDataAdapter myDa = new SqlDataAdapter(SQL, CN); 
    CN.Close(); 
    DataSet DS = new DataSet(); 
    myDa.Fill(DS, "DataTable1"); 
    ReportDocument myRPT = new ReportDocument(); 
    myRPT.Load(Server.MapPath("~/CrystalReport.rpt")); 
    myRPT.SetDataSource(DS); 
    CrystalReportViewer1.ReportSource = myRPT; 
} 
+0

場合は追加することでしたが判明していますあなたが投稿したコードで進んでいます。たとえば、投稿したコードが実行され、DataSetに正しく入力されますか?また、DSの基になるデータテーブルを得るために、 'myRPRT.SetDataSource(DS.Tables [0]);を設定する必要があります。 – MethodMan

+0

コードは動作し、入力されたパラメータに基づいてデータを返します。私は印刷ボタンを押すか、エクスポートしますが、何もしません。 – Ryan

+0

スレッドと提案についてこの投稿をチェックしてください。これはJavaScriptの可能性がありますhttp://forums.asp.net/t/992330.aspx?Crystal+Report+Viewer+Export+Print+buttons+are+not+working + in + VS + 2005 – MethodMan

答えて

0

は、それは私が行うために必要なことすべてはあなたが何に関して、より具体的にする必要があります(!Page.IsPostback)

protected void Page_Load(object sender, EventArgs e) 
{ 
if(!Page.IsPostBack) 
{ 
    SqlConnection CN; 
    String MyConnectionString = null; 
    MyConnectionString = "data source=srv;initial catalog=db;user id=reports;password="; 
    CN = new SqlConnection(MyConnectionString); 
    CN.Open(); 
    string SQL = null; 
    SQL = "SELECT oeordhdr_sql.ord_no, oeordlin_sql.line_seq_no, oeordlin_sql.qty_to_ship, oeordlin_sql.cus_item_no, imitmidx_sql.upc_cd, imitmidx_sql.item_desc_1, oelincmt_sql.cmt, oeordhdr_sql.ship_to_name, oeordhdr_sql.ship_to_addr_1, oeordhdr_sql.ship_to_addr_2, oeordhdr_sql.ship_to_addr_3, oeordhdr_sql.ship_to_addr_4,sycdefil_sql.cd_type, sycdefil_sql.code_desc FROM(((oeordhdr_sql oeordhdr_sql INNER JOIN oeordlin_sql oeordlin_sql ON(oeordhdr_sql.ord_type = oeordlin_sql.ord_type) AND(oeordhdr_sql.ord_no = oeordlin_sql.ord_no)) LEFT OUTER JOIN oelincmt_sql oelincmt_sql ON oeordhdr_sql.ord_no = oelincmt_sql.ord_no) LEFT OUTER JOIN sycdefil_sql sycdefil_sql ON oeordhdr_sql.ship_via_cd = sycdefil_sql.sy_code) INNER JOIN imitmidx_sql imitmidx_sql ON oeordlin_sql.item_no = imitmidx_sql.item_no WHERE sycdefil_sql.cd_type = 'V' AND oeordhdr_sql.ord_no = ' {?Ord_no}' ORDER BY oeordhdr_sql.ord_no"; 

    SqlDataAdapter myDa = new SqlDataAdapter(SQL, CN); 
    CN.Close(); 
    DataSet DS = new DataSet(); 
    myDa.Fill(DS, "DataTable1"); 
    ReportDocument myRPT = new ReportDocument(); 
    myRPT.Load(Server.MapPath("~/CrystalReport.rpt")); 
    myRPT.SetDataSource(DS); 
    CrystalReportViewer1.ReportSource = myRPT; 
} 
} 
関連する問題