Foxtable(狐表)用户栏目专家坐堂 → 为什么表1的‘制单号’没问题,表3的‘制单号码’提示找不到


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

主题:为什么表1的‘制单号’没问题,表3的‘制单号码’提示找不到

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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
为什么表1的‘制单号’没问题,表3的‘制单号码’提示找不到  发帖心情 Post By:2018/6/28 10:14:00 [只看该作者]

窗口AfterLoad,fill进三张表


If Forms("班组分析").Opened()
 Dim t As Table = Tables("班组分析_table1")

 t.Fill("SELECT c.Goodsxl as 系列名, c.Gyno as 物供号, c.ZDNO as 制单号,  B.MakeGro as 班组, B.Ftyno  AS 款号,b.QCType as 不合格原因, Sum(Isnull(b.num,0)) as 返工件数 F ROM Qc_Main A LEFT JOIN QC_ReturnMake B ON A.ID=B.UpID left join pq_main C ON   B.Orderno =C.ORDERNO WHERE   Isnull(b.num,0) >0  GROUP BY c.Goodsxl,c.Gyno,c.ZDNO,B.MakeGro,B.Ftyno,B.QCTYPE ORDER BY Sum(Isnull(b.num,0))desc  " , "鼎邦系统",True)

 Dim t2 As Table = Tables("班组分析_table2")

 t2.Fill("SELECT gro as 班组,Goods as 类别,gyno as 物供号,Ftyno as 款号,Makeno as 制单号, MakeQty as 制单数, CutQty as 裁剪数, InQty as 入库数,Indate as 日期 F ROM CO_SB_Main where  Makeno not like 'T%' and Makeno not like 'H%' and Makeno not like 'M%'   " , "鼎邦系统",True)

  Dim t3 As Table = Tables("班组分析_table3")

  t3.Fill(" SELECT B.Makeno AS 制单号码, A.Name AS 异常物料名称, A.MustNum AS 需求数量, A.OrderNum AS 采购数量, A.BackNUm AS 回料数量, A.OutNum AS 领料数量, A.BuBakNum AS 补料数量, A.JHPrice AS 单价, A.MustNum * A.JHPrice AS 需求金额, A.OrderNum * A.JHPrice AS 采购金额, A.BackNUm * A.JHPrice AS 回料金额, A.OutNum * A.JHPrice AS 领料金额, SUM(ISNULL(A.BuMon, 0)) AS 补料金额  F ROM    CO_SB_Main AS B     LEFT OUTER JOIN CO_SB_WList AS A ON A.SBID = B.SBID WHERE (A.BuMon > '200') or (A.OutNum * A.JHPrice - A.OrderNum * A.JHPrice > '100') GROUP BY A.Name, A.MustNum, A.JHPrice, A.OrderNum, A.BackNUm, A.OutNum, A.BuBakNum, B.Makeno   " , "鼎邦系统",True)
  End If



在表2CurrentChanged


Dim Chart As WinForm.Chart '定义一个图表变量

Dim Series As WinForm.ChartSeries '定义一个图系变量

Dim t As Table = Tables("班组分析_table1") '定义一个变量t引用数据表

Dim tB As Table = Tables("班组分析_table3")



 With Tables("班组分析_table2")

     If .Current Is Nothing Then

         t.Filter = "False"

         tB.Filter = "False"

     Else

        t.Filter = "[制单号] = " & .Current("制单号")

        tB.Filter = "[制单号码] = " & .Current("制单号")

     End If

 End With







Dim sm As Integer = t.Compute("Sum(返工件数)") '计算总数量

Chart= Forms("班组分析").Controls("Chart1") ' 引用窗口中的图表

chart.SeriesList.Clear

Chart.VisualEffect = True '加上这一行,让你的图表更漂亮

Chart.ChartType = ChartTypeEnum.Pie '图表1类型改为Bar(条形)

For Each r As Row In t.Rows

    Series = Chart.SeriesList.Add() '增加一个图系

    Series.Length = 1 '一个系列只能包括一个值

    Series.Text = r("不合格原因") & "(" & r("返工件数") & ")" '设置图系的标题

    Series.Y(0) = r("返工件数") '指定值

    Series.DataLabelText = Math.Round(r("返工件数")*100/sm,2) & "%" '计算百分比


Next

Chart.LegendVisible = True '显示图列

Chart.LegendCompass= CompassEnum.South '图列显示在东方(右方)





Dim ChartB As WinForm.Chart '定义一个图表变量

Dim SeriesB As WinForm.ChartSeries '定义一个图系变量

ChartB = e.Form.Controls("Chart2") ' 引用窗口中的图表

ChartB.VisualEffect = True '加上这一行,让你的图表更漂亮

ChartB.ChartType = ChartTypeEnum.Bar '图表类型该为Bar(条形)

ChartB.DataSource = "班组分析_table3" '设置绑定表

ChartB.SeriesList.Clear() '清除图表原来的图系


SeriesB = ChartB.SeriesList.Add() '增加第一个图系

SeriesB.Text = "需求数量"

SeriesB.X.DataField = "异常物料名称" 'X轴绑定到产品列

SeriesB.Y.DataField = "需求数量" 'Y轴绑定到数量列


SeriesB = ChartB.SeriesList.Add() '增加第二个图系

SeriesB.Text = "采购数量"

SeriesB.X.DataField = "异常物料名称" 'X轴绑定到产品列

SeriesB.Y.DataField = "采购数量" 'Y轴绑定到数量列


SeriesB = ChartB.SeriesList.Add() '增加第二个图系

SeriesB.Text = "回料数量"

SeriesB.X.DataField = "异常物料名称" 'X轴绑定到产品列

SeriesB.Y.DataField = "回料数量" 'Y轴绑定到数量列


SeriesB = ChartB.SeriesList.Add() '增加第二个图系

SeriesB.Text = "领料数量"

SeriesB.X.DataField = "异常物料名称" 'X轴绑定到产品列

SeriesB.Y.DataField = "领料数量" 'Y轴绑定到数量列


SeriesB = ChartB.SeriesList.Add() '增加第二个图系

SeriesB.Text = "需求金额"

SeriesB.X.DataField = "异常物料名称" 'X轴绑定到产品列

SeriesB.Y.DataField = "需求金额" 'Y轴绑定到数量列


SeriesB = ChartB.SeriesList.Add() '增加第二个图系

SeriesB.Text = "采购金额"

SeriesB.X.DataField = "异常物料名称" 'X轴绑定到产品列

SeriesB.Y.DataField = "采购金额" 'Y轴绑定到数量列


SeriesB = ChartB.SeriesList.Add() '增加第二个图系

SeriesB.Text = "回料金额"

SeriesB.X.DataField = "异常物料名称" 'X轴绑定到产品列

SeriesB.Y.DataField = "回料金额" 'Y轴绑定到数量列


SeriesB = ChartB.SeriesList.Add() '增加第二个图系

SeriesB.Text = "领料金额"

SeriesB.X.DataField = "异常物料名称" 'X轴绑定到产品列

SeriesB.Y.DataField = "领料金额" 'Y轴绑定到数量列


SeriesB = ChartB.SeriesList.Add() '增加第二个图系

SeriesB.Text = "补料金额"

SeriesB.X.DataField = "异常物料名称" 'X轴绑定到产品列

SeriesB.Y.DataField = "补料金额" 'Y轴绑定到数量列



ChartB.LegendVisible = True '显示图列

ChartB.LegendCompass= CompassEnum.South


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/28 10:23:00 [只看该作者]

先把表1和表3生成,再生成表2试试,有可能生成表2的时候触发了currentChanged事件。

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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2018/6/28 10:30:00 [只看该作者]

果然,没有再提示找不到制单号码了,但是chart2显示不正常,都挤到一块了,而且currentchanged换行后好像没有边化

图片点击可在新窗口打开查看此主题相关图片如下:未命名.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2018/6/28 10:30:35编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/28 10:35:00 [只看该作者]

chart绑定表的时候,无法设置filter的,不能只显示部分数据的。

 

如果要显示部分数据,必须编写代码赋值,看方法二 http://www.foxtable.com/webhelp/scr/0968.htm

 


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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2018/6/28 10:40:00 [只看该作者]

chart1又显示正常呢

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/28 10:48:00 [只看该作者]

如果要显示部分数据,必须编写代码赋值,看方法二 http://www.foxtable.com/webhelp/scr/0968.htm

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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2018/6/28 10:53:00 [只看该作者]

代码方式可以用双图表方式吗?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/28 11:00:00 [只看该作者]

以下是引用yetle在2018/6/28 10:53:00的发言:
代码方式可以用双图表方式吗?

 

可以,参考

 

http://www.foxtable.com/webhelp/scr/0970.htm

 

如果是双图表,改成 Series = Chart.SeriesList2.Add()


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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
由于异常物料名称太长,不好显示,我想将图片里面红框的名称调换过来,该怎么写,或者有没有更好的方法  发帖心情 Post By:2018/6/28 15:29:00 [只看该作者]

Dim ChartB As WinForm.Chart '定义一个图表变量
Dim SeriesB As WinForm.ChartSeries '定义一个图系变量

ChartB = e.Form.Controls("Chart2") ' 引用窗口中的图表
ChartB.ChartType = ChartTypeEnum.Bar '图表类型改为Bar(条形)
ChartB.SeriesList.Clear() '清除图表原来的图系
For Each c As Col In tB.Cols
    If c.Name <> "异常物料名称" And c.Name <> "制单号"    Then
        SeriesB = ChartB.SeriesList.Add() '增加一个图系
        SeriesB.Text = c.Name '设置图系的标题
        SeriesB.Length = tB.Rows.Count '设置图系的长度
        For rB As Integer = 0 To tB.Rows.Count - 1
            SeriesB.X(rB) = rB
            SeriesB.Y(rB) = tB.Rows(rB)(c.Name)
        Next
    End If
Next
For rB As Integer = 0 To tB.Rows.Count - 1 
    ChartB.AxisX.SetValueLabel(rB, tB.Rows(rB)("异常物料名称")) '指定字符表示
    ChartB.AxisX.AnnoRotation = - 15 'X轴标示逆时针旋转45度

Next
ChartB.AxisX.AnnoWithLabels = True '启用字符标示
ChartB.VisualEffect = True '加上这一行,让你的图表更漂亮
ChartB.LegendVisible = True '显示图列
ChartB.LegendCompass= CompassEnum.South '图列显示在南方(底端)
图片点击可在新窗口打开查看此主题相关图片如下:未命名12.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/28 16:10:00 [只看该作者]

做个例子发上来测试。

 回到顶部
总数 12 1 2 下一页