📄 bodyedit.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 + -