点晴MIS内部交流论坛 加入收藏
新手上路
论坛搜索
 您的位置:点晴MIS系统问题答疑『 经验分享&问题答疑 』浏览当前帖子  
登 陆注 册论坛帮助  

  网站搜索
  搜索范围: 搜索方式: 关键词(可用空格分开)  

  作者及文章信息: 本文热度:416 % 
admin

积分:74803
等级:网站管理员
文数:13698
注册:2004-7-20

 信息   留言   主页   编辑   引用    

楼 顶 

 零代码开发助手之Excel批量导入设计操作指引


:零代码开发助手之Excel批量导入设计操作指引

 
零代码开发助手中Excel导入设计功能是用于自动实现点晴OA中数据库表和各个操作页面上批量导入数据的自动化工具,通过本功能模块,无需编写程序,也无需专门设计Excel模板,就可以方便快捷的直接使用客户提供的各种不同Excel模板样本(无需对客户提供的Excel模板样本做任何改动),自动生成Excel模板样本中信息映射到SQL Server数据表字段或新增页面上的字段,并且导入时自动进行数据有效性校验(文本是否超长、数字/日期是否合法等),支持自定义JS脚本,然后将Excel模板中的数据自动批量导入到点晴OA系统的后台数据库表中或者相应操作页面上。

Excel导入分为两种:
1、各个功能模块的新增页面上批量加载Excel数据,销售订单、采购订单、报价单、询价单、、、。
2、SQL Server后台数据库表直接批量导入;

、给新增页面添加Excel批量导入功能
下面介绍Excel导入设计方法,先介绍如何快速给各个模块的新增页面添加Excel批量导入功能。
给新增页面添加Excel批量导入功能又分为两种情况:
情况一:新增页面上的信息存在于1-2个数据表中
  例如采购订单表、销售订单表、报价单、询价单,一般只有主表和明细表。
情况二:新增页面上的信息存在于多个数据表中
  例如新增人事信息,可能涉及到员工基础信息表、教育经历表、工作经历表、证书表、亲属表、奖惩表、岗位异动表、薪资表、、、。
对于情况一,建议用“已绑定页面导入”,可以快捷的调用系统中的明细表作为主信息判断表,然后适当增加主表字段即可快速完成Excel导入设计;
对于情况二,建议用“绑定新页面导入”,需要手工逐个将涉及到的字段人工加入,然后再设置字段和Excel中相应内容位置的映射关系,完成Excel导入设计。
其实,不管是情况一还是情况二,都可以用“绑定新页面导入”的方法完成新Excel模板导入设计,只不过稍微麻烦一下而已。

下面介绍用“已绑定页面导入”功能来快速完成新增询价单页面加入Excel批量导入功能:

首先,准备好客户提供的询价单Excel模板样本文件:附件:询价单模板.xlsx

然后,点击“已绑定页面导入”,将上面的Excel模板样本加载上来,下面要用到:


点击“选择页面表名”:
如果是新增Excel模板导入设计方案,那么点击右上角“更多...”;
如果是编辑已经存在的Excel设计方案,那么点击项目名称;
如果是复制已经存在的Excel设计方案,那么点击右上角“更多...”后,点击“复制”按钮。


在更多中选择本页面用到的SQL Server后台数据表“scm_inquiry_order”:


注意,已经导入过的数据表不会在此列表中出现,会看到在页面中“页面项目名称”已经存在,如果是需要编辑已经存在的项目,那么直接点击“页面所在表名”相应项目即可;如果是要新增其他Excel模板样式,那么点击后面的“复制”按钮即可:


进行以上操作后,就会看到程序已经自动加载SQL Server数据表的相应字段、数据类型、字段长度到下面位置了:

以上界面,有如下一些参数要特别注意:
1、页面路径,这个是未来相应页面要自动识别是否已经设置了Excel模板导入功能的唯一判断数据,务必正确,就是“新增报价单页面”的实际地址即可,参照上面格式手工填入;
2、导入数据,如果只有主表数据导入,那么选择“单行”;如果涉及到明细表数据导入,那么要选择“多行”,并设置多行相关判断参数;
3、字段ID、数据类型、字段长,是从SQL Server中自动抓取过来的,一般无需更改,这个在导入时,会自动据此生成导入数据校验规则(文本是否超长、数字和日期格式是否正确等);
4、字段说明,建议按照实际意思加上,一般应该用中文描述;
5、字段去向,只有两个,要么是主表字段,要么是明细表字段,按照实际所属设置即可,不要弄错;
6、默认值,根据实际需求填写,没有就留空;
7、禁止为空,根据实际需求勾选,这个在提交数据时,会自动生成判断规则;
8、数据来源,根据字段去向,分为四种情况:指定单元格(主表字段)、指定列(明细表字段)、JS脚本动态计算、固定值;
9、数据位置,在指定了单元格或指定列时,点击本项,然后再到上面相应单元格或指定列点击一下,就会自动将单元格或列位置抓入进来,无需人工判断识别和填写;

10、JS处理脚本,用于自动根据前面字段生成本字段内容,相当于Excel中公式的作用,不懂JS者,本项留空;
11、导入,如果需要导入的字段,务必勾选,否则就不会被作为导入字段。
12、最后一列:增加/删除,用不上的字段,可以直接删除;不够的字段,手工点击增加即可。

继续下面的部分:

以上有几个注意项目:
1、页面JS脚本、提交导入前JS脚本、提交到导入后JS脚本:熟悉者不用说,不熟者留空即可。特别要注意,这几个JS控制脚本只在以下Excel模板加载页面生效,不对新增页面生效,新增页面上另外有“页面JS脚本”来自定义JS脚本控制。另外,还要注意“提交导入前JS脚本、提交到导入后JS脚本”,这两个生效位置,一个在点击下面的“导入”按钮前生效,一个在Excel模板内容全部加载到新增页面上后再生效,也可以用来触发新增页面上的相关JS函数或直接操作新增页面上的相关信息,由于本页面是新增页面以“window.open(url);”打开的,所以可以直接使用“window.opener.”来控制新增页面,合理使用,可收奇效

2、Excel模板下载,将客户提供的Excel模板文件上传进去,之后用户要下载使用;
3、Excel模板识别规则,用于判断用户使用的Excel模板是否正确,一共支持5个判断规则,前面三个是固定的单元格,后面两个可以是单元格或其他信息,不一定要将5个规则都用上,自行点击体会;
4、JS增加明细行函数,需要在新增页面上找到新增行的JS指令(不要照抄这个addpro()),然后填入本位置;
5、起始号,新增行的开始内部序号,一般是0或1,自行多测试几次吧,哪个正确就是它了。

最后,不要漏了“方案名称”和“备注”:


做完以上所有设置后,保存即可生效。

、修改新增页面源码,加入Excel导入功能(以采购询价单为例说明)
找到新增页面源码,加入:
<!--#include file="../common/get_excel_in_button.asp"-->
<!--#include file="../ajax_data/get_field_value.asp"-->

然后在顶部加入:
'自定义页面JS参数get_field_value.asp
page_site="mis_mrp_inquiry_order_add_asp"  '默认为当前页面完整路径,但单据打印页面有点不同应该设置为模板设计页面地址,路径中的“/.”都要改成“_”
sub_code=""   '默认留空,如果当前页面有多种子页面,那么要启用子识别码,例如打印设计页面对应着送货单、销售单、入库单等各种单据类型

在页面相关JS位置加上红色命令“<%call get_js_submit(page_site,sub_code,0)%>”:
function fn_Comfirm_Workflow(){
  var n = document.getElementById('tr_num').value;
  for(i=0;i<=n;i++){
if(document.getElementById('product_code'+i).value==""){
alert('物料信息为空,请检查!');return false;
}
if(document.getElementById('min_quantity'+i).value-document.getElementById('max_quantity'+i).value>0){
alert('最小订货量大于最大订货量请检查');return false;
}
};
<%call get_js_submit(page_site,sub_code,0)%>    //提交前JS
fnCheckForm();
if(document.getElementById('checkform').value == 'ok') {
  if(window.confirm('你确定要保存并确认吗?')) {
    document.getElementById('B1').style.background = "#808080";
    document.getElementById('B1').style.color = "#FFFFFF";
    document.getElementById('B1').disabled = true;
    document.getElementById('form1').submit();
  }
  }
}

在页面加上“页面JS脚本”设置按钮:
if popedom100185>0 then input_button=input_button &"<input type=""button"" class=""button_80px button_ui_grey"" value=""页面JS脚本"" onclick=""open_win_get_product_code('/mis/ajax_data/set_page_js.asp?page_site="& page_site &"&sub_code="& sub_code &"',960,640);"">"

在页面上加上“Excel导入”按钮:
<%input_button=get_excel_in_button("/mis/mrp/inquiry_order_add.asp",1) & " <input type=""button"" value=""增加"" name=""B3"" onClick=""addpro();"" class=""button_40px button_ui_blue""> <input type=""button"" disabled=""disabled"" value=""删除"" name=""B4"" onClick=""delpro();"" class=""button_40px button_ui_red"">"%>
此处“/mis/mrp/inquiry_order_add.asp”,就对应着上面Excel导入设计时指定的页面位置。

在页面最下面加上进入页面时JS脚本:
<script language="javascript">
<%call get_js_body(page_site,sub_code,0)%>
</script>

至此,就完成新增页面的批量"Excel导入"和动态加载"页面JS脚本"功能设计了:


特别说明:
1、用户在使用时,如果设计了多个询价单Excel导入模板方案,那么在导入Excel时,会要求选择需要使用的Excel模板方案名称,这个功能在用户制作销售订单时特别有用,因为不同的客户提供的Excel订单样本可能五花八门、各不相同,点晴MIS系统的Excel模板导入功能,可以无需对客户的Excel模板样本做任何改动,就能直接批量导入了:


2、上面在加入Excel批量导入功能时,也增加了页面动态JS设计和载入功能,可以帮助客户无需更改页面代码,就能快速实现各种复杂的效果。

该文章在 2022/7/31 10:01:14 编辑过

  离 线  2022/7/30 17:02:39 
  本文章共有 0 页, 0 张回文,每页有 10 张回文 >> [ ]
页码:  
Copyright 2003-2024 ClickSun All Rights Reserved