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

📄 send.inc

📁 物业管理和办公自动化系统
💻 INC
📖 第 1 页 / 共 2 页
字号:
<%
'************************************************************************************************
' 文件名: send.inc
' Copyright(c) 2001-2002 上海阿尔卡特网络支援系统有限公司
'
'  创建人 : 周秋舫
'  日 期 : 2002-05-13
' 修改历史 :
'   ****年**月**日 ****** 修改内容:**************************************************
' 功能描述 : send.asp的包含文件,主要是服务器端的一些函数实现
'				FormMsg()			: 构造一个发送消息的Form
'				ActionLink()		: 构造Link
'				SaveMessage()	: 保存到草稿箱
'				SendMessage()	: 发送消息
'				NewMsgId()		: 产生一个唯一的消息标识作为t_msg.msg_id
'				GetReplyReceivers(sReceivers, sSender)		'' 全部回复时根据原消息的发件人和收件人产生本消息的收件人
'  版 本 :
'************************************************************************************************
Function FormMsg()
	dim sSQL, crs, rs
	dim sParentMsgId, sSubject, sContent, sFolder, sSender, sReceiver, sSendTime

	if Not IsEmpty(pOriginalMsgSerial) then
			sSQL = "select * from t_msg where emp_serial = " & GetEmpSerial & " and serial = " & pOriginalMsgSerial
	elseif Not IsEmpty(pMsgSerial) then
			sSQL = "select * from t_msg where emp_serial = " & GetEmpSerial & " and serial = " & pMsgSerial
	end if
'	response.write sSQL & "<br>": response.end
	if sSQL <> "" then
			set crs = New CRecordset
			set rs = crs.Open(dbLocal, sSQL)
			if rs.EOF then
				crs.Close()
				Response.Clear
				Response.Write "<script language=""javascript"">alert(""该消息已被删除,请刷新草稿箱!"");window.close();</script>"
				Response.End
				''Response.Clear
				''Server.Transfer("../common/error.asp")
				''Response.End
			end if
			if Not IsEmpty(pOriginalMsgSerial) then
				sParentMsgId = crs.GetValue("msg_id")				'' 原消息的 msg_id 字段作为新消息的 ParentMsgId
			elseif Not IsEmpty(pMsgSerial) then
				sParentMsgId = crs.GetValue("parent_msg_id")	'' ParentMsgId 保持不变 
			end if
			sSubject = crs.GetValue("subject")
			sContent = crs.GetValue("content")
			sSender	 = crs.GetValue("sender")
			sSendTime = crs.GetValue("send_time")
			sReceiver = crs.GetValue("receiver")
	end if
	
	if Not IsEmpty(pOriginalMsgSerial) then
		'' 附加原始消息
		sContent = vbLF & vbLF & vbLF & vbLF & vbLF & _ 
				"----原始消息----" & vbLF & _
				"发件人: " & TransEmpSerial(dbLocal, sSender) & vbLF & _
				"收件人: " & TransEmpSerial(dbLocal, sReceiver) & vbLF & _
				"主 题: " & sSubject & vbLF & _
				sContent & vbLF

		if pAction = "reply" then
			sSubject = "答复: " & sSubject		'' 表明是回复消息,在原消息主题前加 “答复: ” 字样,并且接收者缺省为原消息的发送者
			sReceiver = sSender
		elseif pAction = "replyall" then
			sSubject = "答复: " & sSubject		'' 表明是回复消息,,在原消息主题前加 “答复: ” 字样,并且接收者缺省为原消息的发送者和原消息的所有接收者
			sReceiver = GetReplyReceivers(sReceiver, sSender)
		elseif pAction = "forward" then
			sSubject = "转发: " & sSubject		'' 表明是转发消息,在原消息主题前加 “转发: ” 字样,并且接收者应为空
			sReceiver = ""
		end if
	end if

	FormMsg = _
		"<table cellspacing=1 cellpadding=2 border=0 bgcolor=""silver"" width=""480"" align=center>" & vbLF & _
		"<form method=post name=""frmSendMsg"" action=""send.asp"">" & vbLF & _
		"<input type=""hidden"" name=""FormAction"">" & vbLF & _
		"<input type=""hidden"" name=""msg_type"" value=""1"">" & vbLF & _
		"<input type=""hidden"" name=""original_msg_serial"" value=""" & pOriginalMsgSerial & """>" & vbLF & _
		"<input type=""hidden"" name=""msg_serial"" value=""" & pMsgSerial & """>" & vbLF & _
		"<input type=""hidden"" name=""parent_msg_id"" value=""" & sParentMsgId & """>" & vbLF & _
		"<tr bgcolor=white height=20 style=""cursor:hand"">" & vbLF & _
		"		<td width=""60"" ondblclick=""getReceiver('" & sReceiver & "');"">&nbsp;收件人:</td>" & vbLF & _
		"		<td ondblclick=""getReceiver('" & sReceiver & "');"">" & vbLF & _
						"<input type=""hidden"" name=""receiver_serial"" value=""" & sReceiver & """ size=59 maxlength=256 readonly>" & vbLF & _
						"<input type=""text"" name=""receiver_name"" value=""" & TransEmpSerial(dbLocal, sReceiver) & """ size=60 maxlength=256 readonly>" & vbLF & _
						"<img border=0 src=""../images/openswin.gif"" align=absmiddle style=""cursor:hand"" onclick=""getReceiver('" & sReceiver & "');""></td></tr>" & vbLF & _
		"<tr bgcolor=white height=20>" & vbLF & _
		"		<td>&nbsp;主 题:</td>" & vblF & _
		"		<td><input type=""text"" name=""subject"" value=""" & sSubject & """ size=66 maxlength=256></td></tr>" & vbLF & _
		"<tr height=1 bgcolor=white><td colspan=2></td></tr>" & vbLF & _
		"<tr bgcolor=white>" & vbLF & _
		"		<td colspan=2 valign=top style=""color:blue;text-align:top"">" & vbLF & _
						"<!--span style=""color:black"">&nbsp;内 容:</span><br-->" & vbLF & _
						"&nbsp;<textarea cols=74 rows=19 name=""content"" style=""color:blue"">" & sContent & "</textarea><br><img height=8></td></tr>" & vbLF & _
		"<tr bgcolor=""#0099cc"" height=20>" & vbLF & _
		"		<td align=center colspan=2>" & ActionLink & "</td></tr>" & vbLF & _
		"</table>" & vbLF & _
		"</form>" & vbLF & _
		"<select id=""slctReceivers"" multiple size=10 style=""display:none"">" & selectOptions(dbLocal,"t_employee", "serial", "name", "", "co_id=" & GetCoId & " and isdummy=0 and dismissed=0") & "</select>" & vbLF
End Function

Function ActionLink()
	ActionLink = _
			"<a href=""#"" onclick=""btnSave_OnClick()"">保存至草稿箱</a>" & _
			"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" & _
			"<a href=""#"" onclick=""btnSend_OnClick()"">发 送</a>"
	'' 如果是从草稿箱取出来的消息,则显示删除/永久删除链接
	'' 如果是从回收站中取出来的消息,则显示永久删除链接
End Function


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'' SaveMessage()
'' 将消息保存到发件箱
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
sub SaveMessage()
	dim sSQL
	dim sParentMsgId	: sParentMsgId = GetParam("parent_msg_id")
	dim sMsgType		: sMsgType = GetParam("msg_type")
	dim sSubject			: sSubject = GetParam("subject")
	dim sContent			: sContent = GetParam("content")
	dim sSender			: sSender = GetEmpSerial
	dim sReceiver		: sReceiver = GetParam("receiver_serial")

	dim sEmpSerial		: sEmpSerial = GetEmpSerial()	'' 消息的主人是我自己
	dim sFolder			: sFolder = DRAFT_BOX				'' 常量DRAFT_BOX在msg.inc中有定义,表示草稿箱
	dim sStatus			: sStatus = MSG_READ				'' 常量 MSG_READ 在 msg.inc 中有定义,表示状态为已读

	'' 草稿箱中的send_time其实是插入或更新时间
	dim sMsgId			: sMsgId = NewMsgId
	if IsEmpty(pMsgSerial) then	'' 第一次保存到草稿箱,作插入动作
			sSQL = "insert into t_msg(emp_serial, msg_id, msg_type, subject, content, folder, sender, send_time, receiver, parent_msg_id, status)" & _
					" values(" & ToSQL(sEmpSerial, "Number") & _
					", " & ToSQL(sMsgId, "Text") & _
					", " & ToSQL(sMsgType, "Number") & _
					", " & ToSQL(sSubject, "Text") & _
					", " & ToSQL(sContent, "Text") & _
					", " & ToSQL(sFolder, "Number") & _
					", " & ToSQL(sSender, "Number") & _
					", " & ToSQL(now, "Text") & _
					", " & ToSQL(sReceiver, "Text") & _
					", " & ToSQL(sParentMsgId, "Text") & _
					", " & ToSQL(sStatus, "Number") & _
					")"
			''Response.Write sSQL & "<br>"
			call ExecuteSQL(dbLocal, sSQL)
			
			'' 这时,应该把这封消息从草稿箱中取出来,重新显示,关键是取到这封消息的msg_serial,对于第一次保存的情况,很难取到(再次保存到草稿箱时msg_serial不变)
			'' 有一种方法可以取到,就是在第一次保存的时候产生一个MsgId(这个MsgId是唯一的),那根据这个MsgId就可以取回新插入消息的msg_serial了

⌨️ 快捷键说明

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