none
rdlc報表的參數使用 RRS feed

  • 問題

  • 1.使用 vb2010 建立 rdlc 報表。
    2.我的 Dataset 有A, B, C三個欄位.
    3.在rdlc報表內我增加了D欄位,它的值必須是 A * B * C
    4.D欄位我插入dPa 參數.
    5.我編寫下例程式要用於傳遞參數值

            Dim pa(0) As Microsoft.Reporting.WinForms.ReportParameter
            Dim BMI As Single = A * B * C
            pa(0) = New Microsoft.Reporting.WinForms.ReportParameter("dPa", BMI)
            Me.ReportViewer1.LocalReport.SetParameters(pa)

    問題:

    上例程式中, A*B*C 其實是DataSet的三個欄位, 我不會寫這段用程式碼,因此用A*B*C做表示.
    請問這三個欄位要相乘,程式碼要怎麼寫.

    謝謝 

     


    • 已編輯 170 2011年11月22日 上午 12:54
    2011年11月22日 上午 12:53

解答

所有回覆

  • 如果A, B, C三個欄位有顯示在RDLC報表中, 您可以直接在報表中直接設定D欄位的Value屬性為:

    Fields!A欄位名稱.Value * Fields!B欄位名稱.Value * Fields!C欄位名稱.Value

    如果要讀DataSet中的欄位:

    DataSet物件.Tables(資料表編號).Rows(記錄編號)(A欄位編號) *DataSet物件.Tables(資料表編號).Rows(記錄編號)(B欄位編號) * DataSet物件.Tables(資料表編號).Rows(記錄編號)(C欄位編號)

    2011年11月22日 上午 03:45
  • 1.感謝說明.
    2.A, B, C三個欄位有顯示在RDLC報表中,且要的是第二個方法,問題出在 rdlc 報表欄位不需要迴圈控制即可逐筆列印記錄,因此 Rows(記錄編號) 的 "記錄編號" 值要怎麼設呢?
    3.我是 rdlc 新手, 作業觀念模糊, 敬請再指導.

    謝謝

     


    • 已編輯 170 2011年11月22日 上午 04:11
    2011年11月22日 上午 04:07
  • Hi,

    你可以看一下下面這個RowNumber是不是符合你的需求;另外有關『欄位D』的部分,沒記錯的話用參數的方式傳進來是可以,不過如果你是要同時顯示多列的資料的時候,會有問題,建議還是在rdlc裡面多拉一個欄位,用『運算式』的方式去帶出結果就可以了



    請注意討論區相關規則,良好的討論環境需要大家共同努力、遵守
    2011年11月22日 上午 11:19
    版主
  • 報歉,我是要用程式碼處理問題.

    謝謝幫忙.

    2011年11月23日 上午 01:29
  • 用程式碼處理的意思是手動一筆一筆填入資料,之後再丟給報表的資料來源而全部不在rdlc報表檔案中去設定是嗎?

    你可以在xsd檔案(系統的產生的DataSet描述檔案),裡面增加兩個欄位,一個放紀錄編號,一個放A/B/C相乘的結果,這兩個都不是實際在資料庫上存在的,而在程式迴圈中給值,繞完迴圈之後丟給報表顯示



    請注意討論區相關規則,良好的討論環境需要大家共同努力、遵守
    • 已標示為解答 170 2011年11月23日 上午 06:51
    2011年11月23日 上午 02:10
    版主