代码控制crystal report报表中排序问题。
已有一报表,报表中设计的时候指定了一个排序字段。
请问怎样在代码中指定该报表按其他字段排序?
问题点数:100、回复次数:7Top
1 楼ag1978(努力工作)回复于 2005-08-02 12:21:59 得分 0
怎么看不到自己的问题的?
顶一下。Top
2 楼ag1978(努力工作)回复于 2005-08-02 15:01:07 得分 0
没有人用吗?怎么没有人回答呢。
都快沉底了Top
3 楼xwdd129(高手就是:不出手)回复于 2005-08-02 15:34:25 得分 5
利用代码来控制排序,需要使用SortField 类,该类提供属性以获取和设置报表中的排序字段的信息。
公共实例属性:
Field FieldDefinition。获取或设置排序字段的 FieldDefinition 对象。
SortDirection SortDirection。获取或设置排序方向。
SortType SortFieldType。获取排序字段类型。
Top
4 楼StarsRiver(学无止境)回复于 2005-08-02 15:49:21 得分 0
顶一下Top
5 楼ag1978(努力工作)回复于 2005-08-06 15:45:03 得分 0
To xwdd129(想要飞得更高)
有相应代码的部分代码吗?
我也看到过这个类,不知道怎么去修改。Top
6 楼xwdd129(高手就是:不出手)回复于 2005-08-06 16:24:24 得分 95
正确的做法是,你在设计报表时先选好多个排序字段,然后在程序代码里进行按名称选择!
以下是大致的代码,你参考一下:
水晶报表排序编程实例(VB.net的)
Dim crReportDocument As ReportDocument
Public Sub changeSortField(mySortFld As String, mySortDir As String)
Dim crSortField As SortField
Dim crSortDirection As SortDirection
Dim crDatabaseFieldDefinition As DatabaseFieldDefinition
For Each crSortField In crReportDocument.DataDefinition.SortFields
If crSortField.Field.Name.ToString = mySortFld Then
crDatabaseFieldDefinition = crReportDocument.Database.Tables(0).Fields(mySortFld.ToString)
crSortField = crReportDocument.DataDefinition.SortFields(0)
crSortField.Field = crDatabaseFieldDefinition
If mySortDir = "Ascending" Then
crSortField.SortDirection = SortDirection.AscendingOrder
Else
crSortField.SortDirection = SortDirection.DescendingOrder
End If
End If
Next
CrystalReportViewer1.ReportSource = crReportDocument
End Sub
Top
7 楼ag1978(努力工作)回复于 2005-08-06 16:52:08 得分 0
我试一下。Top




