![制作一張新表單高級_第1頁](http://file4.renrendoc.com/view11/M00/37/0A/wKhkGWV6OeGAOTroAAFn5e6t_p8123.jpg)
![制作一張新表單高級_第2頁](http://file4.renrendoc.com/view11/M00/37/0A/wKhkGWV6OeGAOTroAAFn5e6t_p81232.jpg)
![制作一張新表單高級_第3頁](http://file4.renrendoc.com/view11/M00/37/0A/wKhkGWV6OeGAOTroAAFn5e6t_p81233.jpg)
![制作一張新表單高級_第4頁](http://file4.renrendoc.com/view11/M00/37/0A/wKhkGWV6OeGAOTroAAFn5e6t_p81234.jpg)
![制作一張新表單高級_第5頁](http://file4.renrendoc.com/view11/M00/37/0A/wKhkGWV6OeGAOTroAAFn5e6t_p81235.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
制作一張
新Easyflow表單(高級)神州數(shù)碼管理系統(tǒng)公司引言Easyflow的表單制作向?qū)荅asyflow工作流引擎的重要組成部分。通過向?qū)?,用戶可以在短短的十一個步驟里完成電子表單的制作,使得在實(shí)際應(yīng)用環(huán)境下可以快速上線企業(yè)表單,凸現(xiàn)應(yīng)用系統(tǒng)的價值?,F(xiàn)實(shí)情況里,有時向?qū)傻谋韱尾⒉荒芡耆珴M足客戶的需求,因此,需要對表單生成的文件做進(jìn)一步的處理,包括:界面的修飾。特殊處理代碼的編寫等等,這時需要對表單生成的代碼文件結(jié)構(gòu)和功能有進(jìn)一步的了解。主要內(nèi)容電子表單的13個文件表單如何執(zhí)行電子表單制作向?qū)С绦蜷_發(fā)基礎(chǔ)表單開發(fā)技巧第一篇程序開窗第二篇程序?qū)崙?zhàn)電子表單制作向?qū)褂檬髽?biāo)點(diǎn)選【電子表單制作向?qū)А窟x擇操作類別選擇【新表單設(shè)計(jì)區(qū)】填寫表單代號Step1:填寫表單Step2:填寫表單簡稱注意填寫對應(yīng)內(nèi)容Step3:設(shè)置表單屬性請參照本頁文字說明提交表單;Step4:確定表單數(shù)據(jù)結(jié)構(gòu)類型確定表單數(shù)據(jù)結(jié)構(gòu)類型本例子中選擇了較為簡單的【單一文件資料】類型Step5:確定數(shù)據(jù)表名稱確定數(shù)據(jù)表名稱。系統(tǒng)自動在后臺數(shù)據(jù)庫建立數(shù)據(jù)表以保存表單數(shù)據(jù)Step6:裝載電子表單底圖按此按鈕裝載頁面底圖,作為電子表單的背景Step7:設(shè)計(jì)電子表單選擇對應(yīng)的界面工具,在右側(cè)的電子表單上底圖上設(shè)計(jì)表單的元素,例如:文字輸入框鼠標(biāo)雙擊對應(yīng)界面組件,顯示菜單,單擊菜單【顯示屬性視窗】可以設(shè)計(jì)對應(yīng)屬性Step7:設(shè)計(jì)電子表單打開代碼編輯窗口代碼編輯窗口代碼生成工具箱Step7:設(shè)計(jì)電子表單(字段命名規(guī)則)表單名稱:test001數(shù)據(jù)表名:test字段:test003字段:test004字段:test005字段:test006字段:test007字段:test008字段:test009Step8:設(shè)計(jì)流程參數(shù)Step9:設(shè)計(jì)流程參數(shù)設(shè)置一個參數(shù),綁定到表單的一個字段,這樣,在流程里就可以使用這個參數(shù)作為條件判斷Step10:設(shè)計(jì)流程參數(shù)設(shè)置條件字段的運(yùn)算規(guī)則,作為流程的跳轉(zhuǎn)標(biāo)識;按【工具箱】可以引入系統(tǒng)預(yù)設(shè)的一些函數(shù)及規(guī)則;Step11:完成恭喜,表單設(shè)計(jì)完成!電子表單的13個文件表單文件位置注意目錄的結(jié)構(gòu)每個目錄對應(yīng)一張表單表單文件的列表簡單的單檔表單13個文件每個文件的具體功能程序文件的具體功能分類這13支ASP程序大致上可以區(qū)分成四類:-控制『填寫表單』的顯示與作用-控制『表單追蹤』的顯示與作用-控制『表單審批』的顯示與作用-共享程序程序文件分類控制『填寫表單』的顯示與作用程序文件分類根據(jù)不同的狀態(tài),判斷開啟表單的ASP程序控制『表單追蹤』的顯示與作用程序文件分類控制『表單審批』的顯示與作用程序文件分類共享程序程序文件分類電子表單的執(zhí)行過程填寫表單顯示填寫新表單畫面控制表單數(shù)據(jù)的存取控制表單發(fā)送的后續(xù)動作控制表單字段的變化審批表單顯示審批表單畫面控制表單數(shù)據(jù)的存取控制表單審批的后續(xù)動作控制表單字段的變化查詢原稿查看原稿STD002_Display_Init.aspSTD002_Display.aspUserFunc.asp顯示審批表單畫面控制表單數(shù)據(jù)的存取程序開發(fā)基礎(chǔ)前言在學(xué)習(xí)神州數(shù)碼工作流的表單程序代碼以前,我們必須對ASP、VBScript、CSS、DHTML等程序語言有一定程度的了解。并且知道什么樣的程序是在Server端執(zhí)行,什么樣的程序代碼是執(zhí)行在Client端。其中又以ASP與VBScript兩種程序語言最為重要。在看以下的程序代碼說明以前,如果對以上所提的程序語言并不熟悉,建議最好先買些相關(guān)書籍來閱讀。Show_表單代號.asp
程序名稱:Show_STD002.asp 執(zhí)行位置:ServerSite
Response.ClearifSession("FormStatus")="Create"then Response.Redirect"STD002_Create.asp"elseifSession("FormStatus")="Approve"then ifSession("blnISApproved")=truethen Response.Redirect"STD002_Display.asp" else Response.Redirect"STD002_Approve.asp" endifelse Response.Redirect"STD002_Display.asp"endif 表單程序介紹十三之一表單代號_Create_Init.asp
當(dāng)我們在Easyflow中點(diǎn)選一張新的表單來填寫,最先執(zhí)行的就是這一支程序。這支程序是在表單開啟時,作一些初始化的動作。這些初始化的動作包含:1)定義表單相關(guān)參數(shù)2)查詢表單代理人3)設(shè)置表單關(guān)系人4)定義條件字段數(shù)組5)定義產(chǎn)生空表單的SQL語句數(shù)組6)開始進(jìn)行產(chǎn)生新表單的共享參數(shù)及環(huán)境設(shè)置表單程序介紹十三之二定義表單相關(guān)參數(shù)表單程序介紹十三之二程序名稱:STD002_Create_Init.asp 執(zhí)行位置:ServerSite dimobjREsetobjRE=Server.CreateObject("EF2KEngine.Class1")Session("FormID")="STD002"Session("FormStatus")="Create"Session("Important")=1Session("ScriptSheetNo")=Request("ScriptSheetNo")……Session("cmdForwardApproveForm")=Request("cmdForwardApproveForm")Session("DisplayForm")=TrueSession("cmdCopyForm")=Request("cmdCopyForm")Session("FormType")=request("FormType")CallGetAgentIDCallGetParserRoleIDCallGetCondValueCallGetCreateSQLCommand 查詢表單代理人程序名稱:STD002_Create_Init.asp 執(zhí)行位置:ServerSiteSubGetAgentID()OnErrorResumeNextSession("strAgentID")=objRE.FindAgentID_(Session("strUserID"),Session("strProcID"))IfErr.Number<>0Then ………EndIfEndSubSession(“strUserID”)
員工編號Session(“strProcID”)
工作流引擎系統(tǒng)Session表單程序介紹十三之二查詢表單關(guān)系人程序名稱:STD002_Create_Init.asp 執(zhí)行位置:ServerSiteSubGetParserRoleID()OnErrorResumeNextSession("strParserRoleID")=Session("strUserID")IfErr.Number<>0Then………EndIfEndSub『表單關(guān)系人』是流程解析的基準(zhǔn)點(diǎn)?。”韱纬绦蚪榻B十三之二取得/定義條件字段數(shù)組程序名稱:STD002_Create_Init.asp 執(zhí)行位置:ServerSiteSubGetCondValue()
OnErrorResumeNext
DimaryCondValue(1,3)
aryCondValue(0,0)="Employee"'請假人員
aryCondValue(1,0)=Session("strUserID")
aryCondValue(0,1)="T_Days"'請假總天數(shù)
aryCondValue(1,1)=1
aryCondValue(0,2)=
“Type”‘假別
aryCondValue(1,2)=""
aryCondValue(0,3)=“Title” ‘請假人職稱
aryCondValue(1,3)=""
Session("aryCondValue")=aryCondValue
IfErr.Number<>0Then
………
EndIfEndSub表單程序介紹十三之二定義產(chǎn)生空表單的SQL語句數(shù)組程序名稱:STD002_Create_Init.asp 執(zhí)行位置:ServerSiteSubGetCreateSQLCommand() OnErrorResumeNext DimarySQL(1,0) arySQL(0,0)="rstEFSTC" arySQL(1,0)="select*fromefstcwhere(1=2)" Session("arySQL")=arySQL IfErr.Number<>0Then ……… EndIfEndSub產(chǎn)生一筆空白表單的字段數(shù)據(jù)集。而這個空的數(shù)據(jù)集會保存我們填寫表單的各個字段數(shù)據(jù)
表單程序介紹十三之二開始進(jìn)行產(chǎn)生新表單的共享參數(shù)及環(huán)境設(shè)置程序名稱:STD002_Create_Init.asp執(zhí)行位置:ServerSiteResponse.ClearResponse.Redirect"../Create_Init.asp"表單程序介紹十三之二表單代號_Create.asp
【表單代號_Create.asp】的主要目的在于控制表單的畫面,例如:字段的大小、位置、型態(tài)等等。當(dāng)然,這支程序還包含了一些在Client端執(zhí)行的程序。所以我們可以把【表單代號_Create.asp】的程序代碼功能分為:1.取得表單數(shù)據(jù)存取的SQL命令2.將表單共享的系統(tǒng)文件包含進(jìn)來3.將這張表單會用到的特殊文件包含進(jìn)來4.設(shè)置表單各字段初始值5.產(chǎn)生新表單的單號6.表單畫面設(shè)計(jì)的DHTML語法表單程序介紹十三之三代碼片段之一程序名稱:STD002_Create.asp 執(zhí)行位置:ServerSite表單數(shù)據(jù)存取的SQL命令dimarySQLarySQL=Session("arySQL") <!--#includefile="../Include/EF2KARY2.asp"--><!--#includefile="../Include/EF2KRS.asp"--><!--#includefile="../Include/UTIL.asp"--> 表單共享的系統(tǒng)文件<!--#includefile="CheckFieldData.asp"--><!--#includefile="../Form_Onload.asp"--><!--#includefile="../Form_BeforeUnload.asp"--><!--#includefile="../CreateSystemObject.asp"--><!--#includefile="UserFunc.asp"--><!--#includefile="../Include/EF2KDT.asp"--><!--#includefile="../Include/SYS_LW_Empl_Server.asp"-->表單會用到的特殊文件<!--#includefile="../Include/SYS_LW_Empl_Client.asp"-->雙檔表單會用到的特殊文件<!--#includefile=“.../Include/EF2KGrid1.asp”-->表單程序介紹十三之三代碼片段之二程序名稱:STD002_Create.asp 執(zhí)行位置:ServerSitesubSetDefaultValue()表單初始值數(shù)據(jù)設(shè)置
onerrorresumenext document.all("efstc003").value="<%=Session("strUserID")%>" document.all("efstc004").value=objRE.FindAgentID(document.all("efstc003").value,&_strProcID) document.all("efstc006").value=objRE.dDates(now()+1)&"8:30:00"document.all("efstc007").value=objRE.dDates(now()+1)&"17:30:00"document.all("efstc008").value=1 document.all("efstc009").value=0 iferr.number<>0then … endif callefstc003_onchange callefstc004_onchangeendsubSubGetNewSheetNo()產(chǎn)生新的表單編號
onerrorresumenext document.all("sysNewSheetNo").value="AutoNumber" Iferr.number=0then document.all("sysGetNewSheetNo").value="true" else msgbox…………… endifEndSub"-->表單程序介紹十三之三CheckFieldData.asp
這支程序主要在控制Client端的一些動作,并且做字段正確性的檢查等等我們還是大略分為幾個段落:1.CheckFieldData2.字段變化時的動作3.按下按鈕做開窗的動作表單程序介紹十三之四檢查輸入數(shù)據(jù)有效性程序名稱:CheckFieldData.asp 執(zhí)行位置:ClientSiteSubCheckFieldData() onerrorresumenext dimblnError,strmsgbox blnError=false iftrim(document.all("efstc003").value)=""then strmsgbox="請假人不得空白."&chr(13) blnError=true endif
。。。
iferr.number=0then ifblnError=falsethen document.all("sysCheckFieldData").value="true" else msgboxstrmsgbox,48,"警告" endif else msgbox…………… endifendsub表單程序介紹十三之四檢查輸入數(shù)據(jù)有效性程序名稱:CheckFieldData.asp 執(zhí)行位置:ClientSitesubefstc004_onchange() onerrorresumenext document.all("efstc004_t1").value=objRE.FindEmplName(document.all("efstc004").value,strProcID) iferr.number<>0then err.cleardocument.all("efstc004").value="" document.all("efstc004_t1").value="" endifendsub開窗部分將在后續(xù)章節(jié)詳細(xì)描述!表單程序介紹十三之四UserFunc.asp了解了神州數(shù)碼工作流資料存取的方式后,我們就可以來看【UserFunc.asp】的程序代碼,程序分為底下的幾個程序:表單自定義變量設(shè)置表單代理人設(shè)置表單關(guān)系人設(shè)置條件字段數(shù)組存入字段暫存數(shù)據(jù)將Rcordset存入暫存區(qū)中讀取字段暫存數(shù)據(jù)將Rcordset由系統(tǒng)暫存區(qū)中取出顯示表單各字段資料表單程序介紹十三之五代碼片段一程序名稱:UserFunc.asp 執(zhí)行位置:ClientSitedimrstEFSTC 表單定義變量recordsetdimrstEFSTI,rstEFSTJ 雙檔表單變量DimGRID_COLUMNSSubReGetAgentID() 在表單發(fā)送前要重新取得真正的『表單代理人』
OnErrorResumeNextwindow.parent.frames("Form_Func").document.all("sysAgentID").value=document.all("efstc004").value iferr.number=0then document.all("sysReGetAgentID").value="true" esle …… endifEndSubSubReGetParserRoleID()在表單發(fā)送前要重新取得真正的『表單關(guān)系人』
OnErrorResumeNextwindow.parent.frames("Form_Func").document.all("sysParserRoleID").value=document.all("efstc003").value iferr.number=0then document.all("sysReGetParserRoleID").value="true" else………… endifEndSub表單程序介紹十三之五代碼片段二設(shè)置條件字段數(shù)組程序名稱: UserFunc.asp 執(zhí)行位置: ClientSiteSubReGetCondValue()OnErrorResumeNextDimaryCondValueReDimaryCondValue(1,3)在表單發(fā)送前自動解析流程window.parent.frames("Form_Func").document.all("sysRefreshFlow").value="Y"aryCondValue(0,0)="Employee"'請假人員aryCondValue(1,0)=cstr(document.all("efstc003").value)aryCondValue(0,1)="T_Days"'請假總天數(shù)aryCondValue(1,1)=cdbl(document.all("efstc008").value)+&_cdbl(document.all("efstc009").value)/8aryCondValue(0,2)="Type"'假別aryCondValue(1,2)=cstr(document.all("efstc005").value)aryCondValue(0,3)="Title"'請假人員職稱aryCondValue(1,3)=&_objRE.FindEmplDeptTitleID(document.all("efstc003").value,strProcID)objEF2KAry2.StoreArray"aryCondValue",aryCondValueiferr.number=0thendocument.all("sysReGetCondValue").value="true"else……endifEndSub表單程序介紹十三之五代碼片段三保存字段暫存數(shù)據(jù)程序名稱: UserFunc.asp 執(zhí)行位置: ServerSite&ClientSite FunctionStoreFieldData()
onerrorresumenext err.clear StoreFieldData=""
<%ifSession("FormStatus")="Create"then%> ifrstEFSTC.RecordCount=0then rstEFSTC.AddNew endif<%endif%>
rstEFSTC("efstc003")=document.all("efstc003").value rstEFSTC("efstc004")=document.all("efstc004").value rstEFSTC("efstc005")=document.all("efstc005").value rstEFSTC("efstc006")=document.all("efstc006").value rstEFSTC("efstc007")=document.all("efstc007").value rstEFSTC("efstc008")=document.all("efstc008").value rstEFSTC("efstc009")=document.all("efstc009").value rstEFSTC("efstc010")=FixNull(document.all("efstc010").value,"STRING") ' iferr.number<>0then …… endif StoreFieldData=StoreRS()endFunction表單程序介紹十三之五代碼片段四將Rcordset存入暫存區(qū)中
由暫存區(qū)取出程序名稱:UserFunc.asp 執(zhí)行位置:ClientSiteFunctionStoreRS() onerrorresumenext dimblnRtn StoreRS="" blnRtn=objEF2KRS.StoreRS"rstEFSTC",rstEFSTC iferr.number<>0then … endifEndFunctionsubGetRS() onerrorresumenext dimblnRtn blnRtn=objEF2KRS.GetRS"rstEFSTC",rstEFSTC iferr.number<>0or(NotblnRtn)then……………… endifendsub表單程序介紹十三之五代碼片段四讀取暫存數(shù)據(jù)程序名稱:UserFunc.asp 執(zhí)行位置: ClientSiteSubGetFieldData() onerrorresumenext '產(chǎn)生表單字段數(shù)據(jù)之Recordset setrstEFSTC=objDB.CreateRecordset("<%=arySQL(1,0)%>",strProcID) '將暫存之字段數(shù)據(jù)由系統(tǒng)暫存區(qū)中取出 ifTrim(UCase(window.parent.document.all_
(“sysFormDataInit”).value))<>“TRUE”then GetRS() endif <%ifSession("FormStatus")="Create"then%> '如果系統(tǒng)暫存區(qū)中沒有任何數(shù)據(jù),代表為新產(chǎn)生之表單,呼叫表單初值設(shè)置函數(shù) ifrstEFSTC.RecordCount=0then callSetDefaultValue '設(shè)置字段初值 else callShowFieldValue '顯示字段資料到畫面上 endif
<%else%> callShowFieldValue '顯示字段資料到畫面上
<%endif%> iferr.number<>0then … endifEndSub表單程序介紹十三之五代碼片段五顯示暫存數(shù)據(jù)于表單程序名稱: UserFunc.asp 執(zhí)行位置: ClientSite
subShowFieldValue() onerrorresumenext '顯示各字段資料 document.all("efstc003").value=rstEFSTC("efstc003").value document.all("efstc004").value=rstEFSTC("efstc004").value document.all("efstc005").value=rstEFSTC("efstc005").value document.all("efstc006").value=rstEFSTC("efstc006").value document.all("efstc007").value=rstEFSTC("efstc007").value document.all("efstc008").value=rstEFSTC("efstc008").value document.all("efstc009").value=rstEFSTC("efstc009").value document.all("efstc010").value=FixNull(rstEFSTC("efstc010").value,"STRING") ' iferr.number<>0then ……………… endif callefstc003_onchange callefstc004_onchange endsub表單程序介紹十三之五BeforeSendNewForm.asp執(zhí)行【BeforeSendNewForm.asp】。從程序名稱應(yīng)該可以了解到,這支程序是當(dāng)我們按下『發(fā)送』按鈕,而表單并未真正發(fā)送以前,我們想要透過程序代碼來做哪些事情通常不涉及到修改,因此代碼略去表單程序介紹十三之六表單代號_AfterCreateForm.asp
程序名稱:STD002_AfterCreateForm.asp 執(zhí)行位置:ServerSite<%callAfterCreateFormSubAfterCreateForm()OnErrorresumenext'dimobjDB,rs'setobjDB=Server.CreateObject("EF2KPublic.Database")'setrs=objDB.CreateRecordset("select*fromtable1where(1=2)",Session("strProcID"))'rs.AddNew'rs("fld1")="AAA"'rs("fld2")="BBB"'setrs=objDB.UpdateRecordset(rs,Session("strProcID"))'dimobjDB,rs,strConn'strConn="driver={SQLServer};server=(local);database=DB1"'setobjDB=Server.CreateObject("EF2KPublic.Database")'setrs=objDB.CreateRecordsetB("select*fromtable1where(1=2)",strConn)'rs.AddNew'rs("fld1")="AAA"'rs("fld2")="BBB"'setrs=objDB.UpdateRecordsetB(rs,strConn)
IfErr.Number<>0Then………else Response.Redirect"../SendResult.asp"EndIfEndSub%>表單程序介紹十三之七表單代號_Display_Init.asp
【表單代號_Display_Init.asp】,這支程序的功能是當(dāng)開啟表單追蹤畫面時,做初始化的動作。我們可以分為幾個部分來說明:1)定義表單相關(guān)參數(shù)2)定義產(chǎn)生追蹤表單之SQL指令數(shù)組3)開始進(jìn)行產(chǎn)生顯示表單之共享參數(shù)及環(huán)境設(shè)置【表單代號_Display_Init.asp】的程序代碼修改的機(jī)會并不大,因此代碼略去。表單程序介紹十三之八表單代號_Display.asp
這一支程序的目的是在控制表單追蹤的畫面,包括字段的位置、是否顯示、是否只讀等等,另外還包含了一些字段數(shù)據(jù)讀取與顯示的功能。要說明這一些功能,我們可以區(qū)分為以下的幾個部分:1.取得表單讀取的SQL命令2.將程序所需要用到的共享程序包含進(jìn)來3.讀取表單字段暫存數(shù)據(jù)4.顯示表單字段資料5.特殊功能的子程序6.控制表單畫面的DHTML語法表單程序介紹十三之九代碼片段一程序名稱: STD002_Display.asp 執(zhí)行位置: ServerSitedimarySQLarySQL=Session("arySQL")<!--******系統(tǒng)共享includefile******--><!--#includefile="../Include/EF2KARY2.asp"--><!--#includefile="../Include/EF2KRS.asp"--><!--#includefile="../Include/UTIL.asp"--><!--#includefile="../Form_Onload.asp"--><!--#includefile="../CreateSystemObject.asp"--><!--#includefile="../Form_BeforeUnload.asp"--><!--#includefile="UserFunc.asp"-->
SubGetFieldData()讀取表單暫存數(shù)據(jù) onerrorresumenext '產(chǎn)生表單字段數(shù)據(jù)之Recordset setrstEFSTC=objDB.CreateRecordset("<%=arySQL(1,0)%>",strProcID) callShowFieldValue iferr.number<>0then……… endifEndSub…….雙檔表單才會包含的文件<!--#includefile=“../Include/EF2KGrid1.asp”-->
表單程序介紹十三之九代碼片段二程序名稱: STD002_Display.asp 執(zhí)行位置: ServerSitesubShowFieldValue() onerrorresumenext '顯示各字段資料
document.all("efstc003").value=rstEFSTC("efstc003").value document.all("efstc004").value=rstEFSTC("efstc004").value document.all("efstc005").value=rstEFSTC("efstc005").value document.all("efstc006").value=rstEFSTC("efstc006").value document.all("efstc007").value=rstEFSTC("efstc007").value document.all("efstc008").value=rstEFSTC("efstc008").value document.all("efstc009").value=rstEFSTC("efstc009").value document.all("efstc010").value=FixNull(rstEFSTC("efstc010").value,"STRING") iferr.number<>0then …… endif callefstc003_onchange callefstc004_onchange endsubsubefstc003_onchange()
特殊功能的程序 onerrorresumenext document.all(“efstc003_t1").value=&_objRE.FindEmplName(document.all("efstc003").value,strProcID) iferr.number<>0then err.clear document.all("efstc003_t1").value="" endifendsub表單程序介紹十三之九表單代號_Approve_Init.asp
這一支程序的功能是當(dāng)審批人員開啟表單時,針對審批表單作初始化的動作。程序代碼一共分為底下幾個部分:1.定義表單相關(guān)參數(shù)2.定義產(chǎn)生審批表單之SQL指令數(shù)組3.開始進(jìn)行產(chǎn)生顯示表單之共享參數(shù)及環(huán)境設(shè)置表單程序介紹十三之十表單代號_Approve_Init.asp
代碼程序名稱: STD002_Approve_Init.asp 執(zhí)行位置:ServerSiteSession("FormID")=request("FormID")Session("SheetNo")=request("SheetNo")Session("FlowNo")=request("FlowNo")Session("BranchNo")=request("BranchNo")Session("SerialNo")=request("SerialNo")Session("FormStatus")="Approve"Session("DisplayForm")=trueSession("FormType")=request("FormType")Session("strReportID")="EFSI002_02"Session("cmdWhere")="efstc001='"&Session("FormID")&"'andefstc002='"&Session("SheetNo")&"'"Session("cmdOrder")=""SubGetApproveSQLCommand()OnErrorResumeNextDimarySQL(1,0)arySQL(0,0)="rstEFSTC" arySQL(1,0)="select*fromefstcwhereefstc001='"&Session("FormID")&"'and&_"efstc002='"&Session("SheetNo")&"'"Session("arySQL")=arySQLIfErr.Number<>0Then………EndIfEndSubResponse.ClearResponse.Redirect"../Approve_Init.asp"表單程序介紹十三之十表單代號_Approve.asp
在執(zhí)行完『審批表單』初始化的動作之后,再過來就要開啟表單的畫面了。而【表單代號_Approve.asp】就是用來控制『審批表單』的畫面。在這一支程序當(dāng)中我們一共區(qū)分成為以下幾個部分:1.取得讀取表單數(shù)據(jù)的SQL指令2.將系統(tǒng)共享的程序包含進(jìn)來3.將這張表單會用到的特殊文件包含進(jìn)來4.控制表單畫面的DHTML表單程序介紹十三之十一程序名稱: STD002_Approve.asp 執(zhí)行位置:ServerSite
dimarySQLarySQL=Session("arySQL")<!--#includefile="../Include/EF2KARY2.asp"--><!--#includefile="../Include/EF2KRS.asp"--><!--#includefile="../Include/UTIL.asp"--><!--#includefile="CheckFieldData.asp"--><!--#includefile="../Form_Onload.asp"--><!--#includefile="../Form_BeforeUnload.asp"--><!--#includefile="../CreateSystemObject.asp"--><!--#includefile="UserFunc.asp"--><!--#includefile="../Include/EF2KDT.asp"--><!--#includefile="../Include/SYS_LW_Empl_Server.asp"--><!--#includefile="../Include/SYS_LW_Empl_Client.asp"-->表單代號_Approve.asp代碼表單程序介紹十三之十一【BeforeApproveForm.asp】的主要的功能是在于當(dāng)我們開啟一張『審批表單』,并且按下【審批】的按鈕后,在審批窗口尚未出現(xiàn)以前,我們所要執(zhí)行的程序代碼可以寫在這支ASP當(dāng)中。BeforeApprove.asp
表單程序介紹十三之十二在我們審批完一張表單后,我們可能會想要執(zhí)行某些動作,例如:把數(shù)據(jù)寫如其它的數(shù)據(jù)庫等等。這時候,我們就可以把這些程序?qū)懺凇颈韱未朹AfterApprove.asp】當(dāng)中本程序有很大的彈性和發(fā)揮空間表單代號_AfterApprove.asp表單程序介紹十三之十三程序名稱:STD002_AfterApprove.asp 執(zhí)行位置:ServerSite SubAfterFlowApprove() OnErrorresumenextdimrstTRFormPropertysetrstTRFormProperty=Session("rstTRFormProperty") ifRequest("UndoApprove")="Y"then else 'ifSession("blnCaseClosed")=Truethen ' selectcaserstTRFormProperty("resda021") ' case2 '2=同意 … ' case3 '3=不同意 … ' case4 '4=已抽單 … ' endselect 'else ''=======>>尚未結(jié)案 'endif endif IfErr.Number<>0Then…
else Response.Redirect"../SendResult.asp"EndIfEndSub表單代號_AfterApprove.asp代碼表單程序介紹十三之十三表單開發(fā)技巧(高級)第一篇程序開窗日期開窗個人開窗部門開窗其他數(shù)據(jù)表開窗關(guān)鍵文件:CheckFieldData.asp日期開窗日期開窗代碼SubZZCONT005_b1_onclick() ifisdate(document.all("ZZCONT005").value)then objEF2KDT.varDefaultDateTime=_ document.all("ZZCONT005").value endif callobjEF2KDT.show(1) ifobjEF2KDT.strDateTime<>""then document.all("ZZCONT005").value= _replace(objEF2KDT.strDateTime,"/","-") endifendSub日期文本框按鈕名稱個人開窗個人開窗代碼SubZZCONT003_b1_onclick() callSYS_LW_Empl("ZZCONT003_onchange","ZZCONT003")endSubSubZZCONT003_onchange() onerrorresumenext '如有對應(yīng)員工姓名的字段,可以如同下列敘述將員工姓名代入
document.all("ZZCONT004").value=objRE.FindEmplName(document.all("ZZCONT003").value,strProcID) iferr.number<>0then err.clear document.all("ZZCONT003").value="" document.all("ZZCONT004").value="" endifendSub按鈕名稱個人ID字段個人姓名字段部門開窗部門開窗代碼SubZZCONT006_b1_onclick() callSYS_LW_Dept("ZZCONT006_onchange","ZZCONT006")endSubSubZZCONT006_onchange() onerrorresumenext '如有對應(yīng)部門名稱的字段,可以如同下列敘述將部門名稱代入
document.all("ZZCONT007").value=objRE.FindDeptName(document.all("ZZCONT006").value,strProcID) iferr.number<>0then err.clear document.all("ZZCONT006").value="" document.all("ZZCONT007").value="" endifendSub按鈕名稱部門名稱字段部門ID字段其他數(shù)據(jù)庫開窗其他數(shù)據(jù)表開窗代碼-AdimaryServerIDWindow2(3,1)aryServerIDWindow2(0,0)="行業(yè)號" '中文名稱aryServerIDWindow2(0,1)="行業(yè)名稱"aryServerIDWindow2(1,0)="tra_class001" '字段名稱aryServerIDWindow2(1,1)="tra_class002"aryServerIDWindow2(2,0)=100 ‘字段寬度aryServerIDWindow2(2,1)=200aryServerIDWindow2(3,0)="VARCHAR" '文件型態(tài)aryServerIDWindow2(3,1)="VARCHAR"Session("aryServerIDWindow2")=aryServerIDWindow2其他數(shù)據(jù)表開窗代碼-BSubZZCONT013_onchange()settmpRS=objDB.CreateRecordset("selecttra_class001,tra_class002fromtra_classwheretra_class001='"&document.all("ZZCONT013").value&"'","<%=Session("strProcID")%>")iftmpRS.RecordCount>0thendocument.all("ZZCONT014").value=tmpRS("tra_class002").valueendifEndSubSubZZCONT013_b1_onclick()callOpenWindowendSub按鈕名稱行業(yè)的ID行業(yè)名稱其他數(shù)據(jù)表開窗代碼-CSubOpenWindow() dimret,strArg,srcElementid dimstrSQL,strReturnField,strOrderby,intMaxRecords,intPageSize,strDefineArray,intDefaultField,intDefaultOP,strCallBackFunction srcElementid=window.event.srcElement.id
ifsrcElementid="ZZCONT008_b1"then '按鈕名稱
srcElementid="ZZCONT007" '回寫字段名稱
…… elseifsrcElementid="ZZCONT013_b1"then '按鈕名稱
srcElementid="ZZCONT013" '回寫字段名稱
strSQL="selecttra_class001,tra_class002fromtra_class" '從數(shù)據(jù)表篩選字段
strReturnField="tra_class001" '返回ID值
strOrderby=“tra_class001” ‘排序順序
strDefineArray="aryServerIDWindow2" '使用開窗數(shù)組
intDefaultField=1 intDefaultOP=6 strCallBackFunction="ZZCONT013_onchange"'利用ID的改變,調(diào)用onchange事件,查詢名稱
elseifsrcElementid="ZZCONT011_b1"then srcElementid="ZZCONT011" …… else exitsub endif intMaxRecords=100 intPageSize=50 ……endSub第二篇程序?qū)崙?zhàn)計(jì)算Grid的行數(shù)取得員工工作日歷判斷是否為工作日檢查是否為數(shù)字判斷是否為最后一關(guān)轉(zhuǎn)換為大寫計(jì)算Grid行數(shù)FunctioncountGridArray(argGrid)'計(jì)算Grid數(shù)據(jù)筆數(shù)
dimobjGrid objGrid=Grid&CStr(argGrid) GridArray=objGrid.GetGridArray IfIsArray(GridArray)=TrueThen countGridArray=UBound(GridArray,1)+1 else countGridArray=0 endifEndFunction取得員工工作日歷FunctionfindPersonCalendarID(strPerson_ID)
strProcID="<%=Session("strProcID")%>" setrs=objRE.CreateRecordSet("Selectresak010fromresakwhereresak001='"&strPerson_ID&"'",strProcID) ifrs.RecordCount>0then findPersonCalendarID= Trim(rs.fields("resak010").value) else findPersonCalendarID="" endif setrs=nothingEndFunction判斷是否為工作日FunctionIsWorkingDay(datetime,strPersonID) strProcID="<%=Session("strProcID")%>" strPersonCalendarID=findPersonCalendarID(strPersonID)'找出員工行事歷代號
date_datetime=objRE.dDates(datetime) strSQL="Selectresaj002fromresajwhereresaj002='"&date_datetime&"'andresaj001='"&strPersonCalendarID&"'" setrs=objRE.CreateRec
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 提升學(xué)生午間飲食體驗(yàn)的實(shí)踐與思考
- 百鎮(zhèn)千村示范衛(wèi)生機(jī)構(gòu)創(chuàng)建課件
- DB6103T 77-2025釀酒高粱寬窄行栽培技術(shù)規(guī)范
- 船運(yùn)安全的防范措施與管理建議分析
- 三人合資餐飲企業(yè)合同模板
- 專利許可使用與轉(zhuǎn)讓協(xié)議合同
- 上海住宅租賃合同范本
- 人事代理人員勞動合同書
- 個人壽險代理合同書樣本
- 臨時兼職教師勞動合同范文
- 《會展概述》課件
- 《郴州市總體規(guī)劃》課件
- 【高中物理競賽大全】 競賽3 電磁學(xué) 50題競賽真題強(qiáng)化訓(xùn)練解析版-高考物理備考復(fù)習(xí)重點(diǎn)資料歸納
- 再見2024你好2025展望未來
- GB/T 17395-2024鋼管尺寸、外形、重量及允許偏差
- 2025屆山東省濟(jì)南市歷城二中高二上數(shù)學(xué)期末學(xué)業(yè)質(zhì)量監(jiān)測試題含解析
- 2024年全國各地中考試題分類匯編:文學(xué)常識
- 七年級信息技術(shù)上冊 第13課時 文件管理教案 科教版
- 2022年版義務(wù)教育語文課程標(biāo)準(zhǔn)題庫(教師教資培訓(xùn)考試專用十三套)
- 英語新課標(biāo)(英文版)-20220602111643
- 高考模擬作文“文化自信:春節(jié)走向世界”導(dǎo)寫+范文3篇
評論
0/150
提交評論