二开案例.服务插件.分组数据记录创建时间修改时间

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

二开案例.服务插件.分组数据记录创建时间修改时间

【应用场景】

标准产品,分组数据新增修改,不会自动记录制单人和制单时间等信息,目前需要二开支持。

本方案支持界面维护分组和WebApi维护分组。



【案例演示】

物料分组,新增分组和修改分组时,自动记录创建人,创建时间,修改人和修改时间。


【实现步骤】

<1>连接数据中心所在数据库,执行以下SQL,给物料分组表创建新字段。

-- 物料分组表新增字段:创建人,创建时间,修改人,修改时间
ALTER TABLE T_BD_MATERIALGROUP ADD FCREATORID INT NOT NULL DEFAULT(0);
ALTER TABLE T_BD_MATERIALGROUP ADD FCREATEDATE DATETIME NULL;
ALTER TABLE T_BD_MATERIALGROUP ADD FMODIFIERID INT NOT NULL DEFAULT(0);
ALTER TABLE T_BD_MATERIALGROUP ADD FMODIFYDATE DATETIME NULL;


<2>编写服务插件,代码如下。

using Kingdee.BOS.App.Data;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Util;
using System.ComponentModel;
using System.Text;
namespace Jac.XkDemo.BOS.App.PlugIn
{
    /// <summary>
    /// 【服务插件】分组数据记录创建时间修改时间
    /// </summary>
    [Description("【服务插件】分组数据记录创建时间修改时间"), HotUpdate]
    public class GroupDataAddCreateInfoOperationServicePlugIn : AbstractOperationServicePlugIn
    {
        public override void EndOperationTransaction(EndOperationTransactionArgs e)
        {
            base.EndOperationTransaction(e);
            var tableName = "T_BD_MATERIALGROUP";
            if (this.BusinessInfo.GetEntity(0).TableName.EqualsIgnoreCase(tableName))
            {
                var sqls = new StringBuilder();
                foreach (var dataEntity in e.DataEntitys)
                {
                    string sql;
                    if (!dataEntity.DataEntityState.FromDatabase)
                    {
                        // 新增分组,更新创建人创建日期
                        sql = string.Format("UPDATE {0} SET FCREATORID={1},FCREATEDATE=NOW() WHERE FID={2};", tableName, Context.UserId, dataEntity[0]);
                    }
                    else
                    {
                        // 修改分组,更新修改人修改日期
                        sql = string.Format("UPDATE {0} SET FMODIFIERID={1},FMODIFYDATE=NOW() WHERE FID={2};", tableName, Context.UserId, dataEntity[0]);
                    }
                    sqls.Append(sql).AppendLine();
                }
                DBUtils.Execute(Context, sqls.ToString());
            }
        }
    }
}


<3>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。


<4>BOSIDE扩展数据分组[BOS_FORMGROUP],操作列表,保存操作注册服务插件,保存元数据,开发完毕。



【功能验证】

<1>登录业务站点,打开物料列表,新增分组,修改分组,然后后台查询分组数据,此时已能记录到创建时间,修改时间。

---------------------------------------------------------------------------------------------------------













【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696

二开案例.服务插件.分组数据记录创建时间修改时间

【应用场景】标准产品,分组数据新增修改,不会自动记录制单人和制单时间等信息,目前需要二开支持。本方案支持界面维护分组和WebApi维护分...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息