DefineTable_Info_Manage.asp
上传用户:jisenq
上传日期:2014-06-29
资源大小:7216k
文件大小:35k
源码类别:

数据库编程

开发平台:

ASP/ASPX

  1. <% Option Explicit %>
  2. <!--#include file="../FS_Inc/Const.asp" -->
  3. <!--#include file="../FS_Inc/Function.asp"-->
  4. <!--#include file="../FS_InterFace/MF_Function.asp" -->
  5. <!--#include file="../FS_InterFace/NS_Function.asp" -->
  6. <!--#include file="../FS_Inc/Func_page.asp" -->
  7. <%'Copyright (c) 2006 Foosun Inc. Code by awen www.ueuo.cn 网络收藏夹
  8. Dim Conn,NS_DefineTable_RS_obj,VClass_Sql,sRootDir,str_CurrPath
  9. MF_Default_Conn
  10. 'session判断
  11. MF_Session_TF
  12. if not MF_Check_Pop_TF("MF_Define") then Err_Show
  13. Dim int_RPP,int_Start,int_showNumberLink_,str_nonLinkColor_,toF_,toP10_,toP1_,toN1_,toN10_,toL_,showMorePageGo_Type_,cPageNo
  14. int_RPP=15 '设置每页显示数目
  15. int_showNumberLink_=10 '数字导航显示数目
  16. showMorePageGo_Type_ = 1 '是下拉菜单还是输入值跳转,当多次调用时只能选1
  17. str_nonLinkColor_="#999999" '非热链接颜色
  18. toF_="<font face=webdings>9</font>"    '首页 
  19. toP10_=" <font face=webdings>7</font>" '上十
  20. toP1_=" <font face=webdings>3</font>" '上一 
  21. toN1_=" <font face=webdings>4</font>" '下一
  22. toN10_=" <font face=webdings>8</font>" '下十     
  23. toL_="<font face=webdings>:</font>" '尾页
  24. '******************************************************************
  25. if G_VIRTUAL_ROOT_DIR<>"" then sRootDir="/"+G_VIRTUAL_ROOT_DIR else sRootDir=""
  26. if Session("Admin_Is_Super") = 1 then
  27. str_CurrPath = sRootDir &"/"&G_UP_FILES_DIR 
  28. Else
  29. str_CurrPath = Replace(sRootDir &"/"&G_UP_FILES_DIR&"/adminfiles/"&Session("Admin_Name"),"//","/")
  30. End if
  31. Function morestr(str,length)
  32. if isnull(str) then morestr="":exit function
  33. if len(str)>length then 
  34. morestr = left(str,length)&" ..."
  35. else
  36. morestr = str
  37. end if
  38. End Function
  39.   
  40. Function Get_While_Info(Add_Sql,orderby)
  41. Dim Get_Html,This_Fun_Sql,ii,Str_Tmp,Arr_Tmp,New_Search_Str,Req_Str,regxp  ,int_Tmp_i,New_ClassID,ClassID,D_Value
  42. Str_Tmp = "DefineID,ClassID,D_Name,D_Coul,D_Type,D_isNull,D_Value,D_Content,D_SubType"
  43. This_Fun_Sql = "select "&Str_Tmp&" from FS_MF_DefineTable"
  44. if request.QueryString("Act")="SearchGo" then 
  45. for int_Tmp_i = 4 to 1 step -1
  46. New_ClassID = request.Form("vclass"&int_Tmp_i)
  47. if New_ClassID<>"" then exit for
  48. next
  49. if New_ClassID="[ChangeToTop]" then New_ClassID=0
  50. if New_ClassID<>"" then 
  51. ClassID = New_ClassID
  52. else
  53. ClassID = request.Form("frm_ClassID")
  54. end if
  55. if ClassID<>"" then New_Search_Str = and_where( New_Search_Str ) &" ClassID = "&ClassID
  56. D_Value = request.Form("frm_D_Value_1")
  57. if D_Value="" then D_Value = request.Form("frm_D_Value")
  58. if D_Value<>"" then New_Search_Str = and_where( New_Search_Str ) &" D_Value = '"&D_Value&"'"
  59. Arr_Tmp = split(Str_Tmp,",")
  60. for each Str_Tmp in Arr_Tmp
  61. if Trim(request("frm_"&Str_Tmp))<>"" then 
  62. Req_Str = NoSqlHack(Trim(request("frm_"&Str_Tmp)))
  63. select case Str_Tmp
  64. case "DefineID","ClassID","D_Type","D_isNull"
  65. ''数字,日期
  66. regxp = "|<|>|=|<=|>=|<>|"
  67. if instr(regxp,"|"&left(Req_Str,1)&"|")>0 or instr(regxp,"|"&left(Req_Str,2)&"|")>0 then 
  68. New_Search_Str = and_where( New_Search_Str ) & Str_Tmp &" "& Req_Str
  69. elseif instr(Req_Str,"*")>0 then 
  70. if left(Req_Str,1)="*" then Req_Str = "%"&mid(Req_Str,2)
  71. if right(Req_Str,1)="*" then Req_Str = mid(Req_Str,1,len(Req_Str) - 1) & "%"
  72. New_Search_Str = and_where( New_Search_Str ) & Str_Tmp &" like '"& Req_Str &"'"
  73. else
  74. New_Search_Str = and_where( New_Search_Str ) & Str_Tmp &" = "& Req_Str
  75. end if
  76. case else
  77. ''字符
  78. New_Search_Str = and_where(New_Search_Str) & Search_TextArr(Req_Str,Str_Tmp,"")
  79. end select 
  80. end if
  81. next
  82. if New_Search_Str<>"" then This_Fun_Sql = and_where(This_Fun_Sql) & replace(New_Search_Str," where ","")
  83. end if
  84. if Add_Sql<>"" then
  85. Add_Sql = Decrypt(Add_Sql)
  86.  This_Fun_Sql = and_where(This_Fun_Sql) &" "& Add_Sql
  87. end if 
  88. if orderby<>"" then 
  89. This_Fun_Sql = This_Fun_Sql &"  Order By "& replace(orderby,"csed"," Desc")
  90. else
  91. This_Fun_Sql = This_Fun_Sql &"  Order By DefineID desc"
  92. end if
  93. 'response.Write(This_Fun_Sql)
  94. 'response.End()
  95. Str_Tmp = ""
  96. On Error Resume Next
  97. Set NS_DefineTable_RS_obj = CreateObject(G_FS_RS)
  98. NS_DefineTable_RS_obj.Open This_Fun_Sql,Conn,1,1
  99. if Err<>0 then 
  100. Err.Clear
  101. response.Redirect("error.asp?ErrCodes=<li>查询出错:"&Err.Description&"</li><li>请检查字段类型是否匹配.</li>")
  102. response.End()
  103. end if
  104. IF  NS_DefineTable_RS_obj.eof THEN
  105.   response.Write("<tr class=""hback""><td colspan=15>暂无数据.</td></tr>") 
  106. else
  107. NS_DefineTable_RS_obj.PageSize=int_RPP
  108. cPageNo=NoSqlHack(Request.QueryString("Page"))
  109. If cPageNo="" Then cPageNo = 1
  110. If not isnumeric(cPageNo) Then cPageNo = 1
  111. cPageNo = Clng(cPageNo)
  112. If cPageNo<=0 Then cPageNo=1
  113. If cPageNo>NS_DefineTable_RS_obj.PageCount Then cPageNo=NS_DefineTable_RS_obj.PageCount 
  114. NS_DefineTable_RS_obj.AbsolutePage=cPageNo
  115.   FOR int_Start=1 TO int_RPP 
  116. Get_Html = Get_Html & "<tr class=""hback"">" & vbcrlf
  117. Get_Html = Get_Html & "<td align=""center""><a href=""DefineTable_Info_Manage.asp?Act=Edit&DefineID="&NS_DefineTable_RS_obj("DefineID")&""" class=""otherset"" title='点击修改'>"&NS_DefineTable_RS_obj("D_Name")&"</a></td>" & vbcrlf
  118. for ii=3 to 8
  119. select case ii
  120. case 4 
  121. select case NS_DefineTable_RS_obj(ii) 
  122. case 0
  123. Str_Tmp="单行文本"
  124. case 1
  125. Str_Tmp="多行文本"
  126. case 2
  127. Str_Tmp="单选"
  128. case 3
  129. Str_Tmp="多选"
  130. case 4
  131. Str_Tmp="下拉列表"
  132. case 5
  133. Str_Tmp="数字类型"
  134. case 6
  135. Str_Tmp="日期"
  136. end select
  137. Str_Tmp = "<a href=""DefineTable_Info_Manage.asp?Act=View&Add_Sql="& server.URLEncode(Encrypt( "D_Type="&NS_DefineTable_RS_obj(ii) ))&""" title=""点击查看同类"">"&Str_Tmp&"</a>"
  138. case 5
  139. if NS_DefineTable_RS_obj(ii)=1 then 
  140. Str_Tmp = "<input  type=""checkbox"" name=""Other_D_isNull"" title=""点击改为可空"" checked onclick=""javascript:location='DefineTable_Info_Manage.asp?Act=OtherSet&SetSql="& server.URLEncode(Encrypt( "D_isNull=0" ))&"&DefineID="&NS_DefineTable_RS_obj("DefineID") &"'"">"
  141. else
  142. Str_Tmp = "<input  type=""checkbox"" name=""Other_D_isNull"" title=""点击改为必填"" onclick=""javascript:location='DefineTable_Info_Manage.asp?Act=OtherSet&SetSql="& server.URLEncode( Encrypt("D_isNull=1") )&"&DefineID="&NS_DefineTable_RS_obj("DefineID") &"'"">"
  143. end if
  144. case 6
  145. Str_Tmp = morestr(NS_DefineTable_RS_obj(ii),30)
  146. if Str_Tmp<>"" then Str_Tmp = "<span style=""cursor:help"" title="""&NS_DefineTable_RS_obj(ii)&""">"&server.HTMLEncode( replace(Str_Tmp,vbcrlf,"<br />"))&"</span>"
  147. case 8
  148. select case NS_DefineTable_RS_obj(ii) 
  149. case "NS"
  150. Str_Tmp="新闻"
  151. case "MS"
  152. Str_Tmp="商城"
  153. case else
  154. Str_Tmp="[未知]"
  155. end select
  156. Str_Tmp = "<a href=""DefineTable_Info_Manage.asp?Act=View&Add_Sql="& server.URLEncode(Encrypt( "D_SubType='"&NS_DefineTable_RS_obj(ii)&"'" ))&""" title=""点击查看同类"">"&Str_Tmp&"</a>"
  157. case else
  158. Str_Tmp = NS_DefineTable_RS_obj(ii)
  159. end select
  160. Get_Html = Get_Html & "<td align=""center"">"& Str_Tmp & "</td>" & vbcrlf
  161. next
  162. Str_Tmp = NS_Fun_ExecSql("select DefineName from FS_MF_DefineTableClass where DefineID = "&NS_DefineTable_RS_obj("ClassID"),"[未分类]")
  163. Str_Tmp = "<a href=""DefineTable_Info_Manage.asp?Act=View&Add_Sql="& server.URLEncode(Encrypt( "ClassID="&NS_DefineTable_RS_obj("ClassID") ))&""" title=""点击查看同类"">"&Str_Tmp&"</a>"
  164. Get_Html = Get_Html & "<td align=""center"">"&Str_Tmp&"</td>" & vbcrlf
  165. Get_Html = Get_Html & "<td align=""center"" class=""ischeck""><input type=""checkbox""  name=""DefineID"" id=""DefineID"" value="""&NS_DefineTable_RS_obj("DefineID")&""" /></td>" & vbcrlf
  166. Get_Html = Get_Html & "</tr>" & vbcrlf
  167. NS_DefineTable_RS_obj.MoveNext
  168.   if NS_DefineTable_RS_obj.eof or NS_DefineTable_RS_obj.bof then exit for
  169.       NEXT
  170. END IF
  171. Get_Html = Get_Html & "<tr class=""hback""><td colspan=20 align=""center"" class=""ischeck"">"& vbcrlf &"<table width=""100%"" border=0><tr><td height=30>" & vbcrlf
  172. Get_Html = Get_Html & fPageCount(NS_DefineTable_RS_obj,int_showNumberLink_,str_nonLinkColor_,toF_,toP10_,toP1_,toN1_,toN10_,toL_,showMorePageGo_Type_,cPageNo)  & vbcrlf
  173. Get_Html = Get_Html & "</td><td align=right><input type=""submit"" name=""submit"" value="" 删除 "" onclick=""javascript:return confirm('确定要删除所选项目吗?');""></td>"
  174. Get_Html = Get_Html &"</tr></table>"&vbNewLine&"</td></tr>"
  175. NS_DefineTable_RS_obj.close
  176. Get_While_Info = Get_Html
  177. End Function
  178. Function NS_Fun_ExecSql(This_Fun_Sql,Def_Info)
  179. Dim Ns_This_Fun_Rs
  180. Set Ns_This_Fun_Rs = Conn.execute(This_Fun_Sql)
  181. If not Ns_This_Fun_Rs.eof then 
  182. NS_Fun_ExecSql = Ns_This_Fun_Rs(0)
  183. Else
  184. NS_Fun_ExecSql = Def_Info
  185. End if
  186. Ns_This_Fun_Rs.close
  187. set Ns_This_Fun_Rs=nothing
  188. End Function
  189. Function Get_FildValue_List(This_Fun_Sql,EquValue,Get_Type)
  190. '''This_Fun_Sql 传入sql语句,EquValue与数据库相同的值如果是<option>则加上selected,Get_Type=1为<option>
  191. Dim Get_Html,This_Fun_Rs,Text
  192. On Error Resume Next
  193. set This_Fun_Rs = Conn.execute(This_Fun_Sql)
  194. If Err.Number <> 0 then Err.clear : response.Redirect("error.asp?ErrCodes=<li>抱歉,传入的Sql语句有问题.或表和字段不存在.</li>")
  195. do while not This_Fun_Rs.eof 
  196. select case Get_Type
  197.   case 1
  198. ''<option>
  199. if instr(This_Fun_Sql,",") >0 then 
  200. Text = This_Fun_Rs(1)
  201. else
  202. Text = This_Fun_Rs(0)
  203. end if
  204. if EquValue = This_Fun_Rs(0) then 
  205. Get_Html = Get_Html & "<option value="""&This_Fun_Rs(0)&"""  style=""color:#0000FF"" selected>"&Text&"</option>"&vbNewLine
  206. else
  207. Get_Html = Get_Html & "<option value="""&This_Fun_Rs(0)&""">"&Text&"</option>"&vbNewLine
  208. end if
  209.   case else
  210. exit do : Get_FildValue_List = "Get_Type值传入错误" : exit Function 
  211. end select
  212. This_Fun_Rs.movenext
  213. loop
  214. This_Fun_Rs.close
  215. Get_FildValue_List = Get_Html
  216. End Function 
  217. Sub OtherSet()
  218. Dim SetSql
  219. SetSql = NoSqlHack(trim(Decrypt(request.QueryString("SetSql"))))
  220. if SetSql<>"" then 
  221. SetSql = "Update FS_MF_DefineTable set "& SetSql &" where DefineID="&request.QueryString("DefineID")
  222. Conn.execute( SetSql )
  223. response.Redirect("DefineTable_Info_Manage.asp")
  224. end if
  225. End Sub
  226. Sub Del()
  227. if not MF_Check_Pop_TF("MF022") then Err_Show
  228. Dim Str_Tmp
  229. if request.QueryString("DefineID")<>"" then 
  230. Conn.execute("Delete from FS_MF_DefineTable where DefineID = "&request.QueryString("DefineID"))
  231. else
  232. Str_Tmp = request.form("DefineID")
  233. if Str_Tmp="" then response.Redirect("error.asp?ErrCodes=<li>你必须至少选择一个进行删除。</li>")
  234. Str_Tmp = replace(Str_Tmp," ","")
  235. Conn.execute("Delete from FS_MF_DefineTable where DefineID in ("&Str_Tmp&")")
  236. end if
  237. response.Redirect("Success.asp?ErrorUrl="&server.URLEncode( "DefineTable_Info_Manage.asp?Act=View" )&"&ErrCodes=<li>恭喜,删除成功。</li>")
  238. End Sub
  239. ''================================================================
  240. Sub Save()
  241. Dim Str_Tmp,Arr_Tmp,DefineID,int_Tmp_i,ClassID,New_ClassID,D_Value,ArrTmp1
  242. Str_Tmp = "D_Name,D_Coul,D_Type,D_isNull,D_Content,D_SubType"
  243. Arr_Tmp = split(Str_Tmp,",")
  244. DefineID = NoSqlHack(request.Form("DefineID"))
  245. if request.Form("frm_D_Name")="" or request.Form("frm_D_Coul")="" or request.Form("frm_D_Content")="" then 
  246. response.Redirect("error.asp?ErrCodes=<li>字段中文名,英文名和字段说明不能为空!!</li>") 
  247. response.End()
  248. end if
  249. for int_Tmp_i = 4 to 1 step -1
  250. New_ClassID = request.Form("vclass"&int_Tmp_i)
  251. if New_ClassID<>"" then exit for
  252. next
  253. if New_ClassID="[ChangeToTop]" then New_ClassID=0
  254. if New_ClassID<>"" then 
  255. ClassID = New_ClassID
  256. else
  257. ClassID = request.Form("frm_ClassID")
  258. end if
  259. if ClassID = "" then ClassID = 0
  260. if request.Form("frm_D_Type") = 4 then 
  261. D_Value = request.Form("frm_D_Value_1")
  262.   if D_Value="" then 
  263.    D_Value = "暂无"&vbcrlf&"默认值"
  264.   else
  265. if instr(D_Value,vbcrlf)=0 or len(D_Value)<4 then 
  266. response.Redirect("error.asp?ErrCodes=<li>当选择下拉时,必须至少有回车,并且字符必须4个以上。</li>") 
  267. response.End()
  268. else
  269. ArrTmp1 = split(D_Value,vbcrlf)
  270. for int_Tmp_i = lbound(ArrTmp1) to ubound(ArrTmp1)
  271. if isnull(ArrTmp1(int_Tmp_i)) or trim(ArrTmp1(int_Tmp_i)) = "" then 
  272. response.Redirect("error.asp?ErrCodes=<li>当选择下拉时,必须至少有回车,并且每一行的数据必须有效.</li><li>第"&int_Tmp_i+1&"行数据无效.因为仅有回车数据为空!</li>") 
  273. response.End()
  274. exit for 
  275. end if 
  276. next
  277. end if
  278.   end if
  279. elseif request.Form("frm_D_Type") = 5 then 
  280. D_Value = request.Form("frm_D_Value")
  281. if D_Value = "" then 
  282. D_Value = 0
  283. else
  284. if not isnumeric(D_Value) then 
  285. response.Redirect("error.asp?ErrCodes=<li>默认值必须是数字。</li>") 
  286. response.End()
  287. end if 
  288. end if
  289. elseif request.Form("frm_D_Type") = 6 then 
  290. D_Value = request.Form("frm_D_Value")
  291. if D_Value = "" then 
  292. D_Value = now()
  293. else
  294. if not isdate(D_Value) then 
  295. response.Redirect("error.asp?ErrCodes=<li>默认值必须是日期型。</li>") 
  296. response.End()
  297. end if 
  298. end if
  299. else
  300. D_Value = request.Form("frm_D_Value")
  301. end if
  302. if D_Value="" then D_Value  = "暂无"
  303. if not isnumeric(DefineID) or DefineID = "" then DefineID = 0 
  304. VClass_Sql = "select ClassID,D_Value,"&Str_Tmp&"  from FS_MF_DefineTable where DefineID="&DefineID
  305. Set NS_DefineTable_RS_obj = CreateObject(G_FS_RS)
  306. NS_DefineTable_RS_obj.Open VClass_Sql,Conn,3,3
  307. if DefineID > 0 then 
  308. ''修改
  309. NS_DefineTable_RS_obj("ClassID") = ClassID
  310. NS_DefineTable_RS_obj("D_Value") = D_Value
  311. for each Str_Tmp in Arr_Tmp
  312. NS_DefineTable_RS_obj(Str_Tmp) = NoSqlHack(request.Form("frm_"&Str_Tmp))
  313. next
  314. NS_DefineTable_RS_obj.update
  315. NS_DefineTable_RS_obj.close
  316. response.Redirect("Success.asp?ErrorUrl="&server.URLEncode( "DefineTable_Info_Manage.asp?Act=Edit&DefineID="&DefineID )&"&ErrCodes=<li>恭喜,修改成功。</li>")
  317. else
  318. ''新增
  319. if Conn.execute("select count(*) from FS_MF_DefineTable where ClassID="&ClassID&" and D_Coul = '"&NoSqlHack(request.Form("frm_D_Coul"))&"'  and D_SubType = '"&NoSqlHack(request.Form("frm_D_SubType"))&"'")(0)>0 then 
  320. response.Redirect("error.asp?ErrCodes=<li>自定义字段名(英文名)不能重复。</li>") 
  321. response.End()
  322. end if
  323. NS_DefineTable_RS_obj.addnew
  324. NS_DefineTable_RS_obj("ClassID") = ClassID
  325. if D_Value<>"" then NS_DefineTable_RS_obj("D_Value") = D_Value
  326. for each Str_Tmp in Arr_Tmp
  327. NS_DefineTable_RS_obj(Str_Tmp) = NoSqlHack(request.Form("frm_"&Str_Tmp))
  328. next
  329. NS_DefineTable_RS_obj.update
  330. NS_DefineTable_RS_obj.close
  331. response.Redirect("Success.asp?ErrorUrl="&server.URLEncode( "DefineTable_Info_Manage.asp?Act=Add&ClassID="&ClassID ) &"&ErrCodes=<li>恭喜,新增成功。</li>")
  332. end if
  333. End Sub
  334. ''=========================================================
  335. %>
  336. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  337. <html>
  338. <head>
  339. <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  340. <title>自定义字段管理___Powered by foosun Inc.</title>
  341. <link href="images/skin/Css_<%=Session("Admin_Style_Num")%>/<%=Session("Admin_Style_Num")%>.css" rel="stylesheet" type="text/css">
  342. </HEAD>
  343. <%if instr(",Edit,Add,Search,",","&request.QueryString("Act")&",")>0 then%>
  344. <script language="javascript" src="../FS_Inc/class_liandong.js" type="text/javascript"></script>
  345. <%end if%>
  346. <script language="JavaScript" src="../FS_Inc/PublicJS.js"></script>
  347. <script language="JavaScript" src="../FS_Inc/PublicJS_YanZheng.js" type="text/JavaScript"></script>
  348. <script language="JavaScript" type="text/JavaScript">
  349. <!--
  350. //点击标题排序
  351. /////////////////////////////////////////////////////////
  352. var Old_Sql = document.URL;
  353. function OrderByName(FildName)
  354. {
  355. var New_Sql='';
  356. var oldFildName="";
  357. if (Old_Sql.indexOf("&filterorderby=")==-1&&Old_Sql.indexOf("?filterorderby=")==-1)
  358. {
  359. if (Old_Sql.indexOf("=")>-1)
  360. New_Sql = Old_Sql+"&filterorderby=" + FildName + "csed";
  361. else
  362. New_Sql = Old_Sql+"?filterorderby=" + FildName + "csed";
  363. }
  364. else
  365. {
  366. var tmp_arr_ = Old_Sql.split('?')[1].split('&');
  367. for(var ii=0;ii<tmp_arr_.length;ii++)
  368. {
  369. if (tmp_arr_[ii].indexOf("filterorderby=")>-1)
  370. {
  371. oldFildName = tmp_arr_[ii].substring(tmp_arr_[ii].indexOf("filterorderby=") + "filterorderby=".length , tmp_arr_[ii].length);
  372. break;
  373. }
  374. }
  375. oldFildName.indexOf("csed")>-1?New_Sql = Old_Sql.replace('='+oldFildName,'='+FildName):New_Sql = Old_Sql.replace('='+oldFildName,'='+FildName+"csed");
  376. }
  377. //alert(New_Sql);
  378. location = New_Sql;
  379. }
  380. /////////////////////////////////////////////////////////
  381. function selectAll(f,NoSelName)
  382. {
  383. for(i=0;i<f.length;i++)
  384. {
  385. if(f(i).type=="checkbox" && f(i)!=event.srcElement && f(i).name!=NoSelName)
  386. {
  387. f(i).checked=event.srcElement.checked;
  388. }
  389. }
  390. }
  391. -->
  392. </script>
  393. <BODY LEFTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINHEIGHT=0 scroll=yes  oncontextmenu="return true;">
  394. <table width="98%" border="0" align="center" cellpadding="5" cellspacing="1" class="table">
  395.   <tr  class="hback"> 
  396.     <td class="xingmu" ><a href="#" onmouseover="this.T_BGCOLOR='#404040';this.T_FONTCOLOR='#FFFFFF';return escape('<div align='center'>FoosunCMS4.0<br> Code by 张文 <BR>Copyright (c) 2006 Foosun Inc</div>')" class="sd"><strong>自定义字段</strong></a></td>
  397.   </tr>
  398.   <tr  class="hback">
  399.     <td class="hback" ><a href="DefineTable_Info_Manage.asp?Act=View" >管理首页</a>&nbsp;|&nbsp;
  400.       <a href="DefineTable_Info_Manage.asp?Act=Add" >新增</a> &nbsp;|&nbsp;
  401.       <a href="DefineTable_Info_Manage.asp?Act=Search">查询</a> &nbsp;|&nbsp;
  402.   <select name="select_D_SubType" onChange='var jumpvalue = this.options[this.selectedIndex].value;location="DefineTable_Info_Manage.asp?Act=View&Add_Sql="+jumpvalue;'>
  403.   <option value="">查看</option>
  404.   <option value="">所有</option>
  405.   <option value="<%=server.URLEncode(Encrypt("D_SubType = 'NS'"))%>">新闻</option>
  406.   <option value="<%=server.URLEncode(Encrypt("D_SubType = 'MS'"))%>">商城</option>
  407.   </select> &nbsp;|&nbsp;
  408.       <a href="DefineTable_Manage.asp">字段分类管理</a></td>
  409.   </tr>
  410. </table>
  411. <%
  412. '******************************************************************
  413. select case request.QueryString("Act")
  414. case "","View","SearchGo"
  415. View
  416. case "Add","Edit"
  417. Add_Edit
  418. case "Save"
  419. Save
  420. case "Del"
  421. Del
  422. case "Search"
  423. Search
  424. case "OtherSet"
  425. OtherSet
  426. end select
  427. '******************************************************************
  428. Sub View()%>
  429. <table width="98%" border="0" align="center" cellpadding="3" cellspacing="1" class="table">
  430.   <form name="form1" id="form1" method="post" action="?Act=Del">
  431.     <tr  class="hback"> 
  432.       <td align="center" class="xingmu" ><a href="javascript:OrderByName('D_Name')" class="sd"><b>〖中文名称〗</b></a> <span id="Show_Oder_D_Name" class="tx"></span></td>
  433.       <td align="center" class="xingmu"><a href="javascript:OrderByName('D_Coul')" class="sd"><b>字段名称</b></a> <span id="Show_Oder_D_Coul" class="tx"></span></td>
  434.   <td align="center" class="xingmu"><a href="javascript:OrderByName('D_Type')" class="sd"><b>字段类型</b></a> <span id="Show_Oder_D_Type" class="tx"></span></td>
  435.       <td align="center" class="xingmu"><a href="javascript:OrderByName('D_isNull')" class="sd"><b>是否可空</b></a> <span id="Show_Oder_D_isNull" class="tx"></span></td>
  436.       <td align="center" class="xingmu"><a href="javascript:OrderByName('D_Value')" class="sd"><b>默认值</b></a> <span id="Show_Oder_D_Value" class="tx"></span></td>
  437.   <td align="center" class="xingmu">说明</td>
  438.       <td align="center" class="xingmu"><a href="javascript:OrderByName('D_SubType')" class="sd"><b>所属系统</b></a> <span id="Show_Oder_D_SubType" class="tx"></span></td>
  439.   <td align="center" class="xingmu"><a href="javascript:OrderByName('ClassID')" class="sd"><b>所属分类</b></a> <span id="Show_Oder_ClassID" class="tx"></span></td>
  440.       <td width="2%" align="center" class="xingmu"><input name="ischeck" type="checkbox" value="checkbox" onClick="selectAll(this.form,'Other_D_isNull')" /></td>
  441.     </tr>
  442.     <%
  443. response.Write( Get_While_Info( request.QueryString("Add_Sql"),request.QueryString("filterorderby") ) )
  444. %>
  445.   </form>
  446. </table>
  447. <%End Sub
  448. Sub Add_Edit()
  449. Dim DefineID,Bol_IsEdit,Edit_ClassID,D_Type
  450. Bol_IsEdit = false : Edit_ClassID =""
  451. if request.QueryString("Act")="Edit" then 
  452. if not MF_Check_Pop_TF("MF021") then Err_Show
  453. DefineID = request.QueryString("DefineID")
  454. if DefineID="" then response.Redirect("error.asp?ErrorUrl=&ErrCodes=<li>必要的DefineID没有提供</li>") : response.End()
  455. VClass_Sql = "select DefineID,ClassID,D_Name,D_Coul,D_Type,D_isNull,D_Value,D_Content,D_SubType from FS_MF_DefineTable where DefineID="&DefineID
  456. Set NS_DefineTable_RS_obj = CreateObject(G_FS_RS)
  457. NS_DefineTable_RS_obj.Open VClass_Sql,Conn,1,1
  458. if NS_DefineTable_RS_obj.eof then response.Redirect("error.asp?ErrorUrl=&ErrCodes=<li>没有相关的内容,或该内容已不存在.</li>") : response.End()
  459. Bol_IsEdit = True
  460. Edit_ClassID=NS_DefineTable_RS_obj(1)
  461. D_Type=NS_DefineTable_RS_obj(4)
  462. else
  463. if not MF_Check_Pop_TF("MF021") then Err_Show
  464. Edit_ClassID=request.QueryString("ClassID")
  465. D_Type=0
  466. end if
  467. %>
  468. <table width="98%" border="0" align="center" cellpadding="3" cellspacing="1" class="table">
  469.   <form name="form_Save" method="post" action="?Act=Save" onSubmit="return checkinput(this);">
  470.     <tr  class="hback"> 
  471.       <td colspan="3" align="left" class="xingmu" ><%if Bol_IsEdit then response.Write("修改自定义字段信息<input type=""hidden"" name=""DefineID"" value="""&NS_DefineTable_RS_obj(0)&""">") else response.Write("新增自定义字段信息") end if%></td>
  472. </tr>
  473.     <tr  class="hback"> 
  474.       <td align="right">属于哪个系统</td>
  475.       <td>   
  476.   <select name="frm_D_SubType" datatype="require" msg="属于哪个系统必须选择。">
  477.   <option value="NS"<%if Bol_IsEdit then if NS_DefineTable_RS_obj(8)="NS" then response.Write(" selected") end if end if%>>新闻</option>
  478.   <option value="MS"<%if Bol_IsEdit then if NS_DefineTable_RS_obj(8)="MS" then response.Write(" selected") end if end if%>>商城</option>
  479.   </select>
  480.   <span class="tx">将该字段应用于哪个子系统中。</span></td>
  481.     </tr>
  482.     <tr  class="hback"<%if Edit_ClassID="" then response.Write("style=display:none") end if%>> 
  483.       <td align="right">所属类别</td>
  484.       <td>
  485.    <%if Edit_ClassID<>"" then 
  486. response.Write( NS_Fun_ExecSql("select DefineName from FS_MF_DefineTableClass where DefineID = "&Edit_ClassID,"[未分类]") )%>
  487. <input type="hidden" name="frm_ClassID" id="frm_ClassID" value="<%=Edit_ClassID%>">
  488. <input type="hidden" name="frm_ClassName" id="frm_ClassName" value="<%=NS_Fun_ExecSql("select DefineName from FS_MF_DefineTableClass where DefineID = "&Edit_ClassID,"[未分类]")%>">
  489. <%end if%>
  490. <span class="tx">若需变更类别请在下列下拉框中进行选择。</span>
  491.   </td>
  492.     </tr>
  493. <tr class="hback"> 
  494.       <td align="right">选择类别</td>
  495.       <td width="596">
  496. <SELECT NAME="vclass1" ID="vclass1" style="width:100px" <%if request.QueryString("Act")="Add" then%> datatype="Require" msg="类别必须选择"<%end if%>>
  497.      <OPTION></OPTION>
  498.     </SELECT>
  499. <!--   
  500. <!---联动菜单开始--- >
  501. <SELECT NAME="vclass1" ID="vclass1" onBlur="javascript:RemoveChildopt(this,'vclass2,vclass3,vclass4');"  style="width:100px">
  502.          <OPTION></OPTION>
  503.     </SELECT>
  504. <SELECT NAME="vclass2" ID="vclass2" onBlur="javascript:RemoveChildopt(this,'vclass3,vclass4');" style="width:100px">
  505.          <OPTION></OPTION>
  506.     </SELECT>
  507. <SELECT NAME="vclass3" ID="vclass3" onBlur="javascript:RemoveChildopt(this,'vclass4');" style="width:100px">
  508.         <OPTION></OPTION>
  509.     </SELECT>
  510. <SELECT NAME="vclass4" ID="vclass4" style="width:100px">
  511.      <OPTION></OPTION>
  512.     </SELECT>
  513. <!---联动菜单结束--- > -->
  514.   <span class="tx" id="vclass_Alt"></span>
  515.       </td>
  516.     </tr>
  517.     <tr  class="hback"> 
  518.       <td align="right">字段中文名称</td>
  519.       <td>
  520.   <input type="text" name="frm_D_Name" size="40" value="<%if Bol_IsEdit then response.Write(NS_DefineTable_RS_obj(2)) end if%>" datatype="Require" msg="必须填写">
  521.   </td>
  522.     </tr>
  523.     <tr  class="hback"> 
  524.       <td align="right">字段名(英文名)</td>
  525.       <td>
  526.   <input type="text" name="frm_D_Coul" size="40" value="<%if Bol_IsEdit then response.Write(NS_DefineTable_RS_obj(3)) end if%>" onKeyUp="value=value.replace(/[^a-zA-Z0-9_-]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^a-zA-Z0-9_-]/g,''))"  datatype="Require" msg="必须填写">
  527.   </td>
  528.     </tr>
  529.     <tr  class="hback"> 
  530.       <td align="right">字段类型</td>
  531.       <td>
  532. <select name="frm_D_Type" onChange="javascript:ChangeDefValueAreaType();">
  533. <%=PrintOption(D_Type,"0:单行文本,1:多行文本,4:下拉列表,5:数字类型,6:日期类型")%>
  534. </select>
  535.       </td>
  536.     </tr>
  537.     <tr  class="hback"> 
  538.       <td align="right">是否允许为空</td>
  539.       <td>
  540. <input name="frm_D_isNull" type="checkbox" value="1"<%if Bol_IsEdit then if NS_DefineTable_RS_obj(5)=1 then response.Write("  checked") end if else response.Write("  checked") end if%>>
  541.   </td>
  542.     </tr>
  543.     <tr  class="hback"> 
  544.       <td align="right">字段默认值</td>
  545.       <td id="td_D_Value_Def" style="display:''">   
  546.   <input type="text" name="frm_D_Value" size="40" value="<%if Bol_IsEdit then response.Write(NS_DefineTable_RS_obj("D_Value")) end if%>">
  547.   <input type="button" name="bnt_ChoosePic_rowBettween"  value="选择文件..." onClick="SelectFile();">
  548.      </td>
  549.       <td id="td_D_Value_1" style="display:'none'">   
  550.     <textarea name="frm_D_Value_1" rows="10" cols="40"><%if Bol_IsEdit then response.Write(NS_DefineTable_RS_obj("D_Value")) end if%></textarea>
  551.       <input type="button" name="bnt_ChoosePic_rowBettween"  value="选择文件..." onClick="SelectFile();">
  552.  </td> 
  553.     </tr>
  554.     <tr  class="hback"> 
  555.       <td align="right">字段名说明</td>
  556.       <td>
  557.   <textarea name="frm_D_Content" cols="40" datatype="LimitB" require="true" min="1" max="200" msg="必须在[1-200]个字节内。"><%if Bol_IsEdit then response.Write(NS_DefineTable_RS_obj(7)) end if%></textarea>
  558.   <span class="tx">字段名说明(使用规则说明)</span></td>
  559.     </tr>
  560.     <tr  class="hback"> 
  561.       <td colspan="4">
  562.   <table border="0" width="100%" cellpadding="0" cellspacing="0">
  563.           <tr> 
  564.             <td align="center"> <input type="submit" name="submit" value=" 保存 "> 
  565.               &nbsp; <input type="reset" name="ReSet" id="ReSet" value=" 重置 ">
  566.               &nbsp; <input type="button" name="btn_todel" value=" 删除 " onClick="if(confirm('确定删除该项目吗?')) location = '<%=server.URLEncode("DefineTable_Info_Manage.asp?Act=Del&DefineID="&NosqlHack(request.QueryString("DefineID")))%>'">
  567. </td>
  568.           </tr>
  569.         </table>
  570.       </td>
  571.     </tr>
  572.   </form>
  573. </table>
  574. <%End Sub
  575. Sub Search()
  576. %>
  577. <table width="98%" border="0" align="center" cellpadding="3" cellspacing="1" class="table">
  578.   <form name="form1" method="post" action="?Act=SearchGo">
  579.     <tr  class="hback"> 
  580.       <td colspan="3" align="left" class="xingmu" >自定义字段信息查询</td>
  581.     </tr>
  582.     <tr  class="hback"> 
  583.       <td align="right">ID号</td>
  584.       <td> <input type="text" name="frm_DefineID" size="40" value=""> 
  585.       </td>
  586.     </tr>
  587.     <tr  class="hback"> 
  588.       <td align="right">属于哪个系统</td>
  589.       <td>   
  590.   <select name="frm_D_SubType">
  591.   <option value="">所有</option>
  592.   <option value="NS">新闻</option>
  593.   <option value="MS">商城</option>
  594.   </select>
  595.   <span class="tx">将该字段应用于哪个子系统中。</span></td>
  596.     </tr>
  597.     <tr class="hback"> 
  598.       <td align="right">选择类别</td>
  599.       <td width="596"> 
  600. <SELECT NAME="vclass1" ID="vclass1" style="width:100px">
  601.      <OPTION></OPTION>
  602.     </SELECT>
  603. <!--   
  604. <!---联动菜单开始--- >
  605. <SELECT NAME="vclass1" ID="vclass1" onBlur="javascript:RemoveChildopt(this,'vclass2,vclass3,vclass4');"  style="width:100px">
  606.          <OPTION></OPTION>
  607.     </SELECT>
  608. <SELECT NAME="vclass2" ID="vclass2" onBlur="javascript:RemoveChildopt(this,'vclass3,vclass4');" style="width:100px">
  609.          <OPTION></OPTION>
  610.     </SELECT>
  611. <SELECT NAME="vclass3" ID="vclass3" onBlur="javascript:RemoveChildopt(this,'vclass4');" style="width:100px">
  612.         <OPTION></OPTION>
  613.     </SELECT>
  614. <SELECT NAME="vclass4" ID="vclass4" style="width:100px">
  615.      <OPTION></OPTION>
  616.     </SELECT>
  617. <!---联动菜单结束--- > -->
  618.         </td>
  619.     </tr>
  620.     <tr  class="hback"> 
  621.       <td align="right">字段中文名称</td>
  622.       <td> <input type="text" name="frm_D_Name" size="40" value=""> 
  623.       </td>
  624.     </tr>
  625.     <tr  class="hback"> 
  626.       <td align="right">字段名(英文名)</td>
  627.       <td> <input type="text" name="frm_D_Coul" size="40" value=""> 
  628.       </td>
  629.     </tr>
  630.     <tr  class="hback"> 
  631.       <td align="right">字段类型</td>
  632.       <td> <select name="frm_D_Type" onChange="javascript:ChangeDefValueAreaType();">
  633.       <option value="">请选择</option>
  634.           <option value="0">单行文本</option>
  635.           <option value="1">多行文本</option>
  636.           <option value="4">下拉列表</option>
  637.           <option value="5">数字类型</option>
  638.           <option value="6">日期</option>
  639.         </select> </td>
  640.     </tr>
  641.     <tr  class="hback"> 
  642.       <td align="right">是否允许为空</td>
  643.       <td> <input name="frm_D_isNull" type="checkbox" value="1"> </td>
  644.     </tr>
  645.     <tr  class="hback"> 
  646.       <td align="right">字段默认值</td>
  647.       <td id="td_D_Value_Def" style="display:''">   
  648.   <input type="text" name="frm_D_Value" size="40" value="">
  649.      </td>
  650.       <td id="td_D_Value_1" style="display:'none'">   
  651.     <textarea name="frm_D_Value_1" rows="10" cols="40"></textarea>
  652.      </td> 
  653.     </tr>
  654.     <tr  class="hback"> 
  655.       <td align="right">字段名说明</td>
  656.       <td> <textarea name="frm_D_Content" cols="40"></textarea> 
  657.         <span class="tx">限制为200个字符</span> </td>
  658.     </tr>
  659.     <tr  class="hback"> 
  660.       <td colspan="4"> <table border="0" width="100%" cellpadding="0" cellspacing="0">
  661.           <tr> 
  662.             <td align="center"> <input type="submit" name="submit" value=" 执行查询 " /> 
  663.               &nbsp; <input type="reset" name="ReSet" value=" 重置 " /> 
  664.             </td>
  665.           </tr>
  666.         </table></td>
  667.     </tr>
  668.   </form>
  669. </table>
  670. <%End Sub%>
  671. </body>
  672. <script language="JavaScript">
  673. <!--//判断后将排序完善.字段名后面显示指示
  674. //打开后根据规则显示箭头
  675. var Req_FildName;
  676. if (Old_Sql.indexOf("filterorderby=")>-1)
  677. {
  678. var tmp_arr_ = Old_Sql.split('?')[1].split('&');
  679. for(var ii=0;ii<tmp_arr_.length;ii++)
  680. {
  681. if (tmp_arr_[ii].indexOf("filterorderby=")>-1)
  682. {
  683. if(Old_Sql.indexOf("csed")>-1)
  684. {Req_FildName = tmp_arr_[ii].substring(tmp_arr_[ii].indexOf("filterorderby=") + "filterorderby=".length , tmp_arr_[ii].indexOf("csed"));break;}
  685. else
  686. {Req_FildName = tmp_arr_[ii].substring(tmp_arr_[ii].indexOf("filterorderby=") + "filterorderby=".length , tmp_arr_[ii].length);break;}
  687. }
  688. }
  689. if (document.getElementById('Show_Oder_'+Req_FildName)!=null)  
  690. {
  691. if(Old_Sql.indexOf(Req_FildName + "csed")>-1)
  692. {
  693. eval('Show_Oder_'+Req_FildName).innerText = '↓';
  694. }
  695. else
  696. {
  697. eval('Show_Oder_'+Req_FildName).innerText = '↑';
  698. }
  699. }
  700. }
  701. ///////////////////////////////////////////////////////// 
  702. function ChangeDefValueAreaType()
  703. {
  704. //耕具选择的值改变默认值的输入域
  705. if(document.all.frm_D_Type.value=='4')
  706. {
  707. td_D_Value_Def.style.display='none';
  708. td_D_Value_1.style.display='';
  709. }
  710. else
  711. {
  712. td_D_Value_Def.style.display='';
  713. td_D_Value_1.style.display='none';
  714. }
  715. if(document.all.frm_D_Type.value=='5')
  716. { //数字
  717. document.all.frm_D_Value.require="false";
  718. document.all.frm_D_Value.dataType="Range";
  719. document.all.frm_D_Value.min="-32760";
  720. document.all.frm_D_Value.max="32760";
  721. document.all.frm_D_Value.msg="数字必须在-32760~32760之间。";
  722. }
  723. if(document.all.frm_D_Type.value=='6')
  724. { //数字
  725. document.all.frm_D_Value.require="false";
  726. document.all.frm_D_Value.dataType="Date";
  727. document.all.frm_D_Value.format="ymd";
  728. document.all.frm_D_Value.msg="日期格式不正确。";
  729. }
  730. if(document.all.frm_D_Type.value=='0' || document.all.frm_D_Type.value=='1')
  731. {
  732. document.all.frm_D_Value.require="false";
  733. document.all.frm_D_Value.dataType="Require";
  734. document.all.frm_D_Value.msg="";
  735. }
  736. }
  737. function checkinput(obj)
  738. {
  739. if (Validator.Validate(obj,3) == true)
  740. {
  741. if (obj.frm_D_Type.value=='4')
  742. ///多行文本或下拉菜单,需要一行一个项目,回车换行。
  743. {
  744. var txt=obj.frm_D_Value_1.value;
  745. if  (txt=='') return true;
  746. if (!controlrow(txt))
  747. {
  748. alert('当选择多行,下拉时,默认值必须填写,并且一行一个记录.回车换行。n可能你输入的没有回车符号,或超过50行.或字符太短.');
  749. obj.frm_D_Value_1.focus();
  750. return false;
  751. }
  752. }
  753. }
  754. else
  755. return Validator.Validate(obj,3);
  756. }
  757. function controlrow(txt)   
  758. {
  759.   var count=0;   
  760.   var index=txt.indexOf("r");   
  761.   while(index!=-1)   
  762.   {          
  763.   count++; 
  764.   index=txt.indexOf("r",index+1);   
  765.   }   
  766.   if(count<1 || txt.length<4 || count>50)   
  767.   return false;
  768.   else
  769.      return true;   
  770. }   
  771. function SelectFile()     
  772. {
  773. //
  774.  var returnvalue = OpenWindow('CommPages/SelectManageDir/SelectPic.asp?CurrPath=<%=str_CurrPath %>',500,300,window);
  775.  if (returnvalue!='')
  776.  {
  777.   var obj=event.srcElement.parentNode.firstChild;
  778. (obj.name.indexOf('_1')>-1)?obj.value+=returnvalue:obj.value=returnvalue;
  779.  }
  780. }
  781. -->
  782. </script>
  783. <%if instr(",Edit,Add,Search,",","&request.QueryString("Act")&",")>0 then%>
  784. <script language="javascript">
  785. <!-- 
  786. ChangeDefValueAreaType();
  787. //awen created
  788. //联动菜单---自定义字段类别   最多4级   --start 
  789. //数据格式 ID,父级ID,名称
  790. var array=new Array();
  791. <%dim NS_JS_Sql,NS_JS_RS,NS_JS_i
  792.   if request.QueryString("ClassID")<>"" then 
  793.    NS_JS_Sql="select DefineID,ParentID,DefineName from FS_MF_DefineTableClass where DefineID<>"&request.QueryString("ClassID")
  794.   else
  795.     NS_JS_Sql="select DefineID,ParentID,DefineName from FS_MF_DefineTableClass "
  796.   end if
  797.   set NS_JS_RS=Conn.execute(NS_JS_Sql)
  798.   NS_JS_i=0
  799.   do while not NS_JS_RS.eof
  800. %>
  801. array[<%=NS_JS_i%>]=new Array("<%=NS_JS_RS("DefineID")%>","<%=NS_JS_RS("ParentID")%>","<%=NS_JS_RS("DefineName")%>"); 
  802. <%
  803. NS_JS_RS.movenext
  804. NS_JS_i=NS_JS_i+1
  805. loop
  806. NS_JS_RS.close
  807. %>
  808. var liandong=new CLASS_LIANDONG_YAO(array)
  809. liandong.firstSelectChange("0","vclass1");
  810. liandong.close
  811. document.getElementById('vclass1').options.remove(1);
  812. /*
  813. liandong.subSelectChange("vclass1","vclass2");
  814. liandong.subSelectChange("vclass2","vclass3");
  815. liandong.subSelectChange("vclass3","vclass4");
  816. //---------------------------清除关联下拉框的内容
  817. function RemoveChildopt(obj,StrList)
  818. {
  819. var TmpArr = StrList.split(',');
  820. if(obj.selectedIndex<2)
  821. {
  822. for (var i=TmpArr.length-1 ; i>=0; i--)
  823. {
  824. //alert(TmpArr[i]);
  825. if (TmpArr[i]!='') 
  826. //清除下拉内容
  827. for (var j=document.getElementById(TmpArr[i]).options.length-1 ; j>=0 ; j--)
  828. document.getElementById(TmpArr[i]).options.remove(j);
  829. }
  830. }
  831. */
  832. //end 
  833. -->
  834. </script>
  835. <%end if%>
  836. <%
  837. Set NS_DefineTable_RS_obj=nothing
  838. Conn.close
  839. Set Conn=nothing
  840. %>
  841. </html>