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

标准单据的EXCEL导入麻烦,而且对于单据的明细行导入不支持,所以二开一种简单复制粘贴的功能,快速实现明细行的导入。 因为产品不支持对剪切板读写功能,所以只能手动从输入框中复制粘贴。
1.新增一个简单的动态表单,用于复制粘贴内容。
a在单据体中增加足够多的列(列不够按照FCOL+数字的标识 继续增加)
b.定义剪切板的识别规则,例如excel的\n换行 \t换格,也可以将换成对接系统的json格式,将文本转换成单据体数据。
c.默认首行为标题行,修改列标题,隐藏多余的列

关键代码
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格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



