编写采用一定排序顺序的按钮事件
在此过程中,您需要在事件方法中对报表的 ReportDocument 对象模型进行编程,并将一个事件方法中的排序顺序设置为升序,另一个设置为降序。
在 sortOrderDescending_Click 事件方法中对报表的 ReportDocument 对象模型进行编程
打开代码隐藏类,找到 sortOrderDescending_Click() 事件方法。
在该事件方法中,从报表实例的 DataDefinition 属性中获取 SortFields 属性,并将其赋给 SortFields 索引类的一个实例。
Dim mySortFields As SortFields = hierarchicalGroupingReport.DataDefinition.SortFields
SortFields sortFields = hierarchicalGroupingReport.DataDefinition.SortFields;
从 SortFields 索引类中获取第一个 SortField 实例,并将其赋给名为 firstSortField 的变量。
<table>
<colgroup>
<col style="width: 100%" />
</colgroup>
<thead>
<tr class="header">
<th><img src="images/8yfdxzdx.alert_note(zh-cn,VS.90).gif" alt="Note" class="note" />注意</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><p>SortFields 索引类从 0 开始。</p></td>
</tr>
</tbody>
</table>
``` vb
Dim firstSortField As SortField = mySortFields(0)
```
``` csharp
SortField firstSortField = sortFields[0];
```
使用 SortDirection 枚举的 DescendingOrder 选择项,将 firstSortField 的 SortDirection 属性设置为降序。
firstSortField.SortDirection = SortDirection.DescendingOrder
firstSortField.SortDirection = SortDirection.DescendingOrder;
现在将此报表(已在 ReportDocument 对象模型中修改其排序)重新赋给 CrystalReportViewer 控件的 ReportSource 属性。
myCrystalReportViewer.ReportSource = hierarchicalGroupingReport
crystalReportViewer.ReportSource = hierarchicalGroupingReport;
接下来,输入 sortOrderAscending_Click() 事件方法的代码。除 SortDirection 属性设置之外,其余代码均与上一个过程的代码相同。
在 sortOrderAscending_Click 事件方法中对报表的 ReportDocument 对象模型进行编程
打开代码隐藏类,找到 sortOrderAscending_Click() 事件方法。
在该事件方法中,从报表实例的 DataDefinition 属性中获取 SortFields 属性,并将其赋给 SortFields 索引类的一个实例。
Dim mySortFields As SortFields = hierarchicalGroupingReport.DataDefinition.SortFields
SortFields sortFields = hierarchicalGroupingReport.DataDefinition.SortFields;
从 SortFields 索引类中获取第一个 SortField 实例,并将其赋给名为 firstSortField 的变量。
<table>
<colgroup>
<col style="width: 100%" />
</colgroup>
<thead>
<tr class="header">
<th><img src="images/8yfdxzdx.alert_note(zh-cn,VS.90).gif" alt="Note" class="note" />注意</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><p>SortFields 索引类从 0 开始。</p></td>
</tr>
</tbody>
</table>
``` vb
Dim firstSortField As SortField = mySortFields(0)
```
``` csharp
SortField firstSortField = sortFields[0];
```
使用 SortDirection 枚举的 AscendingOrder 选择项,将 firstSortField 实例的 SortDirection 属性设置为升序。
firstSortField.SortDirection = SortDirection.AscendingOrder
firstSortField.SortDirection = SortDirection.AscendingOrder;
现在将此报表(已在 ReportDocument 对象模型中修改其排序)重新赋给 CrystalReportViewer 控件的 ReportSource 属性。
myCrystalReportViewer.ReportSource = hierarchicalGroupingReport
crystalReportViewer.ReportSource = hierarchicalGroupingReport;
这样就完成了在每种事件方法中对报表的 ReportDocument 对象模型的编程。在下一节中,需要测试这些排序更改是否有效,并测试在未应用 Session 持久性时是否能够保持这些更改。