2016-08-30 3 views
0

.net 및 C#에 익숙하며 asp 크리스탈 보고서가 인쇄되거나 내보내지지 않습니다. 나는 이것을하기 위해 세션을 사용해야한다는 것을 읽었습니다. 아무도 나에게 이것에 대한 조언을 줄 수 있습니까? 보고서를보고 매개 변수를 입력 할 수있는 기본 웹 페이지 설정이 있습니다. 그것은 잘 작동합니다. 내 페이지를 인쇄하거나 내보내려고 할 때마다 무언가를 시작한 다음 멈추고 아무것도 얻지 못합니다. 어떤 제안이? 여기크리스탈 보고서 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'의 기본 datatable에 도착하기 위해서는 '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; 
} 
}