注册 登录
编程论坛 VB6论坛

如何对Mschart进行分页显示或滑动块拖动?

ictest 发布于 2017-08-17 08:41, 1262 次点击
从数据库中查询出的数据,用mschart控件用柱状图的形式显示,但数据内容比较多,以至于图形中的横坐标显示的不清楚了,我想,如果可以做出像查询数据显示一样,数据多了可以用“下一页”“前一页”那样来显示柱状图,不知道能不能做,希望高手能指点,最好有代码。谢谢了。
以下附上我用mschart控件做的的柱状图代码:

Adodc1.RecordSource = "select xxx from xxx where xx='" & xxx.Text & "' and xx='" & xx.Text & "' order by xx desc"
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1
Set MSChart1.DataSource = Adodc1



从网上找到一段程序,但不知道怎针对我的语句去进行修改并如何去调用,求帮助。

程序代码:
'向下翻页(仅提供基本思路,程序没调试过)
Function showNextPage()
   '每页显示10条
    Const pageSize As Integer = 10
    Dim temp() As Integer
    Dim currentPageIndex As Integer
    Dim pageCount As Integer
   
    ReDim temp(pageSize)
    '计算总的页数
    pageCount = UBound(arr) \ pageSize + 1
   
    'currentPageIndex是从0开始的
    If currentPageIndex < pageCount - 1 Then
        currentPageIndex = currentPageIndex + 1
    Else
        currentPageIndex = pageCount - 1
    End If
   
    '开始复制数据
    Dim i As Integer
    For i = 0 To pageSize - 1
      temp(i) = arr(currentPageIndex * pageSize + i)
    Next
    MSChart1.ChartData = temp
End Function


[此贴子已经被作者于2017-8-17 08:44编辑过]

2 回复
#2
xiangyue05102017-08-17 09:24
你找的示例代码其实就是用一个临时数组替代recordset,每次更新一下
我想到另外一个思路,没有经过测试,你自己尝试一下。
程序代码:
Adodc1.Recordset.PageSize=10
Adodc1.RecordSource = "select xxx from xxx where xx='" & xxx.Text & "' and xx='" & xx.Text & "' order by xx desc"
Adodc1.Refresh

Set DataGrid1.DataSource = Adodc1   
DataGrid1.Refresh
Set MSChart1.DataSource = Adodc1
MSChart1.Refresh
#3
ZHRXJR2017-08-17 20:34
ADO对象的使用比ADO控件灵活的多,你的这个程序我认为使用ADO对象比较合理。
现在不清楚你的数据库的结构与显示柱状图表的要求,无法具体回答,但ADO对象使用【上一页】、【下一页】是非常容易实现的。

[此贴子已经被作者于2017-8-17 20:35编辑过]

1