none
如何使用ReportViewer 控件连续打印标签? RRS feed

  • 问题

  • 想要用ReportViewer 控件打标签(如快递单),需要每行打印一个(一页)标签,并且能够连续打印。

    我在报表主体中添加了文本框,用以显示名称、地址等。运行时发现,无论表中有几行,它只是显示第一行(即只显示第1个标签),如果主体中使用表格,则可正确显示全部数据,但这不符合需要。

    没办法,只好依次将每行复制为一个新表,结果是显示多个标签了,但内容全是第一行的数据(测试发现q的数据正确)。代码类似如下:

      For Each row In rows
                            Dim q = From dr In table.Select(筛选条件)

                            If LocalReport.DataSources.Count > 0 Then LocalReport.DataSources.RemoveAt(0)
                            LocalReport.DataSources.Add(New ReportDataSource() With {.Name = 表名, .Value = q.CopyToDataTable})

                            ReportPreview.ShowDialog(Me.FindForm)

     Next

    问题在哪儿呢?有什么更好的办法呢?


    韩立学

     


    • 已编辑 大海怪 2011年12月17日 10:48
    2011年12月17日 9:30

答案

  • 代码存在的问题解决了,    ReportPreview窗体Load事件中添加 Me.ReportViewer1.RefreshReport(),刷新即可。我这种实现方法是不是很笨,应该有更好的办法吧?
     
    韩立学
    2011年12月17日 11:11

全部回复

  • 代码存在的问题解决了,    ReportPreview窗体Load事件中添加 Me.ReportViewer1.RefreshReport(),刷新即可。我这种实现方法是不是很笨,应该有更好的办法吧?
     
    韩立学
    2011年12月17日 11:11
  • 我觉得已经很好了


    Call me ghost for short, Thanks
    To get the better anwser, it should be a better question.
    2011年12月19日 5:55