首页 > 其他分享 >多分录下推插件模板,亮点:只需配置好参数,代码无需改动

多分录下推插件模板,亮点:只需配置好参数,代码无需改动

时间:2024-09-18 23:02:25浏览次数:9  
标签:插件 分录 下推 QGXM using View public string

多分录下推插件模板,金蝶云星空企业版

亮点:只需配置好参数,代码无需改动

using Kingdee.BOS.Core.Bill.PlugIn;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Util;
using System;
using System.ComponentModel;
using System.Data;

namespace CQXR.DDL.K3.BOS.BusinessPlugIn.BillPlugIn
{
    [HotUpdate]
    [Description("xx模块--下推xxx,携带xxx,yyy")]
    public class XxxxYyyy : AbstractBillPlugIn
    {
        //上下游单据 参数
        public string ydbh = "F_QGXM_YDBH";//源单编号

        //分录表名
        public string[] tn = 
        { 
            "F_QGXM_Entity_8DBG",
            "F_QGXM_YZCS",
            "F_QGXM_8DBGCXZG"
        };
        //分录标识
        public string[] id = 
        { 
            "F_QGXM_Entity_8DBG_yrr",
            "F_QGXM_YZCS_tqn",
            "F_QGXM_8DBGCXZG_795"
        };
        // 变更分录 字段 标识 
        public string[,] field =
        {
            {"F_QGXM_Base_re5_h1g","F_QGXM_DHHM_zc5","F_QGXM_GW_imu","F_QGXM_Text_ca9_1xj"},
            {"F_QGXM_Text_795_c1c", "F_QGXM_Base_qku_vb1","F_QGXM_Date_fg2_emq","F_QGXM_Text_w5c_xwf"},
            {"F_QGXM_Text_795_vb1_qku","F_QGXM_Base_qku_c1c_9uj","F_QGXM_WCRQ_s58","F_QGXM_Text_yrr_bgx" }
        };
        // ORM实体名 字段 如果字段属性=基础资料 后面要加 _Id
        public string[,] orm =
        {
            { "F_QGXM_BASE_RE5","F_QGXM_DHHM","F_QGXM_GW","F_QGXM_TEXT_CA9" },
            { "F_QGXM_TEXT_795","F_QGXM_BASE_QKU","F_QGXM_DATE_FG2","F_QGXM_TEXT_W5C"},
            {"F_QGXM_TEXT_795","F_QGXM_BASE_QKU","F_QGXM_WCRQ","F_QGXM_TEXT_YRR" }
        };
        /// <summary>
        /// 获取SQL语句的字段拼接字串
        /// </summary>
        /// <param name="preword"></param>
        /// <param name="m"></param>
        /// <param name="orms"></param>
        /// <returns></returns>
        public string getFields(string preword, string[,] orms, int m)
        {
            string fields = "";
            for (int i = 0; i < orms.GetLength(1); i++)
            {
                fields += preword + orms[m,i];
                if (i < orms.GetLength(1) - 1)
                {
                    fields += ",";
                }
            }
            return fields;
        }
        /// <summary>
        /// 下推代码
        /// </summary>
        /// <param name="e"></param>
        public override void AfterBindData(EventArgs e)
        {
            base.AfterBindData(e);

            if (this.View.OpenParameter.Status.Equals(OperationStatus.ADDNEW))
            {
                string billno = Convert.ToString(this.View.Model.GetValue(ydbh));
                if (billno != "")
                {
                    for(int m = 0; m < tn.Length; m++)
                    {
                        //查询分录数据
                        var sql = $@"/*dialect*/
                        select {getFields("a.",orm, m)} 
                        from {tn[m]} a
                        inner join t_8dreport b on a.fid=b.fid
                        where b.fbillno='{billno}'";
                        DataTable ds = DBServiceHelper.ExecuteDataSet(this.Context, sql).Tables[0];
                        //string aid = id;//单据体标识
                        if (ds != null && ds.Rows.Count > 0)
                        {
                            this.View.Model.DeleteEntryData(id[m]);
                            //循环读取每一行数据
                            for (int i = 0; i < ds.Rows.Count; i++)
                            {
                                this.View.Model.CreateNewEntryRow(id[m]);
                                for(int n = 0; n < orm.GetLength(1); n++)
                                {
                                    //分录赋值
                                    this.View.Model.SetValue(field[m,n], ds.Rows[i][orm[m,n]].ToString(), i);
                                }
                            }
                        }
                        //刷新单据体
                        this.View.UpdateView(id[m]);
                    }
                }
            }
        }
    }
}

 

标签:插件,分录,下推,QGXM,using,View,public,string
From: https://www.cnblogs.com/wishit/p/18419532

相关文章

  • 反写多选基础资料 金蝶云星空 企业版 插件
    反写多选基础资料[Kingdee.BOS.Util.HotUpdate][Description("xx模块-下推xxx--审核服务插件反写多选基础资料")]publicclassXxxxYyyy:AbstractOperationServicePlugIn{publicoverridevoidOnPreparePropertys(Kingdee.BOS.Core.DynamicFor......
  • 金蝶星空企业版 插件 通过SQL反写数据
    金蝶星空企业版插件通过SQL反写数据[Kingdee.BOS.Util.HotUpdate][Description("xx模块-下推stepx--xx插件反写xx资料")]publicclassXxxxYyyy:AbstractOperationServicePlugIn{publicstringydbh="F_QGXM_YDBH";//源单编号public......
  • HighlightPlus插件介绍
    仅对官方文档进行了翻译注意:官方文档本身就落后实际,但对入门仍很有帮助,核心并没有较大改变,有的功能有差异,以实际为准.(目前我已校正了大部分差异,后续我会继续维护该文档)为什么为该插件做翻译?功能强大,使用简单,且还在维护.基于此版本的内置渲染管线文档快速开......
  • zblog上传安装主题插件不成功的原因和解决办法
    当在Z-Blog中上传安装主题或插件不成功时,可能的原因有很多。下面列出了一些常见的原因及相应的解决办法:1.文件大小超出限制问题描述:上传的文件包可能超出了服务器允许的最大文件大小。解决方法:检查后台的“全局设置”中的“允许上传文件的大小”,并适当增大这个值。如果......
  • 一款源码阅读的插件
    文章目录进度汇报功能预览添加高亮标记高亮风格设置笔记颜色设置数据概览高亮数据详情结尾进度汇报之前提到最近有在开发一个源码阅读的IDEA插件,第一版已经开发完上传插件市场了,等官方审批通过就可以尝鲜了。插件名称:Marksourcecode,别纠结名字了,简单的介绍一下......
  • zblog水印插件上传图片提示getimagesize(tem/phpOMxjlk)错误
    当在Z-Blog中使用水印插件上传图片时出现 getimagesize(tem/phpOMxjlk) 错误,这通常意味着 getimagesize 函数在处理图片时遇到了问题。这个错误可能是由以下几个原因引起的:1.图片文件不存在或路径错误问题描述:getimagesize 函数尝试访问一个不存在的文件或路径错误。......
  • 如何解决zblog定时发布插件无效问题?
    解决Z-Blog定时发布插件无效的问题可以从以下几个方面入手:1.检查插件兼容性问题描述:插件可能与当前Z-Blog版本不兼容。解决方法:确认插件版本是否适用于您的Z-Blog版本。如果插件版本过旧或过新,尝试寻找与您的Z-Blog版本相匹配的插件版本。2.检查插件配置问......
  • Zblog采集插件安装失败解决方法
    如果在安装Z-Blog采集插件时遇到失败的情况,可以按照以下步骤进行排查和解决:1.检查插件兼容性问题描述:插件与当前Z-Blog版本不兼容。解决方法:确认插件是否适用于您当前使用的Z-Blog版本。如果插件版本过旧或过新,尝试寻找与您的Z-Blog版本相匹配的插件版本。2.......
  • zblog水印插件上传图片提示getimagesize
    当您在使用Z-Blog的水印插件上传图片时遇到 getimagesize 的错误提示,这通常意味着PHP在尝试获取图片信息时出现了问题。getimagesize 函数用于获取图像尺寸和其他信息,如果它无法正常工作,可能是由于以下几个原因:文件类型不支持:getimagesize 不支持所有类型的图像文件。......
  • 渗透测试中16款实用的谷歌插件分享
    所有插件我都放在这个网盘链接了,自行下载即可https://pan.quark.cn/s/2b4f4823fb3b效果图如下首先打开谷歌浏览器,-》扩展程序启动开发者模式打开谷歌版本信息,获取插件路径浏览器输入chrome://version将插件压缩包全部解压放在这个路径就ok了,C:\Users\Admini......