Foxtable(狐表)用户栏目专家坐堂 → 显示图列


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

主题:显示图列

帅哥,在线噢!
mxl810823
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:355 积分:3033 威望:0 精华:0 注册:2018/2/27 17:32:00
显示图列  发帖心情 Post By:2020/8/20 10:58:00 [显示全部帖子]

如下图,为什么我的图列每绘图一次就会数值自动增加?可以指定我想要的图列名吗?

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


 回到顶部
帅哥,在线噢!
mxl810823
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:355 积分:3033 威望:0 精华:0 注册:2018/2/27 17:32:00
  发帖心情 Post By:2020/8/20 11:10:00 [显示全部帖子]

If vars("ngdraw") = True Then
    Dim ngxs As String() = {"ngs1","ngs2","ngs3","ngs4","ngs5","ngs6","ngs7","ngs8","ngs9","ngs10"}
    Dim ngxn As Integer = 0
    For Each ngx As String In ngxs
        If e.Form.controls(ngx).checked = True Then
            ngxn = 1
            Exit For
        End If
    Next
    
    Dim y As Integer = val(e.Form.controls("nian").value)
    Dim m As Integer = val(e.Form.controls("yue").value)
    Dim bm As String = ""
    Dim tm As String = ""
    Dim ht As String = ""
    Dim z As Integer = Date.daysinmonth(y,m)
    If e.Form.Controls("TabControl4").SelectedIndex = 0 Then
        bm = "LCD品质月明细统计_nglcm"
        tm = "chnglcm"
        ht = "LCM前段" & y & "年" & m & "月NG前十图表"
        If ngxn = 0 Then
            e.Form.Controls(tm).visible = False
            MessageBox.Show("当前没有选择NG项目,绘图失败")
            
        End If
    ElseIf e.Form.Controls("TabControl4").SelectedIndex = 1 Then
        bm = "LCD品质月明细统计_nglcd"
        tm = "chnglcd"
        ht = "LCD前段" & y & "年" & m & "月NG前十图表"
        If ngxn = 0 Then
            e.Form.Controls(tm).visible = False
            MessageBox.Show("当前没有选择NG项目,绘图失败")
            
        End If
    ElseIf e.Form.Controls("TabControl4").SelectedIndex = 2 Then
        bm = "LCD品质月明细统计_nghz"
        tm = "chnghz"
        ht = "前段汇总" & y & "年" & m & "月NG前十图表"
        If ngxn = 0 Then
            e.Form.Controls(tm).visible = False
            MessageBox.Show("当前没有选择NG项目,绘图失败")
            
        End If
    End If
    
    '绘图
    Dim Chart  As WinForm.Chart  '定义一个图表变量
    Dim Series As WinForm.ChartSeries '定义一个图系变量
    Chart = forms("LCD品质月明细统计").controls(tm) ' 引用窗口中的图表
    Chart.HeaderText = ht
    Chart.ChartType = ChartTypeEnum.XYPlot '图表类型该为线形
    Dim yz1s As new List(of Double)
    For i As Integer = 0 To 9
        If e.Form.controls(ngxs(i)).checked = True Then
            Dim r As Row = Tables(bm).Rows(i)
            For Each c As Col In Tables(bm).Cols
                If c.name.contains("X月") Then
                    yz1s.add(r(c.name))
                End If
            Next
        End If
    Next
    yz1s.sort
    Chart.AxisY.Min = yz1s(0)-yz1s(0)*0.1   '指定Y轴的最小值
    Chart.AxisY.Max = yz1s(yz1s.count-1)+yz1s(yz1s.count-1)*0.1 '指定Y轴的最大值
    Chart.SeriesList.Clear() '清除图表原来的图系
    Chart.SeriesList2.Clear() '清除图表原来的图系
    Chart.AxisX.ClearValueLabel
    Chart.Axisy.ClearValueLabel
    For i As Integer = 0 To 9
        If e.Form.controls(ngxs(i)).checked = True Then
            Series = Chart.SeriesList.Add() '增加一个图系
            Series.Length = z  '新增图系包括个数据点
            For k As Integer = 0 To z-1
                Series.X(k) = k  '指定水平坐标
                Series.Y(k) = Tables(bm).Rows(i)(k+5) '垂直坐标用
                Dim s As String = Format(m,"00") & "/" & Format(k + 1,"00") 
                Chart.AxisX.SetValueLabel(k, s) '指定字符表示
            Next
        End If
    Next
    Chart.AxisX.AnnoRotation = - 45 'X轴标示逆时针旋转45度
    Chart.AxisY.Text = "数量"
    '  Series.DataLabelBackColor = Color.Blue '蓝底
    '  Series.DataLabelForeColor = Color.white '白字
    '  Series.DataLabelText = "{#YVAL}"
    ' Chart.VisualEffect = True
    Chart.AxisX.AnnoWithLabels = True '启用字符标示
    Chart.LegendVisible = True '显示图列
    Chart.LegendCompass= CompassEnum.South  '图列显示在南方(底端)
End If

 回到顶部