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

これがCrystalReportであると仮定します...

この記事を参照してください。データソースで並べ替えることはできません。レポートに並べ替えを行わせる必要があります。

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 に答える