Crystal Report重复行

时间:2014-08-04 19:41:06

标签: vb.net crystal-reports crystal-reports-2010

目前我正在为我的项目制作报告。我在Crystal Reports中设计了一个报表,连接来自数据库而不是数据集,所以我把这个代码放在打印按钮中:

Dim index As Integer = Me.dgrdItems.CurrentRow.Index
Dim connectionString As String = "Data Source=(local)\sqlexpress;Initial Catalog=SAb;Integrated Security=True"
Dim selectConnection As New SqlConnection(connectionString)
selectConnection.Open()

'Dim adapter As New SqlDataAdapter(Conversions.ToString(Operators.ConcatenateObject(Operators.ConcatenateObject("SELECT * FROM Sales Where SalesNo='", Me.dgrdItems.Item(0, index).Value), "'")), selectConnection)
Dim dataSet As New DataSet
'adapter.Fill(dataSet, "Sales")
'Dim da As New SqlDataAdapter(Conversions.ToString(Operators.ConcatenateObject(Operators.ConcatenateObject("SELECT * FROM SalesItem where ItemSalesNo= '", Me.dgrdItems.Item(0, index).Value), "'")), selectConnection)
''MsgBox(Me.dgrdItems.Item(0, index).Value)
''da.Fill(dataSet, "SalesItem")
''MsgBox(Me.dgrdItems.Item(0, index).Value)
''Dim da2 As New SqlDataAdapter(("SELECT * FROM StoreInfo where StoreName= '" & lblCompanyName.Text & "'"), selectConnection)
''da2.Fill(dataSet, "StoreInfo")

Dim selected As New rptSalesInvoiceSelected
selected.SetDataSource(dataSet)
Dim frmReportsViewer As New reportviewer
frmReportsViewer.CrystalReportViewer1.ReportSource = selected
'  AllObjects.frmReportsViewer.MdiParent = MainFormR
frmReportsViewer.Show()
frmReportsViewer.CrystalReportViewer1.PrintReport()
selectConnection.Close()

我做了上面的代码注释,数据从数据库加载并在报告中显示重复的行。我不知道为什么打印按钮中的代码无效。

任何答案都将不胜感激。

1 个答案:

答案 0 :(得分:0)

由于当前代码永远不会填充dataSet变量,因此我必须假设注释代码通常会运行。如果是这样,那么这意味着您将3个表加载到报表中。这也意味着你在CR的数据库专家中做了“LINKS”。这意味着,如果其中任何一个表中有多个记录,则您将拥有其他记录的副本。这是标准的数据库连接行为。如果所有3个表之间没有链接,则可能导致相同类型的问题。 查看您的链接。