Foxtable(狐表)用户栏目专家坐堂 → 多值字段问题


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

主题:多值字段问题

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
多值字段问题  发帖心情 Post By:2018/8/19 19:10:00 [只看该作者]

老师为什么红色部分代码不起作用,如何调整?
需求是:删除dr("税piao号码")中的号码时,在"税piao登记"表中相应税piao号码对应行自动变为Nothing。


        If e.NewValue IsNot Nothing Then
            For Each fdr As DataRow In DataTables("税piao登记").Select("piao据类别 = '" & dr("piao据类别") & "' And 税piao状态 Is Null")
                If dr("税piao号码").Contains(fdr("税piao号码")) Then
                    fdr("税piao状态") = "已开piao"
                    fdr("开piao日期") = dr("开piao日期")
                    fdr("合同编号") = dr("合同编号")
                    fdr("项目名称") = dr("项目名称")
                End If
            Next
        Else
            Dim arys() As String = dr("税piao号码").Split(",")
            If arys.Length > 1 Then
                For Each ary As String In arys
                    Dim fdr As DataRow = DataTables("税piao登记").Find("税piao号码 = '" & ary & "'")
                    If fdr IsNot Nothing Then
                        fdr("税piao状态") = Nothing
                        fdr("开piao日期") = Nothing
                        fdr("合同编号") = Nothing
                        fdr("项目名称") = Nothing
                    End If
                Next
            Else
                Return
            End If
        End If

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



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


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

……

        Else
            For Each fdr As DataRow In DataTables("税piao登记").Select("税piao号码 in ( '" & e.OldValue .replace(",","','") & "')")
                fdr("税piao状态") = Nothing
                fdr("开piao日期") = Nothing
                fdr("合同编号") = Nothing
                fdr("项目名称") = Nothing
            Next
        End If
[此贴子已经被作者于2018/8/19 21:19:26编辑过]

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/8/20 16:29:00 [只看该作者]

老师:1、下拉框对应单元格的值显示,其他单元格已有的值不显示如何调整?


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



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

第二个需求:  税piao号码 25640001,25640002,25640003,当开piao金额为253000时,对应的前二个税piao金额各为100000,第三个为53000元,如何处理?谢谢


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


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

[此贴子已经被作者于2018/8/20 16:37:38编辑过]

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


加好友 发短信
等级:超级版主 帖子:110808 积分:563978 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/8/20 16:53:00 [只看该作者]

下拉窗口,去掉afterload事件代码,DropDownOpened代码改为

Dim str As String = DataTables("开piao明细").GetComboListString("税piao号码","[_Identify] <> " & Tables("开piao明细").Current("_Identify"))
StatusBar.Message2 = str
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree("税piao登记","piao据类别|类别代码|税piao号码","税piao号码 not in ('" & str.Replace("|",",").Replace(",","','") & "') And (税piao状态 Is Null or 税piao号码 in ('" & Tables("开piao明细").Current("税piao号码").Replace(",","','") & "'))")
trv.ExpandAll()

Dim s As String  = e.Form.DropDownBox.Value
Dim nms As new List(of String)
If s > "" Then
    nms.AddRange(s.Split(","))
End If
For Each nd As WinForm.TreeNode In trv.AllNodes
    nd.Checked = nms.Contains(nd.text)
Next

第二个需求分配的规则是什么?

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/8/20 16:58:00 [只看该作者]

老师
因为小规模企业的税piao开piao每张fa piao的金额最大值为10万元,所以超过10万元就得开二张fa piao,如果超过20万,就得开三张fa piao。

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


加好友 发短信
等级:超级版主 帖子:110808 积分:563978 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/8/20 17:09:00 [只看该作者]

    Case "税piao号码"
        If e.NewValue IsNot Nothing Then
            Dim m As Double = dr("金额明细_开piao金额")
            For Each fdr As DataRow In DataTables("税piao登记").Select("piao据类别 = '" & dr("piao据类别") & "' And 税piao状态 Is Null")
                If dr("税piao号码").Contains(fdr("税piao号码")) Then
                    fdr("税piao状态") = "已开piao"
                    fdr("开piao日期") = dr("开piao日期")
                    fdr("合同编号") = dr("合同编号")
                    fdr("项目名称") = dr("项目名称")
                    If m > 100000 Then
                        fdr("开piao金额")  = 100000
                        m = m-100000
                    Else
                        fdr("开piao金额")  = m
                    End If
                End If
            Next
        Else
            For Each fdr As DataRow In DataTables("税piao登记").Select("税piao号码 in ( '" & e.OldValue .replace(",","','") & "')")
                fdr("税piao状态") = Nothing
                fdr("开piao日期") = Nothing
                fdr("合同编号") = Nothing
                fdr("项目名称") = Nothing
            Next
        End If

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/8/20 17:52:00 [只看该作者]

老师十分感谢,基本满足要求,现在有个小问题:
在修改已选择几个税piao号码时,没有同时对“税piao登记”表进行调整,如何处理?谢谢


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


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

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




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


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

   Case "税piao号码"
        If e.NewValue IsNot Nothing Then
            Dim m As Double = dr("金额明细_开piao金额")
            For Each fdr As DataRow In DataTables("税piao登记").Select("税piao号码 in ( '" & e.OldValue.replace(",","','") & "')")
                fdr("税piao状态") = Nothing
                fdr("开piao日期") = Nothing
                fdr("合同编号") = Nothing
                fdr("项目名称") = Nothing
                fdr("开piao金额")  = Nothing
            Next
            For Each fdr As DataRow In DataTables("税piao登记").Select("税piao号码 in ( '" & e.NewValue.replace(",","','") & "')")
                'If dr("税piao号码").Contains(fdr("税piao号码")) Then
                fdr("税piao状态") = "已开piao"
                fdr("开piao日期") = dr("开piao日期")
                fdr("合同编号") = dr("合同编号")
                fdr("项目名称") = dr("项目名称")
                If m > 100000 Then
                    fdr("开piao金额")  = 100000
                    m = m - 100000
                Else
                    fdr("开piao金额")  = m
                End If
                'End If
            Next
        Else
            For Each fdr As DataRow In DataTables("税piao登记").Select("税piao号码 in ( '" & e.OldValue.replace(",","','") & "')")
                fdr("税piao状态") = Nothing
                fdr("开piao日期") = Nothing
                fdr("合同编号") = Nothing
                fdr("项目名称") = Nothing
                fdr("开piao金额") = Nothing
            Next
            dr("piao据类别") = Nothing
        End If


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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/8/20 20:57:00 [只看该作者]

老师还是不对
.NET Framework 版本:2.0.50727.8762
Foxtable 版本:2018.7.23.1
错误所在事件:表,开piao明细,DataColChanged
详细错误信息:
调用的目标发生了异常。
未设置对象变量或 With 块变量。


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


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

我测试没有问题。请确认抄对了代码!

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