|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
asp,你就只能等着微软给你解决,它不乐意你就只好悲催。而且asp跑在windows服务器上,windows服务器跟linux比起来简直弱爆了!把持本文完成的是一个帐务办理体系平分级权限的把持,程序利用ASP和JavaScript编写,在装有IIS4.0的winNT服务器上运转,速率快,易保护。
权限级别分别以下:
①、院长和财政科长:不克不及输出,能够无穷制查询、统计;
②、副院长:不克不及输出,能够查询、统计其分担部门的帐务;
③、部门向导:不克不及输出,能够查询、统计本部门的帐务;
④、管帐:能输出各部门的帐务(一个管帐偶然要做几个部门的帐),只能查询、统计本人输出的帐务。
触及的数据库和字段以下
①、JK_USER数据库及字段:id(序列号),bmid(部门号),username(用户名),pwd(口令),right(权限值);
②、BM数据库及字段:id(序列号),bmid(部门号);
③、JZPZ数据库及字段:id(序列号),bm(部门),zgs(子公司),xmz(项目组),xm(项目),sr(支出),zc(付出),szfx(出入偏向),szxs(出入情势),rq(日期),jbr(包办人),lrr(录进人),szsm(出入申明);
④、ZGS数据库及字段:id(序列号),zgs(子公司)name(公司名),bmid(部门编号)。
1.起首举行用户身份正当性考证
将用户提交的用户名和口令与数据库JK_USER中的字段对比对比,以断定其正当性,只要正当的用户(体系办理员为其开过户)才能够进进,正当用户有四种权限级别,分离付与“1”、“2”、“3”、“4”四种权限值。(程序略)。
2.凭据记帐(分级权限把持)
凭据记帐功效是专为管帐职员服务的,其别人不成以利用,如以非管帐职员身份进进凭据录进界面时,只要“查询记帐凭据”功效按钮可见,别的功效按钮不成见。录进的凭据先寄存在一个一时内外,称为“未记帐凭据库”,只要运转“凭据记帐”功效后才进进“凭据库”在“未记帐凭据库”中的凭据能够修正。部分程序以下:
’非管帐职员进进,不显现“凭据记帐”和“保留未记帐凭据”功效按钮
if(thisPage.firstEntered)then
ifsession("tright")"1"then
button1.hide
button2.hide
endif
…………
’主动填写工夫和操纵人
Textbox7.value=year(date)&"-"&month(date)&"-"&day(date)
Textbox9.value=session("username")
setcnn1=server.CreateObject("adodb.connection")
setrst1=server.CreateObject("adodb.recordset")
cnn1.CursorLocation=3
cnn1.ConnectionTimeout=30
cnn1.Open"DSN=jky"
rst1.Open"select*frombm",cnn1,1,1,adcmdtext
ifrst1.RecordCount>0then
RST1.MoveFirst
Id=rst1.Fields("id")
dowhilenotrst1.EOF
Listbox3.addItemrst1.Fields("bmName"),cint(rst1.Fields("id"))
Response.Writerst1.Fields("bmname")&rst1.Fields("id")
rst1.MoveNext
loop
endif
rst1.Close
rst1.Open"selectzgsnamefromzgswherebmid="&id,cnn1,1,1,adcmdtext
ifrst1.RecordCount>0then
rst1.MoveFirst
dowhilenotrst1.EOF
Listbox4.addItemcstr(rst1.Fields("zgsname"))
rst1.MoveNext
loop
endif
rst1.Close
cnn1.close
callwriterst
endif
endfunction
………………
’凭据记帐
subbutton2_onclick
dims
s=Listbox1.selectedIndex
Response.Writes
endsub
sublistbox3_onchange
dimid,i
i=Listbox4.getCount()
dowhilei>-1
callListbox4.removeItem(i)
i=i-1
loop
id=listbox3.getValue(listbox3.selectedIndex)
setcnn2=server.CreateObject("adodb.connection")
setrst2=server.CreateObject("adodb.recordset")
cnn2.CursorLocation=3
cnn2.ConnectionTimeout=30
cnn2.Open"DSN=jky"
rst2.Open"selectzgsNamefromzgswherebmid="&id,cnn2,1,1,adcmdtext
ifrst2.RecordCount>0then
RST2.MoveFirst
dowhilenotrst2.EOF
Listbox4.addItemcstr(rst2.Fields("zgsName"))
rst2.MoveNext
loop
endif
rst2.Close
cnn2.Close
endsub
subbutton2_onclick
setcnn5=server.CreateObject("adodb.connection")
cnn5.CursorLocation=3
cnn5.ConnectionTimeout=30
cnn5.Open"DSN=jky"
cnn5.Execute"insertintojzpz(bm,zgs,xmz,xm,sr,zc,szfx,szxs,rq,jbr,lrr,szsm)selectbm,zgs,xmz,xm,sr,zc,szfx,szxs,rq,jbr,lrr,szsmfromwjzpzwherelrr="&session("username")&""
cnn5.Execute"deletefromwjzpzwherelrr="&session("username")&""
endsub
3.数据查询(分级权限把持)
以凭据的字段为前提举行查询,在供选前提前有一方框供打“√”,个中“部门“前提必选(程序主动加上),部门内容由程序依据用户的权限主动从数据库中挪用响应值,分公司内容依据所属部门主动调剂,部分程序以下:
……………
’依据权限值进进响应的查询界面
……………
functionthisPage_onenter()
setcnn1=server.CreateObject("adodb.connection")
setrst1=server.CreateObject("adodb.recordset")
cnn1.CursorLocation=3
cnn1.ConnectionTimeout=30
cnn1.Open"dsn=jky"
selectcasesession("Tright")
case"3"副院长
rst1.Open"selectbm.bmNamefromjk_user,bmwhereJK_user.bmid=bm.idandjk_user.username="&session("username")&"",cnn1,1,1,adcmdtext
ifrst1.RecordCount>0then
RST1.MoveFirst
dowhilenotrst1.EOF
Listbox1.addItemcstr(rst1.Fields("bmName"))
rst1.MoveNext
loop
endif
rst1.Close
rst1.Open"selectzgsnamefromzgs",cnn1,</p>实现规模效益。与传统的用户拥有硬件软件所有权和使用权以及传统的应用服务商提供一对一的服务模式不同,ASP拥有应用系统所有权,用户拥有使用权,应用系统集中放在ASP的数据中心中,集中管理,分散使用,以一对多的租赁的形式为众多用户提供有品质保证的应用技术服务,实现规模效益。 |
|