⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 common.inc

📁 物业管理和办公自动化系统
💻 INC
📖 第 1 页 / 共 4 页
字号:
<!-- #include file="adovbs.inc" -->

<%
'************************************************************************************************
' 文件名: common.inc
' Copyright(c) 2001-2002 上海阿尔卡特网络支援系统有限公司

'	创建人 : 周秋舫
'	日 期 : 2002-09-15
' 修改历史 :
'	修改日期 : 2002-11-05 
'	修改内容:针对物业管理系统作适当的调整
'
' 功能描述		: 用户有关的函数实现
'				: 数据库连接和数据访问的函数实现
'				: 数据处理有关的函数实现
'				: 有关安全方面的通用函数
'***************************************************************************************
''''''''''''''''''''''''''''''''''''''
'* 用户有关的函数实现
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'	SetUserInfor(sLoginname)	..: 保存用户信息,参数是用户登录名
'	EmptyUserInfor()	..........: 清除用户信息
'	DealEmptySessionValue	......: 如果session值为空,则清空所有的session值,认为session已过期
'	SetUserId(sLoginname)	......: 保存用户登录名
'	GetUserId()	..................: 获取用户登录名,如admin,wangjiewei,即t_account中的account_id
'	SetUserName(sUserName)	......: 保存用户姓名
'	GetUserName()	..............: 获取用户姓名,如周秋舫,即t_employee中的name
'	SetEmpId(id)	..............: 保存用户序列号
'	GetEmpId()	..................: 获取用户序列号,如54,即t_employee中的emp_id
'	SetRoleId(id)	..............: 保存用户角色标识
'	GetRoleId()	..................: 获取用户角色标识,即t_account中的role_id
'	SetOnline()	..................: 设置成在岗状态
'	SetOffline()	..............: 设置成离岗状态
'	GetOnlineStatus()	..........: 获取用户在岗/离岗状态
'	IsOnline	()	..............: 用户是否在线,是true,否false
'	IsLogin()	..................: 用户是否已经登录,是true,否false
'
'以下是用于判断当前用户是否是一些特殊角色的函数
'	IsAdministrator()	...........: 判断当前用户是不是系统管理员
'
'
'以下是用于判断当前用户对模块的操作权限的函数
'	HasRight(sItem)................: 判断当前用户对sItem的操作权限,返回值为常量,定义如下:
'Const RIGHT_DENY				=0		:无权访问	
'Const RIGHT_READ				=1		:只读访问	
'Const RIGHT_WRITE				=2		:读写访问	
'	
'sItem的取值为各个项目常量,定义如下:
'
''' 项目常量定义
'Const ID_CUSTOMER			= 1		'' 客户管理
'Const ID_STOCK				= 2		'' 库存管理
'Const ID_PURCHASE			= 3		'' 采购管理
'Const ID_HR				= 4		'' 人事管理
'Const ID_WORKSHEET			= 5		'' 工单管理
'Const ID_EQUIPMENT			= 6		'' 设备管理
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'* 数据库有关的函数实现
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' DBConnection()						'' 连接数据库
' DBConnectionOA()						'' 连接OA数据库
' Disconnect(conn)						'' 断开数据库
' ProcessError(conn)					'' 数据库相关出错信息
' OpenRs(conn, sql)
' OpenStaticRS(conn, sql)
' CloseRs(rs)
' GetValue(conn,rs, field)					'' 获取记录集中的字段值  conn用于错误显示(魏霖改)
' GetValueHTML(rs, field)				'' 获取记录集中的字段的HTML值
' SelectOptions(conn, sql, ValueField, DisplayField, DefaultValue)		'' <option></option>...
' DLookUp(conn, sql)

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'* 数据处理有关的函数实现
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' GetParam(ParamName)				'' 获取参数
' GetIntParam(ParamName)			'' 获取整数类型的参数
' ToSQL(Value, sType)				'' 
' ToHTML
' ToURL
' FormatDT(dt, format)				'' 日期格式
' strlen(str)						'' 获取字符串的长度,可以识别中英文,中文算2个字符
' Bref(str, length)					'' 截取一定长度的字符串,可以识别中文							
' FormatStr							'' 将字符串中的空格和回车转换成可在<td>中正确显示的字符串
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'*有关安全方面的通用函数
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' CheckSecurity(sItem)	,sItem参数的取值为各个项目常量,定义同HasRight(sItem)的参数定义。
' Checkmenu(roleid, itemid)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'*和日期有关的函数
' getWeekdayStr(pDate)		: 星期几
' getGongliStr(pDate)		: 公历,格式如2002年05月18日
' getNontliStr(pDate)		: 农历,格式如壬午(马)年四月初七
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' 以下是上述所有公用函数的实现
Const RIGHT_DENY			= 0		'' 无权访问	
Const RIGHT_READ			= 1		'' 只读访问	
Const RIGHT_WRITE			= 2		'' 读写访问	
Const ID_CUSTOMER		= 1		'' 客户管理
Const ID_STOCK				= 2		'' 库存管理
Const ID_PURCHASE			= 3		'' 采购管理
Const ID_HR					= 4		'' 人事管理
Const ID_WORKSHEET			= 5		'' 工单管理
Const ID_EQUIPMENT			= 6		'' 设备管理

'************************************************************************************************
' 函数名 : SetUserInfor
' 输 入 : sLoginname	---- 用户登录名,字符串类型
' 输 出 : SetUserInfor函数名作为返回值,成功返回空字串,出错返回错误信息
' 功能描述: 设置全局性的用户信息
' 调用模块: 
' 作 者 : 周秋舫
' 日 期 : 2002-05-29
' 版 本 : 
'************************************************************************************************
Function SetUserInfor(sLoginname)
	dim crs, rs, sSQL
	dim iEmpid, sUserName, iRoleId, iNodeId
	dim sError
        
	sError = ""
	sSQL = "select T1.role_id as role_id, T1.emp_id, T2.name as emp_name" & _
		" from T_Account T1" & _
		" left join T_Employee t2 on t2.emp_id = t1.emp_id" & _
		" where t1.account_id = " & ToSQL(sLoginname, "Text")
		
	set rs = OpenRs(conn, sSQL)
	
	if Not rs.EOF then
		iEmpid		= getvalue(rs,"emp_id")
		sUserName	= getvalue(rs,"emp_name")
		iRoleId		= getvalue(rs,"role_id")
		
		'' 保存用户信息
		SetUserId( sLoginname )			' 用户标识,即登录账号
		SetEmpid( iEmpid )		' 用户流水号
		if sUserName="" then
		    SetUserName(sLoginname)
		else
			SetUserName( sUserName )	' 用户姓名
		end if
		SetRoleId( iRoleId )				' 用户角色标识
		SetOnline()							' 用户在岗状态

                if iRoleId="" then
                    if IsAdministrator then
				'' 系统管理员可以进入
		    else
				'' 清除用户信息
				call EmptyUserInfor()			
			        sError=" 用户信息不全(无角色)"
		    end if
                   
                end if   
	else
		sError = "该用户名不存在!"	
	end if
	
	CloseRs(rs)
	
	SetUserInfor = sError     '返回值
End Function

'************************************************************************************************
' 函数名 : EmptyUserInfor
' 输 入 : (无)
' 输 出 : (无)
' 功能描述: 清除Session和Cookie值
' 调用模块: 
' 作 者 : 周秋舫
' 日 期 : 2002-05-29
' 版 本 : 
'************************************************************************************************
Sub EmptyUserInfor()
	' 清除Session.Contents集合中的每一项的值
	Dim Item
	For Each Item in Session.Contents 
		Session.Contents(Item) = empty
	Next

	' 清除Response.Cookies集合中的每一项的值
	For Each Item in Response.Cookies
		Response.Cookies(Item) = empty
	Next
End Sub

'************************************************************************************************
' 函数名 : EmptyLeaveInfor(sLoginname)
' 输 入 : 用户登录名
' 输 出 : (无)
' 功能描述: 清除用户留言信息
' 调用模块: 
' 作 者 : 蔡晓燕
' 日 期 : 2003-01-06
' 版 本 : 
'************************************************************************************************
Sub EmptyLeaveInfor(sLoginname)
	Dim sSQL, sUserId
	sUserId = sLoginname
	'' 更新数据库
	sSQL = "update T_OnlineStatus" & _
				" set  leave_infor = null" & _
				", leave_time = null" & _
				" where account_id = " & ToSQL(sUserId,"Text")
'response.write sSQL
'response.end
	conn.Execute(sSQL)
End Sub

'************************************************************************************************
' 函数名 : DealEmptySessionValue
' 输 入 : sessionvalue,某个session值
' 输 出 : (无)
' 功能描述: 如果输入的session值为空,则清除所有全局性的用户信息,并转向登录页面
' 调用模块: 
' 作 者 : 周秋舫
' 日 期 : 2002-08-27
' 版 本 : 
'************************************************************************************************
Sub DealEmptySessionValue(sessionvalue)
	if IsNull(sessionvalue) then sessionvalue = ""
	if IsEmpty(sessionvalue) then sessionvalue = ""
	if sessionvalue = "" then
		'' 彻底清除所有全局性的用户信息,并转向登录页面
		''Response.Write "sessionvalue:" & session()
		''call EmptyUserInfor()
		Response.Clear
		Response.Redirect "/wuye/"
		Response.end
	end if
End Sub


'************************************************************************************************
' 函数名 : SetUserId
' 输 入 : sLoginname	---- 用户登录名
' 输 出 : (无)
' 功能描述: 用Session来保存用户登录名,如wangjiewei,admin
' 调用模块: 
' 作 者 : 周秋舫
' 日 期 : 2002-05-29
' 版 本 : 
'************************************************************************************************
Sub SetUserId(sLoginname)
	Session("UserID") = sLoginname
	''Response.Cookies("UserID") = sLoginname
	''Response.Cookies("UserID").Expires=#2010-1-1#
End Sub

'************************************************************************************************
' 函数名 : GetUserId
' 输 入 : (无)
' 输 出 : GetUserId函数名作为返回值,返回当前用户的登录名,类型为字符串
' 功能描述: 取出当前用户的登录名
' 调用模块: 
' 作 者 : 周秋舫
' 日 期 : 2002-05-29
' 版 本 : 
'************************************************************************************************
Function GetUserId()
	dim sTemp
	sTemp = Session("UserID")
	''sTemp = Request.Cookies("UserID")

	call DealEmptySessionValue(sTemp)
	GetUserId = sTemp
End Function

'************************************************************************************************
' 函数名 : SetUserName
' 输 入 : sUserName	---- 用户姓名,字符串类型
' 输 出 : (无)
' 功能描述: 用Session来保存用户姓名
' 调用模块: 
' 作 者 : 周秋舫
' 日 期 : 2002-05-29
' 版 本 : 
'************************************************************************************************
Sub SetUserName(sUserName)
	Session("UserName") = sUserName
End Sub

'************************************************************************************************
' 函数名 : GetUserName
' 输 入 : (无)
' 输 出 : 用户姓名,字符串类型
' 功能描述: 获取当前用户的姓名
' 调用模块: 
' 作 者 : 周秋舫
' 日 期 : 2002-05-29
' 版 本 : 
'************************************************************************************************
Function GetUserName()
	dim sTemp
	sTemp = Session("UserName")

'	call DealEmptySessionValue(sTemp)
	GetUserName = sTemp
End Function

'************************************************************************************************
' 函数名 : SetEmpId
' 输 入 : id	---- 用户序列号,整型
' 输 出 : (无)
' 功能描述: 用Session来保存用户序列号
' 调用模块: 
' 作 者 : 周秋舫
' 日 期 : 2002-05-29
' 版 本 : 
'************************************************************************************************
Sub SetEmpId(id)
	Session("EmpId") = id
End Sub

'************************************************************************************************
' 函数名 : GetEmpId
' 输 入 : (无)
' 输 出 : 用户序列号,整型
' 功能描述: 获取当前用户的序列号
' 调用模块: 
' 作 者 : 周秋舫
' 日 期 : 2002-05-29
' 版 本 : 
'************************************************************************************************
Function GetEmpId()
	dim sTemp
	sTemp = Session("EmpId")
	
	'call DealEmptySessionValue(sTemp)
	GetEmpId = sTemp
End Function

'************************************************************************************************
' 函数名 : SetRoleId
' 输 入 : id	---- 用户角色标识,整型
' 输 出 : (无)
' 功能描述: 用Session来保存用户角色标识
' 调用模块: 
' 作 者 : 周秋舫
' 日 期 : 2002-05-29
' 版 本 : 
'************************************************************************************************
Sub SetRoleId(id)
	Session("RoleID") = id
	
End Sub

'************************************************************************************************

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -