2015-11-24 4 views
0

Это мой первый раз, используя отчеты Crystal.Vb.net - Выбранные строки Crystal Reports

У меня есть DataGrid, который я заселить с этим:

Public Sub DisplayRecords() 
    Try 
     Dim da = New SqlDataAdapter("SELECT * from workshoptbl order by ID desc", strDatabaseCon) 
     dsetAssets = New DataSet 
     da.Fill(dsetAssets, "workshoptbl") 
     workshopdgvdata.DataSource = dsetAssets.Tables("workshoptbl").DefaultView 
    Catch ex As Exception 
     MsgBox(ex.Message, MsgBoxStyle.Critical, Me.Text) 
    End Try 
End Sub 

Я тогда кнопку отчета, который создает отчет. Этот отчет содержит все строки из моего Workshoptbl.

Dim cryRpt As New ReportDocument 
    cryRpt.Load("\CrystalReport2.rpt") 
    WorkshopCRP.CrystalReportViewer1.ReportSource = cryRpt 
    WorkshopCRP.Refresh() 
    WorkshopCRP.Show() 

Что я пытаюсь сделать, когда я выделите строку и нажмите отчет/печать, что только выделенная строка отправляется на страницу просмотра отчетов.

My Datasource для CrystalReport2 настроен в базе данных экспертом на странице отчета.

Если кто-то может указать мне в правильном направлении, я бы очень признателен.

Matt

ответ

0

Вы можете добавить параметр в файле CR, связать его с идентификатором строки, а затем изменить свой отчет код/​​Печать, чтобы передать идентификатор выбранной строки в отчете, как это:

WorkshopCRP.CrystalReportViewer1.ReportSource = cryRpt 
WorkshopCRP.SetParameterValue("LineNo", workshopdgvdata.SelectedRows(0).Cells(0).Value) 
WorkshopCRP.Refresh() 

в приведенном выше примере, параметр назван «LINENO» и идентификатор строке, (в таблице базы данных) находится в первой ячейке строки (в DataGridView).

+0

Hi @ Disman38 Я добавил параметр с динамическим значением, это правильно? – Matt

+0

@Matt Статическое значение должно быть достаточным. Важная часть состоит в том, чтобы связать поле параметра с идентификатором строки, используя «Выбрать эксперт». – Disman38