上次根据蓝版的建议做了一个分页筛选,如果用手动点击Button控件筛选NumericComboBox4和NumericComboBox5能正常显示分页情况,但是加上e.Form.Controls("Button4").PerformClick(),自动点击后两个控件就不能正常连续的显示分页情况了,只显示其中的几页和最后一页,请蓝版修改一下代码。
If Tables("信息比对").Rows.Count = 0
MessageBox.show("请先导入比对信息!")
Return
End If
With DataTables("信息比对")
.LoadTop = e.Form.Controls("ComboBox1").Value
.LoadPage = 0
.Load()
e.Form.Controls("NumericComboBox5").Value = (.LoadPage + 1)
e.Form.Controls("NumericComboBox4").Value = .TotalPages
End With
Dim cmd1 As New SQLCommand
cmd1.C
Dim dt1 As DataTable
Dim Cols1() As String = {"f_zh","f_hm","f_zjhm"}
Dim Cols2() As String = {"账号","户名","身份证号"}
cmd1.CommandText = "S*ELECT * From {tb_ckzhxx} where f_zjhm in ('" & DataTables("信息比对").GetComboListString("证号").Replace("|","','") & "') and f_scbz = 0"
dt1 = cmd1.ExecuteReader()
For Each dr1 As DataRow In dt1.DataRows
Dim dr3 As DataRow = DataTables("股金客户信息").AddNew()
For i1 As Integer = 0 To Cols1.Length -1
dr3(Cols2(i1)) = dr1(Cols1(i1))
Next
Next
DataTables("股金客户信息").Save()
If e.Form.Controls("NumericComboBox4").Value = e.Form.Controls("NumericComboBox5").Value Then
MessageBox.show("比对完毕")
Dim cmd2 As New SQLCommand
cmd2.C
Dim dt2 As DataTable
Dim Cols3() As String = {"f_nh","f_zh","f_rq","f_lb","f_bj","f_bjye","f_zyf","f_ywh","f_czsj"}
Dim Cols4() As String = {"年号","账号","数字","摘要","本金","本金余额","占用费","业务号","系统日期"}
cmd2.CommandText = "S*ELECT * From {tb_khrgtgxh} where f_zh in ('" & DataTables("股金客户信息").GetComboListString("账号").Replace("|","','") & "')"
dt2 = cmd2.ExecuteReader()
For Each dr3 As DataRow In dt2.DataRows
Dim dr4 As DataRow = DataTables("股金数据").AddNew()
For i2 As Integer = 0 To Cols3.Length -1
dr4(Cols4(i2)) = dr3(Cols3(i2))
If dr4("摘要") = "开户" Then
dr4("入股金额") = dr4("本金")
End If
If dr4("摘要") = "入股" Then
dr4("入股金额") = dr4("本金")
End If
If dr4("摘要") = "退股" Then
dr4("退股金额") = dr4("本金")
End If
If dr4("摘要") = "销户" Then
dr4("退股金额") = dr4("本金")
End If
If dr4("摘要") = "结算占用费" Then
dr4("入股金额") = dr4("占用费")
End If
Next
Next
DataTables("股金数据").DeleteFor("[摘要] = '占用费转入'")
DataTables("股金数据").DeleteFor("入股金额 = 0 ")
DataTables("股金数据").Save()
Dim Table1 As WinForm.Table = e.Form.Controls("Table4")
Table1.Table.SetHeaderRowHeight(-1,-1)
Dim b As New SQLGroupTableBuilder("股金余额查询表","股金数据")
Dim b1 As Table = Tables("入股比对_Table4")
b.AddTable("股金数据","账号","股金客户信息","账号") '添加统计表
b.Groups.AddDef("{股金数据}.账号") '根据信息表户名分组
b.Groups.AddDef("{股金客户信息}.户名") '根据信息表户名分组
b.Groups.AddDef("{股金客户信息}.身份证号") '根据信息表户名分组
b.Groups.AddDef("{股金客户信息}.工作单位") '根据信息表户名分组
b.Totals.AddDef("日期",AggregateEnum.Min) '根据信息表户名分组
b.Totals.AddDef("入股金额") '对入股金额进行统计
b.Totals.AddDef("退股金额") '对退股金额进行统计
b.Totals.AddExp("余额","iif(入股金额 is null,0,入股金额) - iif(退股金额 is null,0,退股金额)")
b1.DataSource = b.BuildDataSource
Tables("入股比对_Table4").SetColVisibleWidth("日期|80|账号|130|户名|60|身份证号|120|工作单位|140|入股金额|100|退股金额|100|余额|100|")
Tables("入股比对_Table4").sort = "户名"
e.Form.Controls("NumericComboBox1").Value = Tables("入股比对_Table4").rows.count
e.Form.Controls("NumericComboBox2").Value = Tables("入股比对_Table4").Compute("Sum(余额)")
e.Form.Controls("NumericComboBox3").Value = Tables("信息比对").rows.count
Return
Else
If e.Form.Controls("NumericComboBox4").Value >= e.Form.Controls("NumericComboBox5").Value Then
e.Form.Controls("Button4").PerformClick()
End If
End If
如果根据分页的情况做一个进度条,
Dim p As WinForm.ProgressBar
p = e.Form.Controls("ProgressBar1")
p.Maximum = e.Form.Controls("NumericComboBox4").Value '设置最大值
p.Minimum = 0 '设置最小值
p.Value = 0 '设置当前值
求e.Form.Controls("NumericComboBox5").Value变动时显示进度的代码