Foxtable(狐表)用户栏目专家坐堂 → 双图表只有一行数据时显示不正确


  共有2355人关注过本帖树形打印复制链接

主题:双图表只有一行数据时显示不正确

帅哥哟,离线,有人找我吗?
happyft
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
双图表只有一行数据时显示不正确  发帖心情 Post By:2018/7/12 18:06:00 [显示全部帖子]


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

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


如图,生成图表的代码在表事件的currentchanged中,
当点击节点3数据筛选只有一条时条形图填满了整个图表,什么原因?

谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2018/7/13 15:07:00 [显示全部帖子]

请教一下,实际运用中有下面的代码:
Series.Length = Xi*2 + 1  '图系点数(*2是为了错开显示,即1,3显示数量,2,4显示金额) 
 Series.X(0) = 0     '指定水平坐标
 Series.y(0) = 0     '指定垂直坐标
 For i As Integer = 1 To Xi*2 +1 Step 2  '逐个序号设置坐标
    Series.X(i) = i     '指定水平坐标
   Dim r As DataRow = DataTables(tbn).Find("年 = " & Ary(0) & " And " & glb.Substring(glb.LastIndexOf("|")+1) & " = " & Ary(1))  ‘对应周期的数量
   If r IsNot Nothing Then '如果找到对应年月的行
   msgbox(r("数量"))
      Series.Y(i) = r("数量") '指定数量作为垂直坐标
      Chart.AxisX.SetValueLabel(i,Ary(0) & "-" & Ary(1)) '指定字符表示
   Else
      Series.Y(i) = 0
   End If
 Next
上面的代码,循环变量总数是61,循环到31时,红色那名执行就出错了,显示索引超出范围
想问一下:用Series.Length = Xi*2 + 1 这句指定了图系长度后,Series.X与Series.Y的个数应该相等,都是一样的吧,
Series.X(i) = i 没有错误,为什么Series.Y(i) = r("数量")会出错呢?


 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2018/7/13 16:51:00 [显示全部帖子]

不是设置字符错误,而是为某个点赋Y轴的值时出错,还有下面这个例子中,用数组合集合时也有问题


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

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


点击显示所有节点时就对不上。代码也是在Currentchanged事件中。

谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2018/7/13 17:51:00 [显示全部帖子]

为什么要 -0.49,理解不了,遍历时
For i As Integer = 2 To Xi*2 Step 2  '逐个序号设置坐标
    Series.X(i) = i     '指定水平坐标
    '---查找表2咱当前行的Y轴对应值
    Dim Ary As String() = Arys((i-2)/2-0.49)  '拆分每一周期组合的字符串数组

i 是2,4,6等,2要对应从第一个数组中取值即arys(0),所以才用Arys((i-2)/2),但为什么减去0.5或者0.49?



 回到顶部