自定义Excel导入功能原创
金蝶云社区-果果01
果果01
2人赞赏了该文章 95次浏览 未经作者许可,禁止转载编辑于2024年11月28日 11:13:27

 /// 开始导入单据体

        ///

        /// Excel文件 

        ///

        /// 特别说明:此函数仅演示如何把Excel转换为DataSet,

        /// 并读取DataSet内容,填写到单据体,

        /// 未进行任何的安全处理,实际生产环境,需要对数据的合法性进行严格的判断

        ///

        private void DoImportEntry(string fullFileName)

        {

            using (ExcelOperation helper = new ExcelOperation(this.View))

            {

                // 利用ExcelOperation对象,把xml文件,转为DataSet对象

                // 参数说明:

                // filePath : 完整的文件名,包含了物理目录

                // dataStartIndex : 数据开始行索引,从0开始。通常第一行为标题,第二行开始为数据行

                // colNameIndex : 列名所在行索引,从0开始。如此参数为0,表明第一行为列名行

                DataSet ds = helper.ReadFromFile(fullFileName, 1, 0);

                // 取第一个表格中的数据导入

                DataTable dt = ds.Tables[0];

                FormMetadata formMeta = MetaDataServiceHelper.Load(this.Context, "XDUA_CGCBSCDJ") as FormMetadata;

                DynamicObject model = new DynamicObject(formMeta.BusinessInfo.GetDynamicObjectType());

                //添加一行数据

                DynamicObjectCollection rows = model["FEntity"] as DynamicObjectCollection;

                int rowIndex = 1;

                foreach (DataRow dataRow in dt.Rows)

                {

                    // 单据体增加新行,并更新行索引

                    DynamicObject row = new DynamicObject(formMeta.BusinessInfo.GetEntity("FEntity").DynamicObjectType);

                    if (!dataRow["年份"].IsNullOrEmptyOrWhiteSpace())

                    {

                        row["F_XDUA_Year"] = dataRow["年份"].ToString();

                    }

                    if (!dataRow["月份"].IsNullOrEmptyOrWhiteSpace())

                    {

                        row["F_XDUA_Month"] = dataRow["月份"].ToString();

                    }

                    if (!dataRow["代码"].IsNullOrEmptyOrWhiteSpace())

                    {

                        row["F_XDUA_MATERIALNUMBER"] = dataRow["代码"].ToString();

                    }

                    if (!dataRow["名称"].IsNullOrEmptyOrWhiteSpace())

                    {

                        row["F_XDUA_MATERIALNAME"] = dataRow["名称"].ToString();

                    }

                    if (!dataRow["全名"].IsNullOrEmptyOrWhiteSpace())

                    {

                        row["F_XDUA_QM"] = dataRow["全名"].ToString();

                    }

                    if (!dataRow["规格型号"].IsNullOrEmptyOrWhiteSpace())

                    {

                        row["F_XDUA_MATERIALMODEL"] = dataRow["规格型号"].ToString();

                    }

                    if (!dataRow["市场含税平均单价"].IsNullOrEmptyOrWhiteSpace())

                    {

                        row["F_XDUA_SCPJDJ"] = dataRow["市场含税平均单价"].ToString();

                    }

                    if (!dataRow["税率"].IsNullOrEmptyOrWhiteSpace())

                    {

                        row["F_XDUA_SL"] = dataRow["税率"];

                    }

                    if (!dataRow["市场平均单价"].IsNullOrEmptyOrWhiteSpace())

                    {

                        row["F_XDUA_SCPJDJ2"] = dataRow["市场平均单价"];

                    }

                    if (!dataRow["全年市场平均价"].IsNullOrEmptyOrWhiteSpace())

                    {

                        row["F_XDUA_QNSCPJDJ"] = dataRow["全年市场平均价"];

                    }

                    row["Seq"] = rowIndex;

                    rows.Add(row);

                    rowIndex++;

                }

               IOperationResult result=  Utils.SaveDynamicObject(this.Context, "XDUA_CGCBSCDJ", model);

                if (result.IsSuccess)

                {

                    string billID = result.SuccessDataEnity.FirstOrDefault()["Id"].GetString();

                    string billNo = result.SuccessDataEnity.FirstOrDefault()["BillNo"].GetString();

                    //执行提交

                    ISubmitService submitService = ServiceHelper.GetService<ISubmitService>();

                    // 忽略全部需要交互性质的提示

                    OperateOption operateOption = OperateOption.Create();

                    operateOption.SetIgnoreWarning(false);//不弹出警告信息

                    operateOption.SetValidateFlag(false);//不走验证事件

                    IOperationResult submitResult = submitService.Submit(this.Context, formMeta.BusinessInfo,

                        new object[] { billID }, "Submit", operateOption);

                    //if (submitResult.IsSuccess)

                    //{

                    //    //审核

                    //    IAuditService aduitService = ServiceHelper.GetService<IAuditService>();

                    //    IOperationResult aduitResult = aduitService.Audit(this.Context, formMeta.BusinessInfo,

                    //        new object[] { billID }, operateOption);

                    //}

                    this.View.ShowMessage("市场单价导入成功!");

                    this.View.Refresh();

                }

            }

        }


图标赞 2
2人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!