水晶报表排序无效,且翻页也无效了。

realsil 2009-07-09 03:56:27
这就是我的水晶报表中排序功能的代码,总是失败。我参考了你的方法。我用的是VS2008,SQL2008,对第一列进行排序,先是降序排,然后再升序排。然后再点击则无反应。而且分页也无效了,只能分到第二页(不排序时,分页是正常的)。
困扰我很久了,多谢!


Partial Public Class _Default
Inherits System.Web.UI.Page
Private strTemplate As String
Private m_ReportDoc As ReportDocument = New ReportDocument()
Private m_strGetFldName As String = ""
Private m_FlagOrder As Boolean = False '用来判断排序的方式:AscendingOrder,DescendingOrder
Private m_FlagOverPage As Boolean = False '控制是否是“IsPostBack”的翻页标志
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init, Me.Init
ReportDoc_Bind()
crptv1.ReportSource = m_ReportDoc
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If m_FlagOverPage Then
m_FlagOverPage = False
Else
m_strGetFldName = Request.QueryString("FieldName")
If (m_strGetFldName IsNot Nothing) Then
GetFieldName(m_strGetFldName)
End If
End If
End Sub
Private Sub GetFieldName(ByVal strFieldName As String)
Try
Dim FieldDef As FieldDefinition = Nothing
FieldDef = m_ReportDoc.Database.Tables("Staff").Fields(strFieldName)
'把从“数据库”中取的该字段赋给 FieldDef
m_ReportDoc.DataDefinition.SortFields(0).Field = FieldDef
'然后再赋给要排序的字段名称
If m_FlagOrder = False Then
m_ReportDoc.DataDefinition.SortFields(0).SortDirection = CrystalDecisions.Shared.SortDirection.AscendingOrder
m_FlagOrder = True
Else
m_ReportDoc.DataDefinition.SortFields(0).SortDirection = CrystalDecisions.Shared.SortDirection.DescendingOrder
m_FlagOrder = False
End If
crptv1.ReportSource = m_ReportDoc
crptv1.ShowLastPage()
'获取页数
crptv1.ShowFirstPage()
Catch ee As Exception
Response.Write("<b><font color='#FF0000'>Operate Error!</font></b>")
End Try
End Sub
Private Sub ReportDoc_Bind()
Dim myset As DataSet1 = New DataSet1()
Dim cnnstr As String = "server=REALSIL-RITA\MSSQLSERVER2008;uid=sa;pwd=1234;database=RsNews"
Dim sqlstr As String = "select * from Staff where EmpID<>'123' and EmpID<>'22'"
Dim sqlcnn As SqlClient.SqlConnection = New SqlClient.SqlConnection(cnnstr)
Dim myadapter As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter(sqlstr, sqlcnn)
myadapter.Fill(myset, "Staff")
Dim reportPath As String = Server.MapPath("CrystalReport2.rpt")
m_ReportDoc.Load(reportPath)
m_ReportDoc.SetDataSource(myset)
End Sub
End Class
...全文
108 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
realsil 2009-07-13
  • 打赏
  • 举报
回复
模板上不可以控制啊,要自己动手写代码的。
wai631 2009-07-10
  • 打赏
  • 举报
回复
直接在模板上控制

4,818

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧