表单插件GetValue/SetValue踩坑记录23-03-151、单据GetValue/SetValue直接参考示例进行操作,无明显踩坑点,需注意部分是相关SQL脚本启用多组织时需要根据组织进行筛选--组织select*fromT_ORG_ORGANIZATIONSselect*fromT_ORG_ORGANIZATIONS_LwhereFORGID=1--客户表selectFCUSTID,FUSEORGIDfromT_BD_CUSTOMERwhereFUSEORGID=1--物料select*fromT_BD_MATERIALwhereFUSEORGID=1if(e.BarItemKey.Equals("tbTestSetValue")){//找到对应的按钮//给备注赋值this.View.Model.SetValue("FNote","你好世界");stringstr=this.View.Model.GetValue("FNote").ToString();//this.View.Model.SetValue("FNote2",str+"复制成功");//objectobj=this.View.Model.GetValue("FCustId");//this.View.Model.SetValue("FNote2",obj);//给客户赋值this.View.Model.SetValue("FCustId",101249);//多选字段赋值object[]custs=newobject[]{"101289","101292","101294"};this.View.Model.SetValue("F_WNZJ_MulBase_KHQ",custs);//给单据体赋值this.View.Model.SetItemValueByNumber("FMaterialId","1.01.001.0002",0);//单据体值更新,会带出物料相关资料this.View.InvokeFieldUpdateService("FMaterialId",0);this.View.Model.SetValue("FQty",100,0);//都要刷新下才生效this.View.InvokeFieldUpdateService("FQty",0);this.View.Model.SetValue("FTaxPrice",88.89,0);//都要刷新下才生效this.View.InvokeFieldUpdateService("FTaxPrice",0);//this.View.Model.SetItemValueByNumber("FMaterialId","1.01.001.0003",1);//this.View.InvokeFieldUpdateService("FMaterialId",1);//this.View.Model.SetItemValueByID("FMaterialId","100126",2);数据调试取值得方式,直接通过obj对象来看数据2、单据体赋值缺省行数需要调整,不然代码无法进行直接插入//this.View.InvokeFieldUpdateService("FMaterialId",2);//刷新字段//this.View.UpdateView("FNote");//this.View.UpdateView("FNote2");//this.View.UpdateView("FCustId");//this.View.UpdateView("F_WNZJ_MulBase_KHQ");this.View.UpdateView();}注意:缺省行数调整之后不生效的话建议就重启下BOS设计器,之前保存/签入一直不行,重启完BOS设计器之后才生效,估计是缓存问题?单据体触发值更新设置销售数量可以看到设置的税额并没有同步计算出来this.View.Model.SetValue("FQty",100,0);涉及到了赋值的都需要触发下值更新才行已踩未填的坑,后续遇到的时候再看下怎么来弄【多类别基础资料】、【多类别基础资料列表】,多类别基础资料可以正常根据列表来获取数据,但是点击确定的时候提示对象名无效this.View.InvokeFieldUpdateService("FTaxPrice",0);