2014-06-12 58 views
0

問候晶子報表(我是新來的電子結構報告)如何傳遞參數從文本框C#Web窗體從Appdev

我創建Web應用程序這將包含一個水晶報表。

我的要求是:

報告應顯示基於其在文本框中給出的值(在Web表單文本框)。

例如: 如果文本框值= 2意味着只有具有id 2的項目才應該顯示。

我的水晶報告有3個子報告,如支票,派對(其中也包含來自其他表格的值,稱爲憑證),最後是銀行。 這4個表格由一個稱爲id的公共字段連接起來。

  1. 需要知道如何將參數傳遞給晶體報告。
  2. 如何只顯示一次結果(我的代碼顯示同樣的結果兩次)

我這是怎麼綁定從cs文件使用參數的水晶報表在C#

public void LoadTransReceipt() 
     { 
      string Date = ""; 
      string Sql = "SELECT tREC_NUPKId as ID from TB_TransReceipt where tREC_VCVoucherNo='" + TXTVou.Text.Trim() + "' and tREC_NUIsActive=1"; 
      SqlDataReader rdr = mobjGenlib.objDBLib.ExecuteQueryReader(Sql.ToString()); 
      while (rdr.Read()) 
      { 
       Session["ID"] = rdr.GetValue(0).ToString(); 
      } 
      rdr.Close(); 
      if (!string.IsNullOrEmpty(Session["ID"] as string)) 
      { 
       if (Session["Date"] != null) 
       { 
        Date = mobjGenlib.ConvertString(Session["Date"]); 
       } 

       reportPath = GetReportPath("ReceiptReport.rpt"); 
       CRReport = new ReportDocument(); 
       CRReport.Load(reportPath); 
       CrystalReportViewer1.ReportSource = CRReport; 
       AddParameterToReport("IDP", Session["ID"].ToString()); 
       AddParameterToReport("ActiveP", 1); 
       AddParameterToReport("IDB", Session["ID"].ToString()); 
       AddParameterToReport("ActiveB", 1); 
       AddParameterToReport("IDC", Session["ID"].ToString()); 
       AddParameterToReport("ActiveC", 1); 


       // ConnectionInfo connectionInfo = ConnInfo(); 
       ConnectionInfo objConnInfo = new ConnectionInfo(); 
       objConnInfo.DatabaseName = "Demo"; 
       objConnInfo.UserID = "aa"; 
       objConnInfo.Password = "aaaa"; 
       objConnInfo.ServerName = "HOME-PC\\SQLEXPRESS"; 
       SetDBLogonForReport(objConnInfo, CRReport); 
       SetDataSetForMultipleSubReport(objConnInfo, CRReport); 
      } 
     } 

但是當我執行它的代碼顯示與雙計時錶可用的所有數據的像圖所示 This is the Result of my code

任何一個可以幫我解決這個問題

在此先感謝

「**

指定的參數已超出有效值

**範圍的」

回答

0

從得到錯誤報表右鍵單擊字段資源管理器添加新參數,然後在代碼後面您必須設置值像參數的E:

CRReport.SetParameterValue("@Parameter", TXTVou.Text) 

您可以防止重複DISTINCT單詞添加到您的查詢,如:

"SELECT DISTINCT tREC_NUPKId as ID from TB_TransReceipt where tREC_VCVoucherNo='" + TXTVou.Text + "' and tREC_NUIsActive=1" 

或者您可以通過防止重複(抑制如果重複)在屬性字段

+0

嗨,感謝您的回覆......並且我們可以使用上面的代碼將參數傳遞給子報告。 – Appdev

相關問題