999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Web的會計科目輸入處理的設(shè)計與實現(xiàn)

2008-12-31 00:00:00李國紅
中國管理信息化 2008年13期

[摘 要] 以基于Web的會計科目輸入處理為例,分析與探討B(tài)/S模式下的信息輸入模塊的設(shè)計與實施方法和步驟,并進一步說明基于ASP的程序設(shè)計要點,提供了相應(yīng)的程序流程和代碼#65377;

[關(guān)鍵詞] B/S模式;管理信息系統(tǒng);會計科目;信息輸入;ASP程序設(shè)計

[中圖分類號]F232[文獻標識碼]A[文章編號]1673-0194(2008)13-0004-05

基于Web的信息輸入設(shè)計屬于一種B/S(瀏覽器/服務(wù)器)模式下的輸入處理設(shè)計,主要包括功能目標的設(shè)計#65380;服務(wù)器端用于保存數(shù)據(jù)的數(shù)據(jù)庫與數(shù)據(jù)表的設(shè)計#65380;瀏覽器端用于信息輸入請求的HTML網(wǎng)頁的設(shè)計#65380;服務(wù)器端用于處理信息輸入請求的ASP網(wǎng)頁的設(shè)計#65377;

1 會計科目輸入處理的功能目標

1. 1基本輸入功能

會計科目輸入處理模塊最基本的功能就是實現(xiàn)會計科目信息的輸入,具體包括:①瀏覽器端含有數(shù)據(jù)輸入?yún)^(qū)域和“確定”#65380;“取消”按鈕,如果在瀏覽器端輸入符合要求的科目編號#65380;科目名稱#65380;借貸方向和期初余額,然后單擊“確定”按鈕,即可將這些數(shù)據(jù)傳遞至服務(wù)器端,再由服務(wù)器進行處理,并將這些數(shù)據(jù)保存在會計科目表文件中;②如果在瀏覽器端輸入數(shù)據(jù)后單擊“取消”按鈕,則可立即清除輸入的這些數(shù)據(jù),等待重新輸入#65377;

1. 2輸入校驗與容錯功能

輸入校驗與容錯是現(xiàn)代信息系統(tǒng)應(yīng)用的必備功能之一,是提高數(shù)據(jù)正確性和系統(tǒng)可靠性的行之有效的方法#65377;會計科目輸入處理模塊除應(yīng)首先實現(xiàn)其基本的輸入功能外,還應(yīng)具備以下輸入校驗與容錯功能:①當瀏覽器端輸入的科目編號低于一級科目的編號長度,或輸入與會計科目表中重復(fù)的科目編號,或輸入的科目編號沒有對應(yīng)的上級科目,或輸入的科目編號有明顯的錯誤時,將進行相關(guān)的出錯提示和相應(yīng)的處理;②當瀏覽器端沒有輸入科目名稱時,按輸入空字符串處理;③當輸入的借貸方向位數(shù)不對時,則進行出錯提示和相應(yīng)處理;④當瀏覽器端沒有輸入期初余額或輸入了僅由空格組成的字符串時,將自動按輸入0處理;當瀏覽器端的期初余額輸入?yún)^(qū)內(nèi)既不是空值,又不是僅由空格形成的字符串,也不是數(shù)字型數(shù)據(jù)時,則進行相應(yīng)的出錯提示和處理#65377;

2 數(shù)據(jù)庫與數(shù)據(jù)表的設(shè)計與實現(xiàn)

數(shù)據(jù)庫與數(shù)據(jù)表的設(shè)計就是根據(jù)需要,選擇Microsoft Access#65380;Oracle#65380;Paradox等數(shù)據(jù)庫管理軟件,在服務(wù)器端建立相應(yīng)的數(shù)據(jù)庫與數(shù)據(jù)表#65377;這里,假定利用Microsoft Access建立數(shù)據(jù)庫文件zwcl.mdb,在數(shù)據(jù)庫中創(chuàng)建與設(shè)計數(shù)據(jù)表,數(shù)據(jù)表名稱為kjkm,數(shù)據(jù)結(jié)構(gòu)如表1所示#65377;

為使文件zwcl.mdb能夠保存通過信息輸入界面輸入的數(shù)據(jù),必須將zwcl.mdb的安全屬性設(shè)置為可修改#65377;步驟是:①在控制面板雙擊“文件夾選項”圖標,會彈出“文件夾選項”對話框,在“查看”選項卡將“使用簡單文件共享(推薦)”復(fù)選框前面的對號去掉,再單擊“確定”按鈕;②在zwcl.mdb所在文件夾,用鼠標右鍵單擊該文件名(或該文件圖標),再在彈出的快捷菜單單擊“屬性”選項,在“屬性”對話框的“安全”選項卡將Users的權(quán)限設(shè)置為允許完全控制,然后單擊“確定”按鈕#65377;

3 信息輸入請求網(wǎng)頁的設(shè)計與實現(xiàn)

3. 1信息輸入界面與HTML代碼

信息輸入請求網(wǎng)頁的設(shè)計就是設(shè)計一個用于信息輸入的界面或網(wǎng)頁,通過該界面或網(wǎng)頁可以向數(shù)據(jù)表輸入記錄#65377;

設(shè)計會計信息輸入界面如圖1所示#65377;該輸入界面包含4個用于信息輸入的區(qū)域,分別與kjkm數(shù)據(jù)表的4個字段相對應(yīng);另含有“確定”和“取消”按鈕,分別用于向服務(wù)器發(fā)出服務(wù)請求和清除輸入?yún)^(qū)內(nèi)容#65377;為實現(xiàn)此功能,可利用“記事本”等編輯軟件建立純文本格式的HTML文件#65377;

假設(shè)該輸入請求網(wǎng)頁的文件名為accountinput.htm,其HTML代碼如下所示:

<form action="accountinput.asp" method="post">

<table align="center" border=1>

<caption> <font face="隸書" size=6>會計科目設(shè)置

</font></caption>

<tr> <td>科目編號:</td> <td> <input type="text" name="kmbh"> </td> </tr>

<tr> <td>科目名稱:</td> <td> <input type="text" name="kmmc"> </td> </tr>

<tr> <td>借貸方向:</td> <td> <input type="text" name="jdfx"> </td> </tr>

<tr> <td>期初余額:</td> <td> <input type="text" name="qcye"> </td></tr>

</table>

<p align=center>

<input type="submit" value="確定" >

<input type="reset" value="取消" >

</p>

</form>

3. 2信息輸入請求網(wǎng)頁的HTML代碼說明

(1)<form>與</form>標記指定上述網(wǎng)頁是一個HTML表單,action="accountinput.asp"表明處理該HTML表單的程序是accountinput.asp,而method="post"指明該HTML表單采用POST方法向ASP文件傳遞數(shù)據(jù)#65377;

(2)<table>與</table>之間是一個表格,<table align=

"center" border=1>表示表格居中,表格邊框?qū)挾葹?#65377;

<caption> <font face="隸書" size=6>與</font> </caption>之間是表格的標題并指定了標題的字體和大小,<tr>與</tr>之間是表格的一行,<td>與</td>之間是表格中單元格的內(nèi)容,<input type="text" name="kmbh">表示一個Name屬性值為kmbh的單行文本輸入?yún)^(qū)域#65377;

(3)<p>與</p>是段落標記,<input type="submit" value="確定" >是一個將表單內(nèi)容提交給服務(wù)器的#65380;value屬性值為“確定”的按鈕,<input type="reset" value="取消" >是一個用于清除輸入?yún)^(qū)內(nèi)容的#65380;value屬性值為“取消”的按鈕#65377;

4 輸入請求處理的設(shè)計與實現(xiàn)

4. 1關(guān)于科目編號的基本假設(shè)

會計科目輸入請求的處理與科目編號的設(shè)計有必然的聯(lián)系,科目編號的設(shè)計方案會直接影響會計科目輸入請求的處理流程#65377;這里按照通常的做法,假定一級科目的科目編號占4位,n級科目的科目編號占(2n+2)位#65377;如1001代表一級科目,100101#65380;10010101分別代表二級#65380;三級科目#65377;這樣設(shè)計時,科目編號的位數(shù)必定大于或等于4,其位數(shù)也一定是偶數(shù),而且,超過4位的科目編號截去最右邊的兩位后所剩余的部分就是對應(yīng)的上級科目#65377;表1中kmbh的字段大小可據(jù)實際需要設(shè)計更為合理的值#65377;

4. 2輸入請求處理的程序流程

用戶在瀏覽器上運行數(shù)據(jù)輸入的網(wǎng)頁accountinput.htm,將出現(xiàn)會計科目輸入界面,如圖1所示#65377;這是一個數(shù)據(jù)輸入網(wǎng)頁,在網(wǎng)頁上輸入數(shù)據(jù)后,如果單擊“取消”按鈕,原輸入的內(nèi)容將作廢,同時各輸入文本框的內(nèi)容被清空;如果單擊“確定”按鈕,將向服務(wù)器發(fā)出服務(wù)請求,服務(wù)器將根據(jù)accountinput.asp的程序代碼進行相應(yīng)的處理,即:當輸入界面中輸入的科目編號低于4位,或雖不低于4位但位數(shù)不對(位數(shù)為奇數(shù)),或科目編號重復(fù),或無上級科目,或借貸方向#65380;期初余額不符合要求時,表單上的數(shù)據(jù)不能被保存到kjkm數(shù)據(jù)表,并由服務(wù)器向瀏覽器傳送相應(yīng)的提示信息;否則,當輸入界面輸入的數(shù)據(jù)符合保存的條件時,就立即添加到kjkm數(shù)據(jù)表中,并使瀏覽器端重定向到數(shù)據(jù)輸入網(wǎng)頁accountinput.htm,等待繼續(xù)輸入#65377;更詳細的數(shù)據(jù)輸入處理流程如圖2所示#65377;

4. 3輸入請求處理的ASP代碼

單擊會計科目輸入界面(圖1)中的“確定”按鈕,服務(wù)器將根據(jù)accountinput.asp的代碼接受輸入請求,并進行相應(yīng)的處理#65377;按照圖2所示的數(shù)據(jù)輸入處理流程,設(shè)計accountinput.asp的程序代碼如下所示:

<%

k=0

kmbh1=trim(request("kmbh"))

kmmc1=trim(request("kmmc"))

jdfx1=trim(request("jdfx"))

if trim(request("qcye"))="" then

qcye1=0

else

qcye1=request("qcye")

end if

if len(kmbh1)>=4 then

set conn=server.createobject("adodb.connection")

conn.open "Driver={Microsoft Access Driver (*.MDB)};DBQ="_

server.mappath("zwcl.MDB")

set rs=server.createobject("adodb.recordset")

rs.open "select*from kjkm where kmbh=′"kmbh1

"′",conn

if rs.eof then

if len(kmbh1)>4 then

if int(len(kmbh1)/2)=len(kmbh1)/2 then

rs.close

rs.open "select*from kjkm where kmbh=′"left(kmbh1,len(kmbh1)-2)"′",conn

if rs.eof then

response.write "<a href=javascript:history.back()>"

response.write "無上級科目,請返回輸入上級科目!</a>"

else

k=1

end if

else

response.write "<a href=javascript:history.back()>"

response.write "科目編號位數(shù)不對,請返回重新輸入!</a>"

end if

else

k=1

end if

else

response.write "< a href=javascript:history.back()>"

response.write "科目編號不能重復(fù),請返回重新輸入!</a>"

end if

if k=1 then

if len(jdfx1)=1 then

if isNumeric(qcye1) then

rs.close

rs.open "kjkm",conn,,2

rs.addnew

rs("kmbh")=kmbh1

rs("kmmc")=kmmc1

rs("jdfx")=jdfx1

rs("qcye")=qcye1

rs.update

response.redirect "accountinput.htm"

else

response.write "<a href=javascript:history.back()>"

response.write "期初余額不對,請返回重新輸入!</a>"

end if

else

response.write "<a href=javascript:history.back()>"

response.write "借貸方向不對,請返回重新輸入!</a>"

end if

end if

rs.close

set rs=nothing

conn.close

set conn=nothing

else

response.write "<a href=javascript:history.back()>"

response.write "科目編號不能低于4位,請返回重新輸入!</a>"

end if

%>

4. 3輸入請求處理的ASP代碼說明

(1)k是一個控制變量,賦初值為0#65377;當瀏覽器端輸入的會計科目為一級科目(科目編號長度等于4),且在kjkm數(shù)據(jù)表中沒有匹配的記錄時,將k的值修改為1#65377;同樣,當輸入的科目編號長度大于4,且位數(shù)為偶數(shù),并存在上級科目時,也將k的值修改為1#65377;只有當k=1時,才根據(jù)瀏覽器端輸入的借貸方向和期初余額的正確性來決定是否執(zhí)行數(shù)據(jù)保存操作#65377;

(2)kmbh1=trim(request("kmbh"))用于將瀏覽器端會計科目輸入網(wǎng)頁上的科目編號的值(對應(yīng)于圖1中的1001)保存在中間變量kmbh1中#65377;變量kmbh是accountinput.htm中定義的該文本框的Name屬性,trim(request("kmbh"))用于截去所獲得的科目編號數(shù)據(jù)的前導(dǎo)與后續(xù)空格#65377;由于瀏覽器端的accountinput.htm指定采用POST方法向服務(wù)器傳遞數(shù)據(jù),因此,可直接采用Request對象的Form集合來取得kmbh的值#65377;這樣,request("kmbh")也可寫成request.form("kmbh")#65377;同理,kmmc1#65380;jdfx1#65380;qcye1分別用于接收瀏覽器端傳遞過來的科目名稱#65380;借貸方向#65380;期初余額#65377;

(3)當瀏覽器端未輸入某項數(shù)據(jù)(或輸入了只含有空格的字符串)時,傳遞過來的數(shù)據(jù)為空字符串#65377;例如,如果trim(request("qcye"))="",就表示瀏覽器端傳遞過來的期初余額為空字符串#65377;由于期初余額是數(shù)字型數(shù)據(jù),當瀏覽器端的期初余額輸入?yún)^(qū)內(nèi)未輸入任何字符(或輸入了只含有空格的字符串)時,應(yīng)將qcye1的值當成0對待;否則,用qcye1接收瀏覽器端傳遞過來的期初余額數(shù)據(jù)#65377;這時,qcye1可能為數(shù)字型數(shù)據(jù),也可能為文本型數(shù)據(jù)#65377;如果qcye1不為數(shù)字型數(shù)據(jù),說明瀏覽器端輸入的期初余額肯定有錯誤#65377;

(4)if len(kmbh1)>=4用于判斷瀏覽器端輸入的科目編號的長度是否不小于4,而if int(len(kmbh1)/2)=len(kmbh1)/2用于判斷科目編號的位數(shù)是否為偶數(shù)#65377;當長度小于4時,科目編號一定不正確,需要提示“科目編號不能低于4位,請返回重新輸入!”#65377;當科目編號位數(shù)不是偶數(shù)時,應(yīng)提示“科目編號位數(shù)不對,請返回重新輸入!”#65377;

(5)set conn=server.createobject("adodb.connection")用于建立一個連接對象#65377;

(6)conn.open用于與數(shù)據(jù)庫建立連接,其后的字符串一定要寫正確,例如,單詞之間#65380;Driver與(*.MDB)之間必須有空格,否則運行時會出問題#65377;下劃線_是續(xù)行符,Server.mappath("zwcl.MDB")用于將數(shù)據(jù)庫文件zwcl.MDB的相對路徑映射到服務(wù)器上相應(yīng)的真實路徑上,是字符串連接符#65377;如果已經(jīng)在ODBC數(shù)據(jù)源管理器的“系統(tǒng)DSN”選項卡為數(shù)據(jù)庫文件zwcl.MDB建立了名稱為zhangwu的系統(tǒng)數(shù)據(jù)源,也可以利用conn.open "zhangwu"或conn.open "DSN=zhangwu"與數(shù)據(jù)庫建立鏈接#65377;

(7)set rs=server.createobject("adodb.recordset")用于建立一個記錄集對象#65377;

(8)rs.open "select*from kjkm where kmbh=′"kmbh1"′",conn用于打開和查找kjkm數(shù)據(jù)表中指定科目編號的記錄#65377;例如,當科目編號為1001時,該語句相當于rs.open "select*from kjkm where kmbh=′1001′",conn#65377;同理,rs.open "select*from kjkm where kmbh=′"left(kmbh1,len(kmbh1)-2)"′",conn用于打開和查找kjkm數(shù)據(jù)表中是否存在某科目的上級科目,left(kmbh1,len(kmbh1)-2)的作用是將kmbh1中最右邊的兩位截去后形成的字符串,就是kmbh1的上級科目的科目編號#65377;使用rs.open語句之前必須用rs.close語句關(guān)閉先前打開的數(shù)據(jù)源#65377;

(9)rs.eof表示記錄指針指向了文件尾(或最后一條記錄之后),這里是指沒有在kjkm數(shù)據(jù)表中找到相關(guān)的記錄#65377;

(10)response.write "<a href=javascript:history.back()>"和response.write "無上級科目,請返回輸入上級科目!</a>"可合寫為response.write "<a href=javascript:history.back()>無上級科目,請返回輸入上級科目!</a>",其作用是向瀏覽器端輸出關(guān)于“無上級科目,請返回輸入上級科目!”的超鏈接,當單擊此超鏈接時,瀏覽器端出現(xiàn)前一個網(wǎng)頁頁面(這里是accountinput.htm所表示的會計科目輸入網(wǎng)頁,可以看到原先輸入的信息)#65377;

(11)if len(jdfx1)=1用于判斷jdfx1的長度是否為1#65377;由于借貸方向的字段大小設(shè)計為1(如表1所示),所以,當jdfx1的長度不為1時,應(yīng)提示“借貸方向不對,請返回重新輸入!”#65377;

(12)if isNumeric (qcye1))用于判斷瀏覽器端所輸入的期初余額(qcye)是否為一個數(shù)字型數(shù)據(jù),當qcye1的值不是數(shù)字型時應(yīng)在瀏覽器端提示“期初余額不對,請返回重新輸入!”#65377;

(13)rs.open "kjkm",conn,,2的作用是打開kjkm數(shù)據(jù)表,并指定鎖定類型的值為2(保守式),采用默認的游標類型#65377;也可將鎖定類型的值指定為3(開放式),寫為rs.open "kjkm",conn,,3#65377;注意此語句之前必須用rs.close語句關(guān)閉先前打開的數(shù)據(jù)源#65377;

(14)rs.addnew與rs.update之間的代碼的作用是向kjkm數(shù)據(jù)表添加一條記錄#65377;其中,rs("kmbh")=kmbh1是將字段kmbh的值保存為瀏覽器端輸入的科目編號的值,該語句也可寫成rs.fields.item("kmbh")=kmbh1#65377;

(15)response.redirect "accountinput.htm"是將頁面跳轉(zhuǎn)到accountinput.htm所表示的會計科目輸入網(wǎng)頁#65377;

(16)rs.close和set rs=nothing的作用是關(guān)閉并釋放記錄集對象,conn.close和set conn=nothing的作用是關(guān)閉與數(shù)據(jù)庫的鏈接并釋放鏈接對象#65377;

主要參考文獻

[1] 李國紅. 管理信息系統(tǒng)數(shù)據(jù)輸入模塊的設(shè)計與實現(xiàn)——兼論會計科目的輸入設(shè)計[J]. 中國管理信息化, 2006(11):19-22.

[2] 陳建偉,李美軍,施建強. ASP動態(tài)網(wǎng)站開發(fā)教程[M]. 第2版. 北京: 清華大學(xué)出版社, 2005.

主站蜘蛛池模板: 久久久久久久97| 欧美区日韩区| 黄色在线网| 国产精品视频系列专区| 全色黄大色大片免费久久老太| 免费人成网站在线高清| 久久国产亚洲欧美日韩精品| 国内精品自在欧美一区| 国产成人一区在线播放| 欧美爱爱网| 日日噜噜夜夜狠狠视频| 欧美色视频日本| www.精品国产| 成人欧美在线观看| 国产精品尤物在线| 免费激情网站| 国产在线观看高清不卡| 宅男噜噜噜66国产在线观看| 456亚洲人成高清在线| 日韩av电影一区二区三区四区| 国产在线麻豆波多野结衣| 国内视频精品| 中文字幕天无码久久精品视频免费| 97超爽成人免费视频在线播放| a级毛片免费在线观看| 欧美日韩久久综合| 日韩无码视频播放| 亚洲成人在线免费观看| 亚洲码一区二区三区| 丁香六月激情综合| 无码专区第一页| 亚洲一级毛片免费观看| jizz国产视频| 天天摸夜夜操| 九九久久精品国产av片囯产区| 9999在线视频| 国产精品尤物铁牛tv| 少妇精品在线| 国产丝袜啪啪| 国产精品吹潮在线观看中文| 手机在线免费不卡一区二| 伊人天堂网| 片在线无码观看| 日韩小视频在线观看| 特级aaaaaaaaa毛片免费视频| 亚洲无限乱码| 国产精品美女网站| 嫩草影院在线观看精品视频| 宅男噜噜噜66国产在线观看| 国产国拍精品视频免费看| 一级高清毛片免费a级高清毛片| 精品无码一区二区三区电影| 国产99在线| 青青草国产在线视频| 新SSS无码手机在线观看| 在线无码私拍| 97久久精品人人做人人爽| 污网站在线观看视频| 日韩激情成人| 在线观看免费AV网| a亚洲视频| 亚洲aaa视频| 亚洲AV无码一区二区三区牲色| 日本高清视频在线www色| 一级片免费网站| 在线观看网站国产| 亚洲香蕉久久| 97国内精品久久久久不卡| 成人福利在线看| 114级毛片免费观看| 亚洲码在线中文在线观看| 日本在线亚洲| 无码高潮喷水专区久久| 久草视频精品| 日本人妻丰满熟妇区| 国产乱人视频免费观看| 国产污视频在线观看| 91无码国产视频| 免费看一级毛片波多结衣| 91亚洲精品第一| 99re在线免费视频| 亚洲欧美成人影院|