如何給點晴MIS系統(tǒng)任意頁面增加自定義JS函數(shù)及操作腳本功能,并支持JS直接提取SQLServer數(shù)據(jù)庫后臺數(shù)據(jù)參與運算或賦值顯示
為了給點晴MIS系統(tǒng)任意頁面增加自定義JS函數(shù)及操作腳本功能,并支持JS直接提取SQLServer數(shù)據(jù)庫后臺數(shù)據(jù)參與運算或賦值顯示,需要用到如下幾個頁面:
/MIS/ajax_data/set_page_js.asp -----》用于設置相關JS參數(shù)
/MIS/ajax_data/get_field_value.asp ------》用于在需要增加JS控制的頁面上獲取相關JS腳本和函數(shù)
/MIS/ajax_data/return_field_value.asp ------》提供返回數(shù)據(jù)的遠端頁面,單表查詢,正常情況下無需用到或修改
/MIS/ajax_data/return_sql_value.asp ------》提供返回數(shù)據(jù)的遠端頁面,復雜SQL查詢,正常情況下無需用到或修改
/MIS/js/lime_util.min.js ------》JS工具庫,內(nèi)置了將近300個常用JS函數(shù),方便JS高效設計
這個功能是通用設計方法,支持點晴MIS系統(tǒng)中任意頁面增加自定義JS腳本功能,可以方便的對任意頁面進行精確的控制,包括:更改指定字段的只讀、禁止留空、動態(tài)從SQL Server中提取信息刷新到頁面上、動態(tài)批量加載信息到當前頁面等。 下面以采購單打印頁面為例,說明如何改造打印頁面增加自定義JS函數(shù)及操作腳本功能,并利用新增的功能動態(tài)更改打印人、將要求到貨時間改為當前時間之后的3天。 第一步:給打印頁面增加自定義JS函數(shù)及操作腳本功能
先找到采購單打印頁面“/mis/mrp/purchase_order_checkinfo.asp”,在最頂部增加:
page_site="mis_mrp_document_print_edit_asp" '默認為當前頁面完整路徑,但單據(jù)打印頁面有點不同應該設置為模板設計頁面地址,路徑中的“/.”都要改成“_”
sub_code=pr_code_i '默認留空,如果當前頁面有多種子頁面,那么要啟用子識別碼,例如打印設計頁面對應著送貨單、銷售單、入庫單等各種單據(jù)類型
在頁面最底部加入下面紅色內(nèi)容(這些紅色內(nè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要用到上面的兩個參數(shù)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)%> 如果要在頁面上顯示“執(zhí)行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 '默認留空,如果當前頁面有多種子頁面,那么要啟用子識別碼,例如打印設計頁面對應著送貨單、銷售單、入庫單等各種單據(jù)類型 在頁面最底部加入下面內(nèi)容(這些腳本務必放在最底部,需要獲取上面這兩個值,并且有一個隱藏的DIV,以免加載異常): <!--#include file="../ajax_data/get_field_value.asp"-->
'引入get_field_value.asp要用到的兩個參數(shù)page_site、sub_code 由于本頁面中還需要顯示字段說明,所以還需要在相應位置的表頭print_top_intro和表尾print_bottom_intro說明中增加以下內(nèi)容:
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,"||","|") 增加完以上代碼后,頁面上就會出現(xiàn)一個“頁面JS腳本”按鈕:
點擊“頁面JS腳本”按鈕就會出現(xiàn)以下JS設計頁面:
第二步:設計JS取數(shù)腳本
在以上界面中,可以自定義設計表體JS、提交前JS、說明文字等信息。其中表體JS支持直接從SQL Server中動態(tài)提取數(shù)值,并將返回值參與到JS運算、或者直接刷新頁面上的內(nèi)容,刷新方式包括DIV的innerHTML、input的value等內(nèi)容,也支持JS的replace函數(shù)更新模板頁面上原有的:$input_time$、{銷售單號}等進行替換,十分的靈活方便。點擊上面的“加載預置值”按鈕,就可以看到系統(tǒng)提供的預置樣板,JS方式動態(tài)從SQL Server取數(shù)提供了單表和識別字段直接簡單取數(shù)、以及自寫SQL腳本實現(xiàn)復雜取數(shù)兩種方式。 由于JS從SQL Server中動態(tài)取數(shù)是異步實現(xiàn)的,所以相對麻煩些,下面提供兩段信息供參考:
表體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); //本行勿動,以上變量會自動傳入本函數(shù)
var tmpValue=await getSomething(get_id,wait_time); //本行勿動,以上變量會自動傳入本函數(shù)
document.getElementById("print_body").innerHTML=document.getElementById("print_body").innerHTML.replace("{制單人}",tmpValue); //tmpValue即為獲得的字段值,此行開始自行寫JS腳本
}
compute(); //此處去掉斜杠啟用上面的JS腳本 頁面說明:
制單人:{制單人}|制單時間:{制單時間} 保存后,就可以在頁面上看到新增的內(nèi)容了,我們在上面插入這個新增的字段{制單人}:
設計完畢后,返回采購單打印頁面,就會看到上面的“{制單人}”已經(jīng)被自動更換為“伍鑫”了:
另外,為了方便JS開發(fā),本功能還引入JS工具庫(已經(jīng)強制引入,無需再次引入,直接使用即可),提供了將近300個API函數(shù),可以極大的簡化JS設計,此JS庫的使用方法參見以下教程:
高級應用:
更復雜的自定義SQL查詢并返回json數(shù)據(jù)集的例子,參見詢價單自動轉(zhuǎn)為采購單,這個新增采購單頁面提供了自動抓取多個物料的相應詢價價格的功能,位置:采購管理-》新增采購單。
相關教程: 點晴MIS系統(tǒng)頁面動態(tài)JS加載自定義SQL語句開發(fā)設計指南[12] 點晴ERP中Excel批量導入報價單明細如何驗證導入的信息是否合法?[17] 零代碼開發(fā)助手之Excel批量導入設計操作指引[1490] 該文章在 2024/10/30 17:37:09 編輯過
|
關鍵字查詢
相關文章
正在查詢... |