Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共3 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

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

1楼
广西老表哥 发表于: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编辑过]
2楼
y2287958 发表于:2025/3/7 19:49:00
声明列名数组,然后遍历
3楼
有点蓝 发表于: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段代码使用
共3 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .01904 s, 2 queries.