以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  统计表单元格drawcell绘图不执行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=180983)

--  作者:weibu
--  发布时间:2022/10/21 10:16:00
--  统计表单元格drawcell绘图不执行
老师我做了一个按钮,生成统计表如下,发布后单击按钮,生成统计表没问题,但没有执行绘图操作,为什么?
Dim dtb As New DataTableBuilder("捷径优化分析")
dtb.AddDef("kmitemid", Gettype(String), 32)
dtb.AddDef("结果", Gettype(String), 32)
dtb.AddDef("过程", GetType(String), 32)
dtb.AddDef("排序", GetType(Integer))
For Each v As String In DataTables("mframe").GetValues("lage")
    dtb.AddDef(v, Gettype(Double))
Next
dtb.AddDef("走势", GetType(String), 32)   ’这个是用来绘图的单元格
dtb.Build()
For Each v As String In DataTables("mframe").GetValues("kmitemid")
    Dim dr1 As DataRow = DataTables("捷径优化分析").AddNew()
    dr1("kmitemid") = v
    For Each dr2 As DataRow In DataTables("mframe").Select("kmitemid = \'" & v & "\'")
       dr1("结果") = dr2("fruit")
       dr1("过程") = dr2("work")
       dr1("排序") = dr2("orderno")
       dr1(dr2("lage")) = dr2("svalue") 
    Next
Next
Tables("捷径优化分析").Sort = "排序 DESC"
Tables("捷径优化分析").AutoSizeCols()
\'Tables("捷径优化分析").SetColVisibleWidth("走势|290") 

MainTable = Tables("捷径优化分析")



全局表事件drawcell代码:
Select Case e.Table.Name 
    Case "捷径优化分析"
      If e.Col.Name = "走势" Then
      For Each v As String In DataTables("mframe").GetValues("lage")
       e.Chart.AddValues(e.Row(v))
      Next
    e.Chart.ChartType = 1 
    e.Chart.SeriesColor = Color.CadetBlue
    e.Chart.ShowHigh = True
    e.Chart.HighMarkerColor = Color.Orange
    e.DrawChart()
End If
End Select

--  作者:有点蓝
--  发布时间:2022/10/21 10:22:00
--  
没有开启全局表事件

按钮最后加上
DataTables("mframe").GlobalHandler.DrawCell=True


--  作者:weibu
--  发布时间:2022/10/21 11:13:00
--  
老师这个报错为啥?全局表事件:doubleclick
代码:
Select Case e.Table.Name 
    Case "捷径优化分析"
If e.Col.Name = "走势" Then
    e.Cancel = True
    Dim cns() As String = DataTables("mframe").GetValues("lage")
    Dim idx As Integer = e.Table.MouseChartIndex \'获取鼠标位置的图柱序号
    If idx >= 0 Then
        Dim cn As String = cns(idx)
        e.Table.Select(e.Table.RowSel, e.Table.Cols(cn).Index)
    End If
End If
End Select

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20221021110802.png
图片点击可在新窗口打开查看

我想隐藏其中一例,为啥生成的表只有“走势”列显示,其他都隐藏了。
Dim dtb As New DataTableBuilder("捷径优化分析")
dtb.AddDef("kmitemid", GetType(String), 32)
dtb.AddDef("结果", GetType(String), 32)
dtb.AddDef("过程", GetType(String), 32)
dtb.AddDef("排序", GetType(Integer))
For Each v As String In DataTables("mframe").GetValues("lage")
    dtb.AddDef(v, Gettype(Double))
Next
dtb.AddDef("走势", GetType(String), 32)
dtb.Build()
For Each v As String In DataTables("mframe").GetValues("kmitemid")
    Dim dr1 As DataRow = DataTables("捷径优化分析").AddNew()
    dr1("kmitemid") = v
    For Each dr2 As DataRow In DataTables("mframe").Select("kmitemid = \'" & v & "\'")
       dr1("结果") = dr2("fruit")
       dr1("过程") = dr2("work")
       dr1("排序") = dr2("orderno")
       dr1(dr2("lage")) = dr2("svalue") 
    Next
Next
Tables("捷径优化分析").Sort = "排序"
Tables("捷径优化分析").AutoSizeCols()
Tables("捷径优化分析").DefaultRowHeight = 36
Tables("捷径优化分析").SetColVisibleWidth("走势|290")
Tables("捷径优化分析").Cols("kmitemid").Visible = False          想隐藏kmitemid这个列
DataTables("捷径优化分析").DataCols("走势").AllowEdit = False
MainTable = Tables("捷径优化分析")
DataTables("捷径优化分析").GlobalHandler.DrawCell = True
DataTables("捷径优化分析").GlobalHandler.DoubleClick = True


--  作者:有点蓝
--  发布时间:2022/10/21 11:16:00
--  
看帮助GetValues是怎么样的:http://www.foxtable.com/webhelp/topics/2747.htm


--  作者:weibu
--  发布时间:2022/10/21 14:54:00
--  
老师咱们软件能不能实现这个,就是有两列数据,一列做为x轴,一列做y轴。共10行。每行数据做个点。总共在图上是10个点
--  作者:有点蓝
--  发布时间:2022/10/21 15:01:00
--  
图表?http://www.foxtable.com/webhelp/topics/0967.htm
--  作者:weibu
--  发布时间:2022/10/21 15:05:00
--  
不要中间连线,仅显示点?能不能在单元格绘制
--  作者:有点蓝
--  发布时间:2022/10/21 15:21:00
--  
可以去掉图表的连线的,比如把连线设置为白色:http://www.foxtable.com/webhelp/topics/1039.htm

单元格可以直接输入一个黑点,不需要绘制
[此贴子已经被作者于2022/10/21 15:21:34编辑过]

--  作者:weibu
--  发布时间:2022/10/22 9:37:00
--  

Dim Chart As WinForm.Chart \'定义一个图表变量
Dim
Series As WinForm.ChartSeries \'定义一个图系变量
Chart= Forms(
"窗口1").Controls("Chart1") \' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.Bubble
Chart.SeriesList.Clear()
\'清除图表原来的图系
Series = Chart.SeriesList.Add()
\'增加一个图系
Series.Length =
10 \'图系包括10个数据点
Series.MarkShape= MarkShapeEnum.Dot
\'指定数据标记为圆点。
Series.MarkColor = Color.Red
\'指定数据标记的颜色
Series.LinePattern = LinePatternEnum.None
\'不显示数据点之间的联线
For
i As integer = 0 to 9 \'指定每个数据点的位置
    Series.X(i) = i
\'指定水平坐标
    Series.Y(i) = i + Rand.
Next(5) \'垂直坐标用随机数生成
    Series.Y1(i) = Rand.
Next(5) \'老师这个我想修改成:跟进做个坐标点相同的个数来绘制泡泡的大小。如这个(x,y)相同的坐标有三个,泡泡大小就是3,;有一个,泡泡大小就是1

                   这个逻辑如何实现


--  作者:有点蓝
--  发布时间:2022/10/22 9:47:00
--  
没有办法