2

我填充了一个 DataTable,然后对该 DataTable 的 DefaultView 进行排序。当我将 DataTable 设置为报告的源时,排序不起作用。如果有帮助,这里是代码(GetData 返回一个有效的 DataTable):

    Dim dt As DataTable = a.GetData(Parm1, Parm2, Parm3)

    If rbtSortByField1.Checked Then
        dt.DefaultView.Sort = "Field1 ASC"
    ElseIf rbtSortByField2.Checked Then
        dt.DefaultView.Sort = "Field2 ASC"
    ElseIf rbtSortByField3.Checked Then
        dt.DefaultView.Sort = "Field3 ASC"
    End If

    rpt.SetDataSource(dt.DefaultView.Table)
    'This also doesn't work
    'rpt.SetDataSource(dt)
4

2 回答 2

1

假设这是一个水晶报表...

见这篇文章。您不能对数据源进行排序,您需要让报表进行排序。

http://it.toolbox.com/blogs/coding-dotnet/sorting-the-fields-in-crystal-report-programmatically-16201

这里也有介绍:

http://msdn.microsoft.com/en-us/library/ms225717.aspx

于 2010-02-19T19:16:50.753 回答
1

您需要将数据视图传递给 Crystal 而不是数据表,如

datatable.DefaultView.Sort = "col1, col2, col3"
Dim dv As DataView = datatable.DefaultView 

myReportDocument.SetDataSource(dv)
于 2012-11-16T22:18:35.923 回答