📄 freelable_fieldslist.asp
字号:
}
}
else
{
if(OpStr != "In")
{
if(keyCode==188)
ValObj.value = ValObj.value.replace(/\,/g,"");
}
if(keyCode==222)
ValObj.value = ValObj.value.replace(/\'/g,"");
}
}
ValueArray(index,OperationNum,"Set",ValObj.value);
}
//整理操作表达式,对父窗口的操作表达式进行更新
function SetExpressionToArray()
{
var ExpArray = new Array();
var i,j,k,OpStr,FieldStr,AltStr,ValStr,DateArray;
for(i=0;i<FieldsNum;i++)
{
FieldStr = document.all(TableField+i).value;
AltStr = document.all(TableField+i).alt;
for(j=1;j<=3;j++)
{
if( OperationArray(i,j,"Get","") != "")
{
OpStr = OperationArray(i,j,"Get","");
ValStr = ValueArray(i,j,"Get","");
if(AltStr == "7")
{
DateArray = ValStr.split(",");
for(k=0;k<DateArray.length;k++)
if(IsValidDate(DateArray[k]) == false)
{
alert("字段["+document.all(TableField+i).innerText+"]"+OpStr+" "+"的日期无效");
return;
}
}
ExpArray[ExpArray.length] = CreateExpression(FieldStr,AltStr,OpStr,ValStr);
}
}
}
parent.SetExpressionToArray(ExpArray,TableName);
}
//生成操作表达式项
function CreateExpression(FieldStr,AltStr,OpStr,ValStr)
{
var ExpressionStr = "";
if(AltStr == "116" || AltStr == "16" )
{
if(ValStr == "")
ValStr = "0";
if(OpStr == "In")
ExpressionStr = FieldStr+" In("+ValStr.replace(/\'/g,"")+")";
else
ExpressionStr = FieldStr+OpStr+ValStr;
}
else
{
if(AltStr == "7")
{
if(OpStr == "In")
{
if(IsSqlDataBase == 1)
{
ExpressionStr = FieldStr+" In('"+ValStr.replace(/\'/g,"").replace(/\,/g,"','")+"')";
}
else
{
ExpressionStr = FieldStr+" In(#"+ValStr.replace(/\'/g,"").replace(/\,/g,"#,#")+"#)";
}
}
else
{
if(IsSqlDataBase == 1)
{
ExpressionStr = FieldStr+OpStr+"'"+ValStr+"'";
}
else
{
ExpressionStr = FieldStr+OpStr+"#"+ValStr+"#";
}
}
}
else
{
if(OpStr == "In")
ExpressionStr = FieldStr+" In('"+ValStr.replace(/\'/g,"").replace(/\,/g,"','")+"')";
else
ExpressionStr = FieldStr+OpStr+"'"+ValStr+"'";
}
}
return ExpressionStr;
}
//判断字符串是否为有效日期
function IsValidDate(DateStr)
{
DateStr = DateStr.replace(/\-/g,",").replace(/\//g,",")
var DeteStrArray = DateStr.split(",");
var DayNumOfMonth = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
if(DeteStrArray.length == 1 || DeteStrArray.length > 3) return false;
if(DeteStrArray[0] == "" || DeteStrArray[0].length > 4) return false;
if(DeteStrArray[1] == "" || eval(DeteStrArray[1]+"> 12") == true) return false;
if(DeteStrArray.length == 3)
{
if(eval("("+DeteStrArray[0]+" % 4 == 0 && "+DeteStrArray[0]+" % 100 != 0) || "+DeteStrArray[0]+" % 400 == 0") == true)
DayNumOfMonth[2] = 29;
if(eval(DeteStrArray[2]+" > DayNumOfMonth["+DeteStrArray[1]+"]") == true || DeteStrArray[2] == "")
return false;
}
return true;
}
//清除字符串里除指定字符外的字符
function CleanStrExcept(Str,ExceptStr)
{
if(ExceptStr == "") return "";
var i=0;
while(i<Str.length)
{
if(ExceptStr.indexOf(Str.charAt(i)) == -1)
Str = Str.substr(0,i)+Str.substr(i+1);
else
i = i+1;
}
return Str;
}
//用户单击某个字段,保存前一个单击字段的操作符、操作值,更新前一个和本次单击字段的显示状态和父窗口的添加操作表达式超链接
function ClickTab(index)
{
var i,DirectionStr,OperationStr,ValueStr,Tempstr;
DirectionStr = "";
OperationStr = "";
ValueStr = "";
Tempstr = "";
if(SelectIndex != -1)
{
if(SelectIndex == index) return;
for(i=1;i<=OpNumOfFieldArray[SelectIndex];i++)
{
if(OperationArray(SelectIndex,i,"Get","") != "")
{
if(document.all(TableField+SelectIndex).alt == "116" && document.all("Val"+i+"_"+SelectIndex).value =="")
document.all("Val"+i+"_"+SelectIndex).value = "0";
ValueArray(SelectIndex,i,"Set",document.all("Val"+i+"_"+SelectIndex).value);
Tempstr = ValueArray(SelectIndex,i,"Get","");
if(Tempstr.length > 10)
Tempstr = Tempstr.substring(0,7)+"...";
if(OperationStr == "")
{
OperationStr = OperationArray(SelectIndex,i,"Get","").replace("<","<");
ValueStr = Tempstr;
}
else
{
OperationStr = OperationStr+"<br>"+OperationArray(SelectIndex,i,"Get","").replace("<","<");
ValueStr = ValueStr+"<br>"+Tempstr;
}
}
}
if(DirectionStrArray[SelectIndex] == "Asc")
DirectionStr = "升序";
else
if(DirectionStrArray[SelectIndex] == "Desc")
DirectionStr = "降序";
document.all("Direction_"+SelectIndex).innerHTML = DirectionStr;
document.all("Operation_"+SelectIndex).innerHTML = OperationStr
document.all("Value_"+SelectIndex).innerHTML = ValueStr;
SetExpressionToArray();
}
SelectIndex = index;
if(SelectIndex != -1)
{
parent.SetAddExpContainerHTML(TableName,"操作 <a href='#' onclick=AddExpression('"+TableName+"',"+index+")>+</a>");
DirectionStr = "<select id='Dir_"+SelectIndex+"' onchange='DirectionChange("+SelectIndex+")' style='width:100%;'><option value=''><option value='Asc'>升序<option value='Desc'>降序</select>";
DirectionStr = DirectionStr.replace("value='"+DirectionStrArray[SelectIndex]+"'","value='"+DirectionStrArray[SelectIndex]+"' selected");
document.all("Direction_"+SelectIndex).innerHTML = DirectionStr;
document.all("Operation_"+SelectIndex).innerHTML = CreateHMTL("Operation",SelectIndex);
document.all("Value_"+SelectIndex).innerHTML = CreateHMTL("Value",SelectIndex);
}
else
parent.SetAddExpContainerHTML(TableField,"操作");
}
//对某个字段添加操作表达式输入区域,同一字段最多能有3个操作表达式
function AddExpression(index)
{
var OperationStr,ValueStr,i;
if(OpNumOfFieldArray[index]<3)
{
OperationStr = CreateHMTL("Operation",SelectIndex);
ValueStr = CreateHMTL("Value",SelectIndex);
i = OpNumOfFieldArray[index] +1;
OperationStr = OperationStr+"<br><select id='Op"+i+"_"+index+"' onchange='OperationChange("+i+","+index+")' style='width:100%;'><option value=''><option value='='>=<option value='<>'><><option value='>'>><option value='>='>>=<option value='<'><<option value='<='><=<option value='In'>In</select>";
ValueStr = ValueStr+"<br><input id='Val"+i+"_"+index+"' value='' onKeyUp='CheckValue("+i+","+index+")' size=8>";
OpNumOfFieldArray[index] = i;
document.all("Operation_"+SelectIndex).innerHTML = OperationStr;
document.all("Value_"+SelectIndex).innerHTML = ValueStr;
}
}
//根据名称生成某个字段的操作符选择列表或操作值输入框的HTML代码
function CreateHMTL(Name,index)
{
var i,j,TempOprStr,TempValueStr,OperationStr,ValueStr;
j=0;
OperationStr ="";
for(i=1;i<=3;i++)
{
if(OperationArray(index,i,"Get","") !="")
{
j++;
TempOprStr = "<select id='Op"+j+"_"+index+"' onchange='OperationChange("+j+","+index+")' style='width:100%;'><option value=''><option value='='>=<option value='<>'><><option value='>'>><option value='>='>>=<option value='<'><<option value='<='><=<option value='In'>In</select>";
TempOprStr = TempOprStr.replace("value='"+OperationArray(index,i,"Get","")+"'","value='"+OperationArray(index,i,"Get","")+"' selected")
TempValueStr = "<input id='Val"+j+"_"+index+"' value='"+ValueArray(index,i,"Get","")+"' onKeyUp='CheckValue("+j+","+index+")' size=8>";
if(OperationStr == "")
{
OperationStr = TempOprStr;
ValueStr = TempValueStr;
}
else
{
OperationStr = OperationStr+"<br>"+TempOprStr;
ValueStr = ValueStr+"<br>"+TempValueStr;
}
continue;
}
}
if(OperationStr == "")
{
OperationStr = "<select id='Op"+1+"_"+index+"' onchange='OperationChange("+1+","+index+")' style='width:100%;'><option value=''><option value='='>=<option value='<>'><><option value='>'>><option value='>='>>=<option value='<'><<option value='<='><=<option value='In'>In</select>";
ValueStr = "<input id='Val"+1+"_"+index+"' value='' onKeyUp='CheckValue("+1+","+index+")' size=8>";
}
if(j==0)
OpNumOfFieldArray[index] = 1;
else
OpNumOfFieldArray[index] = j;
for(i=1;i<=3;i++)
{
if(OperationArray(index,i,"Get","") == "")
{
for(j=i+1;j<=3;j++)
if( OperationArray(index,j,"Get","") != "")
{
OperationArray(index,i,"Set",OperationArray(index,j,"Get",""))
OperationArray(index,j,"Set","")
ValueArray(index,i,"Set",ValueArray(index,j,"Get",""))
ValueArray(index,j,"Set","")
}
}
}
switch(Name)
{
case "Operation":
return OperationStr;
case "Value":
return ValueStr;
}
}
</script>
<%
Set Conn = Nothing
Function GetFieldType(FieldType)
Select Case FieldType
Case 0
GetFieldType = "Empty"
Case 16
GetFieldType = "自动"
Case 100
GetFieldType = "文本"
Case 116
GetFieldType = "数字"
Case 230
GetFieldType = "备注"
Case 2
GetFieldType = "SmallInt"
Case 3
GetFieldType = "Integer"
Case 20
GetFieldType = "BigInt"
Case 17
GetFieldType = "UnsignedTinyInt"
Case 18
GetFieldType = "UnsignedSmallInt"
Case 19
GetFieldType = "UnsignedInt"
Case 21
GetFieldType = "UnsignedBigInt"
Case 4
GetFieldType = "Single"
Case 5
GetFieldType = "Double"
Case 6
GetFieldType = "Currency"
Case 14
GetFieldType = "Decimal"
Case 131
GetFieldType = "Numeric"
Case 11
GetFieldType = "Boolean"
Case 10
GetFieldType = "Error"
Case 132
GetFieldType = "UserDefined"
Case 12
GetFieldType = "Variant"
Case 9
GetFieldType = "IDispatch"
Case 13
GetFieldType = "IUnknown"
Case 72
GetFieldType = "GUID"
Case 7
GetFieldType = "日期"
Case 133
GetFieldType = "DBDate"
Case 134
GetFieldType = "DBTime"
Case 135
GetFieldType = "DBTimeStamp"
Case 8
GetFieldType = "BSTR"
Case 129
GetFieldType = "Char"
Case 200
GetFieldType = "VarChar"
Case 201
GetFieldType = "LongVarChar"
Case 130
GetFieldType = "WChar"
Case 202
GetFieldType = "VarWChar"
Case 203
GetFieldType = "LongVarWChar"
Case 128
GetFieldType = "Binary"
Case 204
GetFieldType = "VarBinary"
Case 205
GetFieldType = "LongVarBinary"
Case 136
GetFieldType = "Chapter"
Case 64
GetFieldType = "FileTime"
Case 138
GetFieldType = "PropVariant"
Case 139
GetFieldType = "VarNumeric"
Case &H2000
GetFieldType = "Array"
End Select
End Function
%>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -