电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

插件案例 —— 服务端基础资料赋值技巧

来源:金蝶云社区作者:金蝶2024-09-1610

插件案例 —— 服务端基础资料赋值技巧


案例背景


下推的时候,有的时候我们可以在单据转换里面进行下游基础资料携带。但是有的基础资料没有办法经过携带,比如想下推过后默认携带当前用户的采购员、销售员,这些需要先取数,再赋值。



错误思路


直接给数据包赋值,比如 :

billObj["PurchaserId_Id"] =12138;

但是这样虽然能给给数据包赋值,界面上不显示呀,对应的数据模型没有填充。



代码思路一

如果基础资料仅后台生成过后,暂存,其实也确实是不需要赋值基础资料包,只要把对应的ID填写进数据库了,下次加载的时候,就会自动重新构建包。


代码思路二

BaseDataField purchaserIdField = e.TargetBusinessInfo.GetField("FPURCHASEID");
headDyn["PurchaserId_Id"]  = Convert.ToInt64(取数的Id);
FieldUtils.SetBaseDataFieldValue(this.Context, purchaserIdField, headDyn, headDyn["PurchaserId_Id"]);


FieldUtils.SetBaseDataFieldValue 其实利用的就是基础资料包Load后,再SetValue了。


public static void SetBaseDataFieldValue(Context ctx,BaseDataField field, DynamicObject data, object value)
{
    long lPKValue = 0;
    Int64.TryParse(value.ToString(), out lPKValue);
    if (value.ToString().Length > 1 || lPKValue > 0)
    {
        DynamicObject valueObj = LoadReferenceData(ctx, field.RefFormDynamicObjectType, (object)value);
        field.DynamicProperty.SetValue(data, valueObj);
        filed.RefIDDynamicProperty.SetValue(data, value);
    }
    else
    {
        field.DynamicProperty.SetValue(data, null);
        field.RefIDDynamicProperty.SetValue(data, 0);
    }
}
public static Dynam

插件案例 —— 服务端基础资料赋值技巧

案例背景下推的时候,有的时候我们可以在单据转换里面进行下游基础资料携带。但是有的基础资料没有办法经过携带,比如想下推过后默认携带当...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信