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

📄 bodyedit.js

📁 学生档案与成绩管理(1)学生档案管理:记录每个学生的档案信息
💻 JS
字号:

//*****************************************************************
//带数据库字段的mail正文编辑、合法性检查
//*****************************************************************
//【版权所有·尊重他人创作】
// History:
// Created by 郭宝华(bob guo), bhguo@163.com, 2004 10 21 
	
	var BodyErrDesc;	//mail正文合法性检查的错误描述

	//保存编辑栏的光标
	function storeCaret()
	{ 
		if (frmData.MailBodyDesc.createTextRange)  
		frmData.MailBodyDesc.caretPos = document.selection.createRange().duplicate();  
	} 

	//选择编辑栏的文字段
	function selectText (iStart, iEnd) 
	{ 
		var target;
		target=frmData.MailBodyDesc;
		switch(arguments.length) 
		{ 
			case 1: 
				target.select(); 
				break; 
			case 2: 
				iEnd = target.value.length; 
				//falls through 由 case3 继续处理 
			case 3: 
				var oRange = target.createTextRange(); 
				oRange.moveStart("character", iStart); 
				oRange.moveEnd("character", -target.value.length + iEnd); 
				oRange.select(); 
		} 
	} 

	//向Mail正文插入文字
	function insertText (text) 
	{ 
		var target;
		target=frmData.MailBodyDesc;
		if (target.createTextRange && target.caretPos) 
		{ 
			var caretPos = target.caretPos; 
			caretPos.text =caretPos.text.charAt(caretPos.text.length - 1) == ' ' ?text + ' ' : text;  
		}  
		else
		{
			target.value = text; 
		}
		target.focus();
		storeCaret();
	}  
	
	//向Mail正文加入一个字段
	function addField()
	{ 
		var index,caption;
		index=frmData.BodyFieldID.selectedIndex;
		if(index>0)
		{
			caption=frmData.BodyFieldID[index].text;
			caption='['+caption+']';
			insertText(caption);
			frmData.BodyFieldID.selectedIndex=0;
		}
	}

	//验证Mail正文的合法性,逻辑是:将所有的[字段名称]都替换成空,查找还有没有“[”或“]”。
	//没有,则说明Mail正文中的可替换字段正确,否则存在问题。
	function CheckBody() 
	{
		var Desc,FieldCount,ItemCaption;
		
		BodyErrDesc=""

		//将所有的[字段名称]都替换成空。
		Desc=frmData.MailBodyDesc.value;
		FieldCount=frmData.BodyFieldID.length-1;
		if(FieldCount>0)
		{
			for (var i=1;i<=FieldCount;i++)
			{
				ItemCaption="[" + frmData.BodyFieldID[i].text + "]";
				Desc=replace(Desc,ItemCaption,"")
			}		
		}
		//将[CurrentTime]、[CurrentDate]替换成空。
		Desc=replace(Desc,"[CurrentTime]","")
		Desc=replace(Desc,"[CurrentDate]","")
		
		//找出[
		pos = Desc.indexOf("[");
		if(pos!=-1)
		{
			BodyErrDesc="Email正文含有不可识别的活动字段标志,请检查。";
			return(false);
		}
		//找出]
		pos = Desc.indexOf("]");
		if(pos!=-1)
		{
			BodyErrDesc="Email正文含有不可识别的活动字段标志,请检查。";
			return(false);
		}
		
		return(true);
	}

	//将Mail正文字段名称[XXX]换成字段id形式,以便存入数据库。
	function FormatToFieldID(Desc) 
	{
		var Count,Caption,FieldID;
		Count=frmData.BodyFieldID.length
		for(var i=1;i<=Count-1;i++)
		{
			Caption=frmData.BodyFieldID[i].text;
			Caption='['+Caption+']';
			FieldID=frmData.BodyFieldID[i].value;
			FieldID='[Fld'+FieldID+']';
			Desc=replace(Desc,Caption,FieldID);
		}
		return(Desc);
	}

	//将公式条件变换成可在页面中显示的形式
	//公式条件采用与查询条件类似的内部存储结构,格式:Fldxxx ConItemSep Value GroupSep Fldxxx ConItemSep Value
	function FormatConditionToCaption(strConditions) 
	{
		var ConditionDescs
		var ConditionCount,Conditions,curCondition,curConditionDesc;
		var FieldID,Value,FieldCaption;

		ConditionDescs="";
		Conditions=strConditions.split(GroupSep);
		ConditionCount=Conditions.length;
		if(ConditionCount>0)
		{
			for(var i=0;i<=ConditionCount-1;i++)
			{
				curCondition=Conditions[i];
				curConditionDesc="";

				var parts;
				parts=curCondition.split(ConItemSep);
				if(parts.length==2)
				{
					var FldPos,RealFieldID;
					FieldID=parts[0];
					Value=parts[1];
					FldPos=FieldID.indexOf("Fld");
					RealFieldID=FieldID.substr(FldPos+3);
					FieldCaption=FormatToCaption("[Fld"+RealFieldID+"]");

					var curIndex;
					curIndex=SetIndex(frmData.FieldToCondition,RealFieldID);
					if(ConditionDataType[curIndex-1]==DataType_Option)
					{
						var Option;
						eval("Option=frmData.Fld"+RealFieldID);
						curConditionDesc=FieldCaption + "=" + GetAllOptionName(Option,Value);
					}
					else if(ConditionDataType[curIndex-1]==DataType_Number || ConditionDataType[curIndex-1]==DataType_Date || ConditionDataType[curIndex-1]==DataType_DateAndTime)
					{
						if(FldPos==4)	//条件中的From值,如:FromFld1
						{
							curConditionDesc=FieldCaption + ">=" + Value;
						}
						else if(FldPos==2)	//条件中的To值,如:ToFld1
						{
							curConditionDesc=FieldCaption + "<=" + Value;
						}
					}
				}
				if(curConditionDesc!="")
				{
					if(ConditionDescs=="")
						ConditionDescs=curConditionDesc;
					else
						ConditionDescs=ConditionDescs + " and " + curConditionDesc;
				}
			}
		}
		return(ConditionDescs);
	}

	//根据value 设置list的selectedIndex
	function SetIndex(list,value) 
	{
		var Count;
		Count=list.length;
		if(Count>0)
		{
			for(var i=0;i<=Count-1;i++)
			{
				if(value==list[i].value)
				{	
					list.selectedIndex=i;
					return(i);
				}
			}
		}
		list.selectedIndex=-1;
		return(-1);
	}

	function GetOptionName(Option,Value)
	{
		var Count,Caption;
		if(Value>0)
		{
			Count=Option.length;
			for(var i=0;i<=Count-1;i++)
			{
				if(Value==Option[i].value)
				{
					Caption=Option[i].text;
					return(Caption);
				}
			}
			return("");
		}
		else
		{
			return("");
		}
	}
	
	function GetAllOptionName(Option,Values)
	{
		var parts,ItemCount;
		var OptionCount,Caption;
		
		Caption="";
		parts=Values.split(",");
		ItemCount=parts.length;
		if(ItemCount>0)
		{
			for(var i=0;i<=ItemCount-1;i++)
			{
				if(parts[i]>0)
				{
					OptionCount=Option.length;
					for(var j=0;j<=OptionCount-1;j++)
					{
						if(parts[i]==Option[j].value)
						{
							if(Caption=="")
								Caption=Option[j].text;
							else
								Caption=Caption + "," + Option[j].text;
						}
					}
				}
			}
		}
		return(Caption);
	}

⌨️ 快捷键说明

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