Foxtable(狐表)用户栏目专家坐堂 → 求一个代码优化思路,谢谢


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

主题:求一个代码优化思路,谢谢

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


加好友 发短信
等级:婴狐 帖子:7 积分:130 威望:0 精华:0 注册:2025/3/6 10:56:00
求一个代码优化思路,谢谢  发帖心情 Post By:2025/3/7 18:39:00 [只看该作者]

代码如下  感觉非常累赘 请优化思路谢谢
If r IsNot Nothing Then
    Forms("SL_销售退货选择").show
    If PublicJson IsNot Nothing Then
        Dim ja As JArray = PublicJson
        If ja.Count > 0 Then
            Dim t As Table = Tables(eForm.Name & "_Table1")
            For Each jt As JToken In ja
                '只添加不重复行
                If t.FindRow("Guid_销售订单='" & CStr(jt("Guid_销售订单")) & "'") = -1 Then
                    Dim nr As Row = t.AddNew()
                    '不一样的赋值
                    'nr(eForm.Name & "单号") = r("单号") '必须填写关联的主表ID
                    nr("编号") = r("编号") '必须填写关联的主表ID
                    nr("销售退货单明细ID")= Guid.NewGuid.ToString
                    '以下完全一样求优化思路协助
                    nr("产品编号")=CStr(jt("产品编号"))
                    nr("产品名称")=CStr(jt("产品名称"))
                    nr("产品类别")=CStr(jt("产品类别"))
                    nr("规格")=CStr(jt("规格"))
                    nr("数量")=CStr(jt("实际出库数量"))
                    nr("单价")=CStr(jt("单价"))
                    'nr("金额")=CStr(jt("金额"))
                    nr("单位")=CStr(jt("单位"))
                    nr("产品条码")=CStr(jt("产品条码"))
                    nr("备注")=CStr(jt("备注"))
                    nr("性质")=CStr(jt("性质"))
                    nr("颜色")=CStr(jt("颜色"))
                    nr("颜色型号")=CStr(jt("颜色型号"))
                    nr("分类")=CStr(jt("分类"))
                    nr("型号")=CStr(jt("型号"))
                    nr("材质")=CStr(jt("材质"))
                    nr("上级名称")=CStr(jt("上级名称"))
                    nr("钢板")=CStr(jt("钢板"))
                    nr("属性")=CStr(jt("属性"))
                    nr("结")=CStr(jt("结"))
                    nr("存")=CStr(jt("存"))
                    nr("状态")=CStr(jt("状态"))
                    nr("ID")=CStr(jt("ID"))
                    nr("拼音码")=CStr(jt("拼音码"))
                    nr("底材色")=CStr(jt("底材色"))
                    nr("来源")=CStr(jt("来源"))
                    nr("去向")=CStr(jt("去向"))
                    nr("安全库存_最低")=CStr(jt("安全库存_最低"))
                    nr("安全库存_合理")=CStr(jt("安全库存_合理"))
                    nr("安全库存_最高")=CStr(jt("安全库存_最高"))
                    nr("账面差数")=CStr(jt("账面差数"))
                    nr("安全库存")=CStr(jt("安全库存"))
                    nr("销售退货单ID")= CStr(jt("销售退货单ID"))
                    nr("销售出库单明细ID")= CStr(jt("销售出库单明细ID"))
                    nr("出库单结案")=CStr(jt("出库单结案"))
                    nr("销售订单结案")=CStr(jt("销售订单结案"))
                    nr("Guid_销售订单")=CStr(jt("Guid_销售订单"))
                    nr("Guid_销售生产单")=CStr(jt("Guid_销售生产单"))
                    nr("Guid_主计划")=CStr(jt("Guid_主计划"))
                    nr("Guid_机台计划")=CStr(jt("Guid_机台计划"))        
                End If
            Next
        End If
        Tables(eform.name & "_Table1").Save
        Tables(eform.name & "_Table1").AutoSizeCols()
    End If
End If

[此贴子已经被作者于2025/3/7 18:53:04编辑过]

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


加好友 发短信
等级:狐神 帖子:4861 积分:35241 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2025/3/7 19:49:00 [只看该作者]

声明列名数组,然后遍历

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


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

参考:http://www.foxtable.com/webhelp/topics/1533.htm

如果黄色部分是除了"编号"、"销售退货单明细ID"后剩余的列,可以这样

for each c as col in t.cols
if c.name <> "编号" andalso c.name <> "销售退货单明细ID" then
    if jt(c.name) isnot nothing then
nr(c.name)=CStr(jt(c.name))
    end if
end if
next

如果只是部分列,参考帮助的第2段代码使用

 回到顶部