Kim Gabinete Ответов: 2

Как распечатать datagridview в crystal report?


данные моего datagridview(dgvCart) заполняются значениями из текстовых полей, они не привязаны к базе данных.

нужно ли мне создавать набор данных для моего datatable..? значения этого datatable будут поступать из datagridview(dgvCart). чтобы я мог напечатать его в отчете кристалла.

или возможно, что dgvCart может быть непосредственно напечатан в отчете crystal?

я создал приведенный ниже код на модуле..
я не знаю, правильно ли это.

Что я уже пробовал:

Public dSet As New DataSet

    Public Sub createDataSet()
        dSet.Clear()
        frmOrder.dgvCart.DataSource = dSet
        frmOrder.dgvCart.DataMember = "tblCart"

        Dim dTable As New DataTable("tblCart")
        For Each dgvCol As DataGridViewColumn In frmOrder.dgvCart.Columns
    
            dTable.Columns.Add("Item ID", GetType(System.String))
            dTable.Columns.Add("Item Name", GetType(System.String))
            dTable.Columns.Add("Price", GetType(System.Double))
            dTable.Columns.Add("Quantity", GetType(System.Int32))
            dTable.Columns.Add("Sum Total", GetType(System.Double))
            dSet.Tables.Add(dTable)
        Next

        For Each dgvRow As DataGridViewRow In frmOrder.dgvCart.Rows
            Dim dRow As DataRow = dTable.NewRow
            For Each cell As DataGridViewCell In dgvRow.Cells
                dRow(0) = cell.Value
            Next
        Next

2 Ответов

Рейтинг:
16

Mycroft Holmes

Вы не "печатаете DGV в CR". Вы создаете свой отчет в CR с нужным макетом (используйте таблицу в отчете) и устанавливаете источник данных на те же данные, что и ваш DGV. Затем вы печатаете отчет, а не DGV.


Kim Gabinete

да, именно этого я и хочу. я просто не могу хорошо объяснить это по-английски. извините за мои условия. в любом случае большое вам спасибо за информацию, но я не знаю, как создать/поместить таблицу в отчет. как это сделать?

Kim Gabinete

как пример по этой ссылке.
https://postimg.org/image/fsnrsiy1h/
я также хочу включить метки и получить значения из текстовых полей, такие как общая сумма и общий НДС. пожалуйста, помогите мне

Mycroft Holmes

Вам нужно что-то вроде https://www.google.com.sg/search-что?q=Crystal+reports+tutorial&rlz=1C1CHBF_enSG709SG709&oq=Crystal+reports+tutorial&aqs=chrome..69i57j0l5.13277j0j8&sourceid=chrome&ie=UTF-8

Рейтинг:
0

~BECHEBY

'Insert this code in a button (Print Button)

Dim Querry1 As String = "SELECT Item_ID,Item_Name,Price,Quantity,Sum_Total  From tblCart Where TransID = '" & TransID.Text & "' 
            SQL.runQuery(Querry1)

            Dim rptDocs1 As ReportDocument
            Dim connection As New ConnectionInfo()
            Dim crtableLogoninfos As New TableLogOnInfos
            Dim crtableLogoninfo As New TableLogOnInfo
            Dim CrTables As Tables
            Dim CrTable As Table

            'Create RPT name it "Order.rpt" using Crystal Report

            rptDocs1 = New Order
            rptDocs1.Load(Application.StartupPath + "\Order.rpt")

           'Replace the value of DatabaseName,ServerName,UserID,Password with your own SQLdatabase

            With connection
                connection.DatabaseName = "OnlineShop" 'myDataBase
                connection.ServerName = "Server\MSSQLSERVER" '127.0.0.1
                connection.UserID = "Admin" 'root
                connection.Password = "123456" '12345
            End With

            CrTables = rptDocs1.Database.Tables

            For Each CrTable In CrTables
                crtableLogoninfo = CrTable.LogOnInfo
                crtableLogoninfo.ConnectionInfo = connection
                CrTable.ApplyLogOnInfo(crtableLogoninfo)
            Next

            rptDocs1.SetDatabaseLogon(connection.UserID, connection.Password, connection.ServerName, connection.DatabaseName)
            rptDocs1.SetDataSource(SQL.SQLDS.Tables(0))
            ReportByOrder.CrystalReportViewer1.ReportSource = rptDocs1
            ReportByOrder.ShowDialog()
            ReportByOrder.Dispose()

            'ReportByOrder is the name of the report viewer form
            

        End If