以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  显示图表时能否出现滚动条  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=121278)

--  作者:happyft
--  发布时间:2018/7/3 9:52:00
--  显示图表时能否出现滚动条

图片点击可在新窗口打开查看此主题相关图片如下:图表.jpg
图片点击可在新窗口打开查看

如上图,当表中的数据很多时,右侧图表显示的内容越多,图表就会变小,有时无法阅读,图表是放分区面板中的,能否像普通表那样,数据很多时
就出现左右或者上下的滚动条,保持图表的数据不要变小,可以上下左右滚动清晰的查看图表的数据

谢谢!

--  作者:有点甜
--  发布时间:2018/7/3 10:03:00
--  

你的chart可以放在一个panel里面,panel设置自动滚动。

 

你根据数据量,控制chart的宽度即可。


--  作者:HappyFt
--  发布时间:2018/7/3 12:05:00
--  
这样设置是可以滚动了,当鼠标在表中不同的行点击时滚动条能否自动到的数据所在的图表中的位置呢,比如横轴是年月,从2010年1月到2018年7月,
当表中点击到的是2015年4月时,图表就自动滚动到2015年4月可见,而不用人为拖动去找

--  作者:有点甜
--  发布时间:2018/7/3 12:36:00
--  

控制滚动条位置这样做:

 

Dim pnl As WinForm.Panel = e.Form.Controls("Panel1")
Dim p As Point = pnl.ScrollPosition
p.x = 1000
p.y = 1000

pnl.ScrollPosition = p

 

方法一:动态计算然后设置panel1的滚动条位置:

 

方法二:你点击表格的时候,重新生成chart,把201504前后的数据生成显示。


--  作者:HappyFt
--  发布时间:2018/7/3 16:08:00
--  
如果在没有设置刻度间隔的情况下即按系统默认的方式生成图表时,如何能获得x或者y轴的刻度个数,这样比较方便用它乘上一个系数来指定图表的高或宽,
当然如果有用Chart.AxisY.Major = 5000 \'主刻度间隔值为5000这样设置的话就可以用表中统计的最大数值除以这个数得到,但感觉也比较繁琐。
如果系统可能自动返回刻度数量的话就很方便了


--  作者:有点蓝
--  发布时间:2018/7/3 20:26:00
--  
Output.Show(Chart.AxisX.Max)


--  作者:HappyFt
--  发布时间:2018/7/3 21:22:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:图表2.jpg
图片点击可在新窗口打开查看

如上图,统计结果是按序号及年分分组的,如果想在图表中横轴按序号,如果每个序号有多个年份,就生成几个方柱,Y轴为对应的数量要怎么办?
比如上面序号1,有5年的那就生成5个方柱, 而到序号10-1,10-4只有一年的,仅生成一个方柱,
谢谢!

--  作者:有点蓝
--  发布时间:2018/7/3 21:52:00
--  
上传具体实例测试
--  作者:HappyFt
--  发布时间:2018/7/3 22:21:00
--  

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:图表.foxdb


做了个例子的点像,但下面的横轴标题当相同序号有多个时如何做到只显示中间那个?
--  作者:HappyFt
--  发布时间:2018/7/3 22:52:00
--  
发现一个问题,同样的数据,做的样例中可以,但实际的项目中不可以,主要是原来统计出来的数据是没有按序号及年排好序的,
在生成图表前已经用Tables(e.form.name & "_Table1").Sort = "序号,年 DESC" 排序了,但这个排序在生成图表时没有作用,
相同的序号在图表中显示在不同的位置了