none
請問如何將在 form中建立的dataset 傳給 該 form 中的 crystalreportviewer 當成 datasource RRS feed

  • 問題

  •  請問如何將在 form中建立的dataset 傳給 該 form 中的 crystalreportviewer 當成 datasource
    2015年9月25日 上午 02:32

解答

  • 有加入 Report1.rpt 檔?

    Report1.SetDataSource(ds); //ds 是資料來源,DataSet.xsd

    ...略

    this.CrystalReportPreview.ReportSource = Report1;


    • 已編輯 weipxf 2015年9月25日 上午 08:44
    • 已標示為解答 MIS110 2015年9月30日 上午 02:38
    2015年9月25日 上午 08:44
  • 您好,

    我是先建立 ReportDocument 後,再將那個 Report 載入,再Assign 它的DataSource,如下,

    dtData是我建立測試的DataTable。

    Dim dtData As New DataTable
    dtData.Columns.Add("EndUser_Id", GetType(Integer))
    dtData.Columns.Add("EndUserClass_Id", GetType(Integer))
    dtData.Columns.Add("EndUser_Name", GetType(String))
    dtData.Columns.Add("Login_Name", GetType(String))
    dtData.Columns.Add("Login_Password", GetType(String))
    dtData.Columns.Add("Last_Modified", GetType(String))
    For i As Integer = 0 To 10
    	dtData.Rows.Add(New Object() {i, 1, "Name-" & i, "Name-" & i, "", ""})
    Next
    'Imports CrystalDecisions.CrystalReports.Engine
    Dim oRpt As New ReportDocument
    oRpt.Load("C:\Projects\Temp\DataGridTest\CrystalReport1.rpt")
    oRpt.SetDataSource(dtData)
    CrystalReportViewer1.ReportSource = oRpt


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    • 已標示為解答 MIS110 2015年9月30日 上午 02:29
    2015年9月29日 上午 06:45

所有回覆

  • 就將 建立好的資料來源(dataset) 指定給 crystalreportviewr 的 datasource 
    2015年9月25日 上午 05:27
  • 這個嗎?

    繫結報表並將資料來源設定成已填入的資料集

    http://www.c-sharpcorner.com/UploadFile/rsubhajit/CrystalReportwithDataSet03012006060655AM/CrystalReportwithDataSet.aspx

    http://forums.asp.net/t/1638789.aspx?How+to+bind+a+dataset+to+a+crystal+report+viewer+ReportSource+in+asp+net+


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/



    感謝您的回覆 

    其中的連結 有一步驟 :

    Generate Dataset from the Dataset XSD.

    STEPS:
    Right click on the dataset xsd pane and click Generate Dataset

    不知為何 , 我找不到可以點選 Generate Dataset 的地方 (如下圖)

    2015年9月25日 上午 05:51
  • 就將 建立好的資料來源(dataset) 指定給 crystalreportviewr 的 datasource 

    可是我找不到 crystalreportviewr 的  datasource 屬性

    2015年9月25日 上午 05:53
  • 就將 建立好的資料來源(dataset) 指定給 crystalreportviewr 的 datasource 

    可是我找不到 crystalreportviewr 的  datasource 屬性

    再補充一下我的執行結果

    如果直接在 專案下建 dataset , report 可以抓到該dataset (如下幾個圖)

    圖1

    圖2

    圖3

    圖4

    以上是用 vs 功能建的 dataset , report可以抓到

    但是當我於 form 中的一個按鈕點下後 , 於其內自行建立 dataset  , 就找不到可以指定 datasource 的地方 

    圖5

    圖6

    code 如下

    Imports System.Data.OleDb

    Public Class Form1
        Dim cnstr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\TEST.MDB;Jet OLEDB:Database Password=''"
        Dim cn As OleDbConnection = New OleDbConnection(cnstr)
        Dim DeptDs As DataSet = New DataSet()

        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

            Dim ADDept As OleDbDataAdapter = New OleDbDataAdapter("select * from DEPARTMENT ", cn)

            ADDept.Fill(DeptDs, "DEPARTMENT")
            CrystalReportViewer1.

        End Sub
    End Class

    之後又參考各位提供的一些連結新增一個 CrystalReportDocument , 出現如下錯誤

    圖7

    請問我該如何指定 report 的 datasource ?  謝謝


    • 已編輯 MIS110 2015年9月29日 上午 02:09 增加圖編號
    2015年9月25日 上午 08:12
  • 有加入 Report1.rpt 檔?

    Report1.SetDataSource(ds); //ds 是資料來源,DataSet.xsd

    ...略

    this.CrystalReportPreview.ReportSource = Report1;


    • 已編輯 weipxf 2015年9月25日 上午 08:44
    • 已標示為解答 MIS110 2015年9月30日 上午 02:38
    2015年9月25日 上午 08:44
  • 有加入 Report1.rpt 檔?

    Report1.SetDataSource(ds); //ds 是資料來源,DataSet.xsd

    ...略

    this.CrystalReportPreview.ReportSource = Report1;


    請問您的 Report1.rpt 檔 再何處如何加入 ? 謝謝

    另 , 您的 ds 可以是我在 form 中建立的 dataset 嗎 ?

    2015年9月25日 上午 09:26
  • 1.Report1.rpt 是在你的 Project 加入。

    2.是的。

    2015年9月25日 上午 09:34
  • 1.Report1.rpt 是在你的 Project 加入。

    2.是的。

    不好意思 , 想再請教一下 , ,  我已有在 Project 中加入 crystalReport1 ,   

    可是並無  Report1.SetDataSource(ds)  可選 (請參見 我之前貼文的 圖7 )

    想請問如我貼文中的圖 , 有何步驟漏掉了嗎 ? 謝謝


    2015年9月29日 上午 02:14
  • 您好,

    我是先建立 ReportDocument 後,再將那個 Report 載入,再Assign 它的DataSource,如下,

    dtData是我建立測試的DataTable。

    Dim dtData As New DataTable
    dtData.Columns.Add("EndUser_Id", GetType(Integer))
    dtData.Columns.Add("EndUserClass_Id", GetType(Integer))
    dtData.Columns.Add("EndUser_Name", GetType(String))
    dtData.Columns.Add("Login_Name", GetType(String))
    dtData.Columns.Add("Login_Password", GetType(String))
    dtData.Columns.Add("Last_Modified", GetType(String))
    For i As Integer = 0 To 10
    	dtData.Rows.Add(New Object() {i, 1, "Name-" & i, "Name-" & i, "", ""})
    Next
    'Imports CrystalDecisions.CrystalReports.Engine
    Dim oRpt As New ReportDocument
    oRpt.Load("C:\Projects\Temp\DataGridTest\CrystalReport1.rpt")
    oRpt.SetDataSource(dtData)
    CrystalReportViewer1.ReportSource = oRpt


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    • 已標示為解答 MIS110 2015年9月30日 上午 02:29
    2015年9月29日 上午 06:45
  • 您好,

    我是先建立 ReportDocument 後,再將那個 Report 載入,再Assign 它的DataSource,如下,

    dtData是我建立測試的DataTable。

    Dim dtData As New DataTable
    dtData.Columns.Add("EndUser_Id", GetType(Integer))
    dtData.Columns.Add("EndUserClass_Id", GetType(Integer))
    dtData.Columns.Add("EndUser_Name", GetType(String))
    dtData.Columns.Add("Login_Name", GetType(String))
    dtData.Columns.Add("Login_Password", GetType(String))
    dtData.Columns.Add("Last_Modified", GetType(String))
    For i As Integer = 0 To 10
    	dtData.Rows.Add(New Object() {i, 1, "Name-" & i, "Name-" & i, "", ""})
    Next
    'Imports CrystalDecisions.CrystalReports.Engine
    Dim oRpt As New ReportDocument
    oRpt.Load("C:\Projects\Temp\DataGridTest\CrystalReport1.rpt")
    oRpt.SetDataSource(dtData)
    CrystalReportViewer1.ReportSource = oRpt


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    感謝您的回覆並提供範例程式 , 終於試出來了 , 謝謝

    2015年9月30日 上午 02:30