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

学习笔记-明细EXCEL导入功能

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

学习笔记-明细EXCEL导入功能

    标准单据的EXCEL导入麻烦,而且对于单据的明细行导入不支持,所以二开一种简单复制粘贴的功能,快速实现明细行的导入。  因为产品不支持对剪切板读写功能,所以只能手动从输入框中复制粘贴。

  1.新增一个简单的动态表单,用于复制粘贴内容。

image.webpa在单据体中增加足够多的列(列不够按照FCOL+数字的标识 继续增加)

b.定义剪切板的识别规则,例如excel的\n换行 \t换格,也可以将换成对接系统的json格式,将文本转换成单据体数据。

c.默认首行为标题行,修改列标题,隐藏多余的列

Kingdee.BOS.XPF.App_BxnTQOjpB0.webp

关键代码

 string pasteText =Convert.ToString(this.Model.GetValue("FGETTXT"));
                string[] lines = pasteText.Trim().Split('\n');
                string[] valsa = lines[0].Split('\t');
                Entity entity = this.View.BillBusinessInfo.GetEntity("FEntity");
               
                bool havtitle = Convert.ToBoolean(this.Model.GetValue("FHAVETITLE"));
                bool FISADD = Convert.ToBoolean(this.Model.GetValue("FISADD"));
                if (!FISADD) {
                    this.View.Model.DeleteEntryData("FEntity");
                }
                int sindex = 0;
                if (havtitle) {
                    sindex = 1;
                }
                int rowcount = this.View.Model.GetEntryRowCount("FEntity");
                for (int i = sindex; i < lines.Length; i++)
                {
                    string[] vals = lines[i].Split('\t');
                    this.View.Model.CreateNewEntryRow("FEntity"); int j = 1;
                    this.View.Model.SetValue("FCHECK", true, i - sindex+ rowcount);
                    foreach (string tmp in vals)
                    {
                        string ntmp = tmp.Replace("\n", "").Replace(" ", "").Replace("\t", "").Replace("\r", "").Replace("NULL", "").Replace(",", "").Replace(",", "");

                        this.View.Model.SetValue("FCOL" + j.ToString(), ntmp, i - sindex+ rowcount);

                        j++;
                    }
                }

                this.View.UpdateView();

                List<EnumItem> valueItem = new List<EnumItem>();

                selids = ""; selname = new List<string>();
                foreach (var pr in entity.DynamicObjectType.Properties)
                    {
                    
                        if (pr.Name.Contains("FCOL"))
                        {
                            int rindex = Convert.ToInt32(pr.Name.Replace("FCOL", ""));
                            if (rindex > vals

学习笔记-明细EXCEL导入功能

标准单据的EXCEL导入麻烦,而且对于单据的明细行导入不支持,所以二开一种简单复制粘贴的功能,快速实现明细行的导入。 因为产品不支...
点击下载文档文档为doc格式

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

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