【二开示例】查看源单的源单的影像原创
金蝶云社区-云社区用户4t880544
云社区用户4t880544
46人赞赏了该文章 554次浏览 未经作者许可,禁止转载编辑于2023年08月28日 08:30:27

1、单据新增一个文本字段,字段ID为FSrcSrcImageNo,用于保存源单的源单的影像编码

image.png


2、编辑“共享中心查看影像”操作,勾选“查看指定影像”,选择刚刚新增的字段

image.png


3、在 "查看影像" 按钮事件上增加空操作,上移到"查看影像操作"前面:

image.png


4、空操作上绑定二开服务插件,服务插件会查询源单的源单的影像编码,填入数据包中

image.png

服务插件代码如下:

using Kingdee.BOS.Core.DynamicForm.PlugIn;
using System.Linq;

namespace TestPlugin
{
    /// <summary>
    /// 空操作插件源码
    /// </summary>
    [Kingdee.BOS.Util.HotUpdate]
    public class GetImageServicePlugin : AbstractOperationServicePlugIn
    {
        public override void BeforeExecuteOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeforeExecuteOperationTransaction e)
        {
            var sel = e.SelectedRows;
            for (int i = 0; i < e.SelectedRows.Count(); i++)
            {
                var entity = e.SelectedRows.ToArray()[i];
                var formId = this.BusinessInfo.GetForm().Id;
                var id = entity["Id"].ToString();

                //获取源单的源单的影像编码,填入文本字段
                var srcSrcImageNo = GetSrcSrcImageNo(formId, id);
                if (!string.IsNullOrWhiteSpace(srcSrcImageNo))
                {
                    entity["FSrcSrcImageNo"] = srcSrcImageNo;
                }
            }
        }


        /// <summary>
        /// 获取源单的源单影像编号
        /// </summary>
        /// <param name="formId">本单的FormId</param>
        /// <param name="id">本单的内码</param>
        /// <returns></returns>
        string GetSrcSrcImageNo(string formId, string id)
        {
            //TODO:用SQL查到源单的源单FormId和内码Id
            var srcSrcFormId = "xxxx";  //源单的源单的单据类型
            var srcSrcId = "10001";   //源单的源单的内码

            //根据FormId和内码,查询影像号
            var sql = string.Format("SELECT FBILLNO FROM T_ASC_PROCINST WHERE FOBJECTTYPEID = '{0}' AND FOBJECTKEYVALUE = '{1}'", srcSrcFormId, srcSrcId);
            return Kingdee.BOS.App.Data.DBUtils.ExecuteScalar<string>(this.Context, sql, "");
        }

    }
}



赞 46