如何给点晴MIS系统任意页面增加自定义JS函数及操作脚本功能,并支持JS直接提取SQLServer数据库后台数据参与运算或赋值显示
当前位置:点晴教程→点晴OA办公管理信息系统
→『 经验分享&问题答疑 』
为了给点晴MIS系统任意页面增加自定义JS函数及操作脚本功能,并支持JS直接提取SQLServer数据库后台数据参与运算或赋值显示,需要用到如下几个页面:
/MIS/ajax_data/set_page_js.asp -----》用于设置相关JS参数
/MIS/ajax_data/get_field_value.asp ------》用于在需要增加JS控制的页面上获取相关JS脚本和函数
/MIS/ajax_data/return_field_value.asp ------》提供返回数据的远端页面,单表查询,正常情况下无需用到或修改
/MIS/ajax_data/return_sql_value.asp ------》提供返回数据的远端页面,复杂SQL查询,正常情况下无需用到或修改
/MIS/js/lime_util.min.js ------》JS工具库,内置了将近300个常用JS函数,方便JS高效设计
这个功能是通用设计方法,支持点晴MIS系统中任意页面增加自定义JS脚本功能,可以方便的对任意页面进行精确的控制,包括:更改指定字段的只读、禁止留空、动态从SQL Server中提取信息刷新到页面上、动态批量加载信息到当前页面等。 下面以采购单打印页面为例,说明如何改造打印页面增加自定义JS函数及操作脚本功能,并利用新增的功能动态更改打印人、将要求到货时间改为当前时间之后的3天。 第一步:给打印页面增加自定义JS函数及操作脚本功能
先找到采购单打印页面“/mis/mrp/purchase_order_checkinfo.asp”,在最顶部增加:
page_site="mis_mrp_document_print_edit_asp" '默认为当前页面完整路径,但单据打印页面有点不同应该设置为模板设计页面地址,路径中的“/.”都要改成“_”
sub_code=pr_code_i '默认留空,如果当前页面有多种子页面,那么要启用子识别码,例如打印设计页面对应着送货单、销售单、入库单等各种单据类型
在页面最底部加入下面红色内容(这些红色内容务必放在最底部,需要获取上面这两个值,并且有一个隐藏的DIV,以免加载异常):
<script language="javascript">
<%call get_js_body(page_site,sub_code,0)%>
</script>
<!--#include file="../ajax_data/get_field_value.asp"-->
'引入get_field_value.asp要用到上面的两个参数page_site、sub_code 在页面右上角增加管理员才能访问的按钮:
if popedom100185>0 then input_button=input_button &"<input type=""button"" class=""button_80px button_ui_orange"" value=""页面JS脚本"" onclick=""open_win('/mis/ajax_data/set_page_js.asp?page_site="& page_site &"&sub_code="& sub_code &"',960,640);"">" 如果启用提交前JS,那么还要在提交JS中加上以下这个:
<%call get_js_submit(page_site,sub_code,0)%> 如果启用提交后JS,那么还要在提交JS后面加上以下这个:
<%call get_js_submit_after(page_site,sub_code,0)%> 如果要在页面上显示“执行JS”按钮,用于某些不方便在进入页面时、也不方便在提交表单时加载的JS脚本:
<%call get_js_button(page_site,sub_code,0)%> 然后找到采购单打印设置页面“/mis/mrp/document_print_edit.asp”,在页面顶部增加:
page_site="mis_mrp_document_print_edit_asp" '默认为当前页面完整路径,路径中的“/.”都要改成“_”
sub_code=pr_code_i '默认留空,如果当前页面有多种子页面,那么要启用子识别码,例如打印设计页面对应着送货单、销售单、入库单等各种单据类型 在页面最底部加入下面内容(这些脚本务必放在最底部,需要获取上面这两个值,并且有一个隐藏的DIV,以免加载异常): <!--#include file="../ajax_data/get_field_value.asp"-->
'引入get_field_value.asp要用到的两个参数page_site、sub_code 由于本页面中还需要显示字段说明,所以还需要在相应位置的表头print_top_intro和表尾print_bottom_intro说明中增加以下内容:
add_custom_id_remark=get_js_remark(page_site,sub_code,1) '获取字段说明
if add_custom_id_remark&"CS"<>"CS" then print_top_intro=replace(print_top_intro &"|"& add_custom_id_remark,"||","|")
if add_custom_id_remark&"CS"<>"CS" then print_bottom_intro=replace(print_bottom_intro &"|"& add_custom_id_remark,"||","|") 增加完以上代码后,页面上就会出现一个“页面JS脚本”按钮:
点击“页面JS脚本”按钮就会出现以下JS设计页面:
第二步:设计JS取数脚本
在以上界面中,可以自定义设计表体JS、提交前JS、说明文字等信息。其中表体JS支持直接从SQL Server中动态提取数值,并将返回值参与到JS运算、或者直接刷新页面上的内容,刷新方式包括DIV的innerHTML、input的value等内容,也支持JS的replace函数更新模板页面上原有的:$input_time$、{销售单号}等进行替换,十分的灵活方便。点击上面的“加载预置值”按钮,就可以看到系统提供的预置样板,JS方式动态从SQL Server取数提供了单表和识别字段直接简单取数、以及自写SQL脚本实现复杂取数两种方式。 由于JS从SQL Server中动态取数是异步实现的,所以相对麻烦些,下面提供两段信息供参考:
表体JS:
async function compute(){
var table_name="userinf"; //SQL Server表名称
var sole_id="username"; //用于唯一识别的字段
var id_value="wuxin"; //唯一识别的字段值
var get_id="name"; //需要返回的字段名
var alert_flag=1; //有异常时是否弹出提醒,0-否、1-是
var wait_time=500; //异步查询等待时间,单位ms
get_field_value(table_name, sole_id, id_value, get_id, alert_flag); //本行勿动,以上变量会自动传入本函数
var tmpValue=await getSomething(get_id,wait_time); //本行勿动,以上变量会自动传入本函数
document.getElementById("print_body").innerHTML=document.getElementById("print_body").innerHTML.replace("{制单人}",tmpValue); //tmpValue即为获得的字段值,此行开始自行写JS脚本
}
compute(); //此处去掉斜杠启用上面的JS脚本 页面说明:
制单人:{制单人}|制单时间:{制单时间} 保存后,就可以在页面上看到新增的内容了,我们在上面插入这个新增的字段{制单人}:
设计完毕后,返回采购单打印页面,就会看到上面的“{制单人}”已经被自动更换为“伍鑫”了:
另外,为了方便JS开发,本功能还引入JS工具库(已经强制引入,无需再次引入,直接使用即可),提供了将近300个API函数,可以极大的简化JS设计,此JS库的使用方法参见以下教程:
高级应用:
更复杂的自定义SQL查询并返回json数据集的例子,参见询价单自动转为采购单,这个新增采购单页面提供了自动抓取多个物料的相应询价价格的功能,位置:采购管理-》新增采购单。
相关教程: 点晴MIS系统页面动态JS加载自定义SQL语句开发设计指南[12] 点晴ERP中Excel批量导入报价单明细如何验证导入的信息是否合法?[17] 零代码开发助手之Excel批量导入设计操作指引[1490] 该文章在 2024/10/30 17:37:09 编辑过
|
关键字查询
相关文章
正在查询... |