以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 求一个代码优化思路,谢谢 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=195768) |
-- 作者:广西老表哥 -- 发布时间: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 -- 发布时间:2025/3/7 19:49:00 -- 声明列名数组,然后遍历 |
-- 作者:有点蓝 -- 发布时间: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段代码使用
|