Foxtable(狐表)用户栏目专家坐堂 → 出错了


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

主题:出错了

美女呀,离线,留言给我吧!
采菊东篱下
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
出错了  发帖心情 Post By:2019/4/8 20:58:00 [只看该作者]

  我昨晚做了一个多选加载树,今天早上发现整个软件打不开,以为试用版到期不让打开了,于是中午赶紧付了16888元的企业高级开发版的钱,现在发现不是试用版到期,我用了不到一个月应没到期,输入密码后同时摁着CTRL键点打开,能打开了,说明出现错误了,现在数据列表中的进仓金额、出仓金额代表式列不会自动计数,左停靠的多选加载树窗口也没显,项目属性的AfterOpenProject事件中的这段代码应也有问题,麻烦帮我看一下,我刚学,不知怎么处理,谢谢。

Dim drs As New List(of DataRow)
With DataTables("数据列表")
    For Each nm As String() In .GetValues("产品名称|规格型号") '找出每个产品的第一行数据, 添加到集合drs中
'For Each nm As String() In nms
        drs.Add(.Find("[产品名称] = '" & nm(0) & "'","[_SortKey]"))
        drs.Add(.Find("[规格型号] = '" & nm(1) & "'","[_SortKey]"))
    Next
    For Each r As DataRow In drs
        .DataCols("主计量单位进仓数量").RaiseDataColChanged(r) '重置每个产品的第一行
    Next
End With
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:仓库账.rar


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


加好友 发短信
等级:超级版主 帖子:110581 积分:562801 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/4/8 21:04:00 [只看该作者]

请贴出开发者密码

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2019/4/8 21:06:00 [只看该作者]

732100

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110581 积分:562801 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/4/8 22:06:00 [只看该作者]

去掉数据列表的BeforeSort和AfterSort代码。死循环了

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2019/4/8 22:14:00 [只看该作者]

我有点明白了,

数据列表的表属性DataColChanged事件中的高级流水账,金额列是代表式,不能直接运算,要用数量乘单价计算,大概是这出错了,点项目属性确定一下,数据列表中的加载树又出现了。


 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2019/4/9 0:02:00 [只看该作者]

现在加载树正常显示了,但显示所有行是去除复选框中的勾才显示,我想改为打勾显示,另表属性中DataColChanged事件的高效率流水账代码有问题,无法算出结余,我注识了,麻烦帮我看看。

开发者密码是:732100

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

[此贴子已经被作者于2019/4/9 0:03:12编辑过]

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


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

1、改成下面

 

Dim trv As WinForm.TreeView = e.Sender
Dim flt As String = "1=2"
'If e.node.Text = "显示所有行" Then
'flt = ""
'Else
For Each nd As WinForm.TreeNode In e.node.Nodes '清除子节点选中状态
    nd.Checked = False
Next
If e.node.ParentNode IsNot Nothing Then '去掉父节点选中状态
    e.node.ParentNode.Checked = False
End If
For Each nd As WinForm.TreeNode In trv.AllNodes
    If nd.Checked Then
        If e.node.Text = "显示所有行" Then
            flt = ""
        Else
            If flt > "" Then
                flt = flt & " Or "  '注意用or而不是And
            End If
            If nd.Level = 0 Then '注意下面的条件都要用括号括起来
                flt = flt & "( 货品属性 = '" & nd.Text & "')"
            Else
                flt = flt & "( 货品属性 = '" & nd.ParentNode.Text & "' And 物料分类 = '" & nd.Text & "')"
            End If
        End If
    End If
Next
DataTables("数据列表").LoadFilter = flt
DataTables("数据列表").Load()

 

2、你这个是加载,不是筛选

 

DataTables("数据列表").LoadFilter = flt
DataTables("数据列表").Load()

 

如果要筛选,改成,如

 

Tables("数据列表").Filter = flt

 

但你的数据加载不完全,计算流水有可能出错的。你试试把全部数据都加载出来以后,再测试计算流水账。


 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2019/4/9 13:46:00 [只看该作者]

现在我改了一下流水账代码,表事件里只计算数量结余,金额因单价要进行月末一次加权平均法计算,要另做在安扭上执行。现出现问题,请问怎么解决?哦对了,部份存货因未清期初结存,只有领用没进仓,出现负数,是否负数影响的问题?能否先让它负数显示,等以后领清了存货,再补记存货结平账。

 


图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:仓库账.rar

开发者密码:732100
[此贴子已经被作者于2019/4/9 13:47:53编辑过]

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


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

参考代码

 

For Each ary() As String In DataTables("数据列表").GetValues("产品名称|规格型号", "规格型号 is not null")
    Dim dr As DataRow = DataTables("数据列表").Find("[产品名称] = '" & ary(0) & "' And [规格型号] = '" & ary(1) & "'", "[_SortKey]")
    Dim drs As List(of DataRow)
    dr("结余数量") = dr("主计量单位进仓数量") - dr("主计量单位出仓数量")
   
    drs = DataTables("数据列表").Select("[_SortKey] >= " & dr("_SortKey") & "And [产品名称] = '" & dr("产品名称") & "' And [规格型号] = '" & dr("规格型号") & "'", "[_SortKey]")
    For i As Integer = 1 To drs.Count - 1
        drs(i)("结余数量") = drs(i-1)("结余数量") + drs(i)("主计量单位进仓数量") - drs(i)("主计量单位出仓数量")
    Next
Next


 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2019/4/9 16:08:00 [只看该作者]

不行,规格为空的没计算出结余,有的货品只有产品名称没规格的,你这代码不全面。

 回到顶部
总数 32 1 2 3 4 下一页