FileSearch.aspx.cs
上传用户:autodoor
上传日期:2022-08-04
资源大小:9973k
文件大小:14k
源码类别:

.net编程

开发平台:

Others

  1. using System;
  2. using System.Collections;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Web;
  7. using System.Web.SessionState;
  8. using System.Web.UI;
  9. using System.Web.UI.WebControls;
  10. using System.Web.UI.HtmlControls;
  11. using qminoa.Common; 
  12. using qminoa.DA; 
  13. namespace qminoa.Webs.FM
  14. {
  15. public class FileSearch : qminoa.Webs.PageBase
  16. {
  17. protected System.Web.UI.WebControls.Label lblID;
  18. protected System.Web.UI.WebControls.Label lblFID;
  19. protected System.Web.UI.WebControls.Label lblBID;
  20. protected string column;
  21. protected System.Web.UI.WebControls.Label lblErr;
  22. protected System.Web.UI.WebControls.Label lblObjNum;
  23. protected System.Web.UI.WebControls.DataGrid dgdFolder;
  24. protected System.Web.UI.WebControls.DropDownList dropType;
  25. protected System.Web.UI.WebControls.CheckBox chkType;
  26. protected System.Web.UI.WebControls.DropDownList dropDate;
  27. protected System.Web.UI.WebControls.Label Label11;
  28. protected System.Web.UI.WebControls.RadioButton rdoBetween;
  29. protected System.Web.UI.WebControls.TextBox txtDay;
  30. protected System.Web.UI.WebControls.TextBox txtMonth;
  31. protected System.Web.UI.WebControls.TextBox txtMinDate;
  32. protected System.Web.UI.WebControls.TextBox txtMaxDate;
  33. protected System.Web.UI.WebControls.RadioButton rdoDay;
  34. protected System.Web.UI.WebControls.Label lblMaxDate;
  35. protected System.Web.UI.WebControls.Label Label12;
  36. protected System.Web.UI.WebControls.RadioButton rdoMonth;
  37. protected System.Web.UI.WebControls.CheckBox chkDate;
  38. protected System.Web.UI.WebControls.Label Label5;
  39. protected System.Web.UI.WebControls.TextBox txtContent;
  40. protected System.Web.UI.WebControls.Label Label3;
  41. protected System.Web.UI.WebControls.Label Label4;
  42. protected System.Web.UI.WebControls.TextBox txtOwner;
  43. protected System.Web.UI.WebControls.LinkButton cmdOption;
  44. protected System.Web.UI.WebControls.ImageButton cmdExit;
  45. protected System.Web.UI.WebControls.Label Label2;
  46. protected System.Web.UI.WebControls.ImageButton imgSearch;
  47. protected System.Web.UI.WebControls.TextBox txtFileFolder;
  48. protected System.Web.UI.WebControls.TextBox txtKeyword;
  49. protected System.Web.UI.WebControls.Label Label1;
  50. protected System.Web.UI.WebControls.ImageButton cmdCloseSeach;
  51. protected System.Web.UI.WebControls.ImageButton cmdClose;
  52. protected System.Web.UI.WebControls.Image Image1;
  53. protected System.Web.UI.HtmlControls.HtmlGenericControl div1;
  54. protected System.Web.UI.HtmlControls.HtmlGenericControl divDate;
  55. protected System.Web.UI.HtmlControls.HtmlGenericControl divType;
  56. protected string key;
  57. private void Page_Load(object sender, System.EventArgs e)
  58. {
  59. if(!this.IsPostBack)
  60. {
  61. this.PageBegin("项目管理",true);
  62. FillAllTypes();
  63. }
  64.          }
  65. #region Web Form Designer generated code
  66. override protected void OnInit(EventArgs e)
  67. {
  68. //
  69. // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
  70. //
  71. InitializeComponent();
  72. base.OnInit(e);
  73. }
  74. /// <summary>
  75. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  76. /// 此方法的内容。
  77. /// </summary>
  78. private void InitializeComponent()
  79. {    
  80. this.imgSearch.Click += new System.Web.UI.ImageClickEventHandler(this.imgSearch_Click);
  81. this.cmdOption.Click += new System.EventHandler(this.cmdOption_Click);
  82. this.chkDate.CheckedChanged += new System.EventHandler(this.chkDate_CheckedChanged);
  83. this.rdoMonth.CheckedChanged += new System.EventHandler(this.rdoMonth_CheckedChanged);
  84. this.rdoDay.CheckedChanged += new System.EventHandler(this.rdoDay_CheckedChanged);
  85. this.rdoBetween.CheckedChanged += new System.EventHandler(this.rdoBetween_CheckedChanged);
  86. this.chkType.CheckedChanged += new System.EventHandler(this.chkType_CheckedChanged);
  87. this.Load += new System.EventHandler(this.Page_Load);
  88. }
  89. #endregion
  90. private void imgSearch_Click(object sender, System.Web.UI.ImageClickEventArgs e)
  91. {
  92.             DataView dv;
  93. DataView dvresult;
  94. if(chkDate.Checked==true||chkType.Checked==true)
  95. {
  96. if(chkDate.Checked==false)
  97. {
  98. dv = GetAllDoc();
  99. dvresult=TypeSearch(dv);
  100. }
  101. else if(chkType.Checked==false)
  102. {
  103. dv=Search_Date();
  104. dvresult=BindTable(dv).DefaultView;
  105. }
  106. else
  107. {
  108. dv=Search_Date();
  109. dvresult=TypeSearch(dv);
  110. }
  111. }
  112. else
  113. {
  114. dvresult=SearchWithOutCondition();
  115. if(dvresult.Count==0)
  116. {
  117. Response.Write("<script language='javascript'>alert('没有搜索到!');</script>"); 
  118. }
  119. }
  120. dgdFolder.DataSource=dvresult;
  121. dgdFolder.DataBind();
  122. }
  123. public DataView SearchWithOutCondition()
  124. {
  125. string foldername=txtFileFolder.Text.ToString();
  126. string keyword=txtKeyword.Text.ToString();  
  127. string Content=txtContent.Text.ToString();  
  128. string Owner=txtOwner.Text.ToString();  
  129. if(txtFileFolder.Text==string.Empty)
  130. {
  131. foldername="%";
  132. }
  133. if(txtContent.Text==string.Empty)
  134. {
  135. Content="%";
  136. }
  137. if(txtKeyword.Text==string.Empty)
  138. {
  139. keyword="%";
  140. }
  141. if(txtOwner.Text==string.Empty)
  142. {
  143.     Owner="%";
  144. }
  145. FileData data= (new FileA()).SearchForDoc(foldername,keyword,Content,Owner); 
  146. DataView dv=data.Tables[FileData.FMDOCFOLDER_TABLE].DefaultView;
  147. DataView dvdata=BindTable(dv).DefaultView;
  148. return dvdata;
  149. }
  150. private void BindTodgd(DataView dv)
  151. {  
  152. DataView dvdata=BindTable(dv).DefaultView;
  153. dgdFolder.DataSource=dvdata;
  154. dgdFolder.DataBind();
  155. }
  156. public DataView DateSearch(int opt,string SearchType)
  157. {
  158. FileData filedata =(new FileA()).LoadDocFolder(0); 
  159. DataView dv=filedata.Tables[FileData.FMDOCFOLDER_TABLE].DefaultView; 
  160.             
  161. TimeSpan timespan;
  162. DateTime date;
  163. if(SearchType=="创建的文件")
  164. {
  165. switch(opt)
  166. {
  167. case 1:
  168. int day=Convert.ToInt32(txtDay.Text,10); 
  169. try
  170. {
  171. timespan = new TimeSpan(day,0,0,0);
  172. date=DateTime.Now.Subtract(timespan); 
  173. dv.RowFilter="CDate >='"+date+"'";
  174. }
  175. catch
  176. {
  177.     Response.Write("<script language='javascript'>alert('不支持如此大的数字!');</script>"); 
  178. }
  179. break;
  180.                     case 2:
  181. int month=Convert.ToInt32(txtMonth.Text,10);
  182. try
  183. {
  184. timespan = new TimeSpan(30*month,0,0,0); 
  185. date=DateTime.Now.Subtract(timespan); 
  186. dv.RowFilter="CDate >='"+date+"'";
  187. }
  188. catch
  189. {
  190.     Response.Write("<script language='javascript'>alert('不支持如此大的数字!');</script>"); 
  191. }
  192. break;
  193. case 3:
  194. if(txtMaxDate.Text==string.Empty||txtMinDate.Text==string.Empty)
  195. {
  196. Response.Write("<script language='javascript'>alert('日期没有填写完全!');</script>"); 
  197.     dv.RowFilter="CDate>'"+DateTime.Today+"'";  
  198. }
  199. else
  200. {
  201. try
  202. {
  203. DateTime Max=Convert.ToDateTime(txtMaxDate.Text);
  204. DateTime Min=Convert.ToDateTime(txtMinDate.Text);
  205. dv.RowFilter="CDate <= '"+Max+"' and CDate>='"+Min+"'"; 
  206. }
  207. catch
  208. {
  209. Response.Write("<script language='javascript'>alert('日期请写成####-##-##年月日的格式!');</script>"); 
  210.     dv.RowFilter="CDate>'"+DateTime.Today+"'"; 
  211. }
  212. }
  213. break;
  214. }
  215. return dv;
  216. }
  217. else
  218. {
  219. DataTable dt=null;
  220. switch(opt)
  221. {
  222. case 1:
  223. int day=Convert.ToInt32(txtDay.Text,10); 
  224. timespan = new TimeSpan(day,0,0,0);
  225. date=DateTime.Now.Subtract(timespan); 
  226.     dv.RowFilter="CDate >='"+date+"'";
  227.                         dt=GetIsUpdatedDoc(dv);
  228. break;
  229. case 2:
  230. int month=Convert.ToInt32(txtMonth.Text,10);
  231. timespan = new TimeSpan(30*month,0,0,0); 
  232.     date=DateTime.Now.Subtract(timespan); 
  233. dv.RowFilter="CDate >='"+date+"'";
  234. dt=GetIsUpdatedDoc(dv);  
  235. break;
  236.     case 3:
  237. if(txtMaxDate.Text==string.Empty||txtMinDate.Text==string.Empty)
  238. {
  239. Response.Write("<script language='javascript'>alert('日期没有填写完全!');</script>"); 
  240.     dv.RowFilter="CDate>'"+DateTime.Today+"'";  
  241. }
  242. else
  243. try
  244. {
  245. DateTime Max=Convert.ToDateTime(txtMaxDate.Text);
  246. DateTime Min=Convert.ToDateTime(txtMinDate.Text);
  247. dv.RowFilter="CDate <= '"+Max+"' and CDate>='"+Min+"'"; 
  248. dt=GetIsUpdatedDoc(dv);
  249. }
  250. catch
  251. {
  252. Response.Write("<script language='javascript'>alert('日期请写成####-##-##年月日的格式!');</script>"); 
  253. dv.RowFilter="CDate>'"+DateTime.Today+"'"; 
  254. }
  255. }
  256. break;
  257. }
  258.                 DataView _dv=dt.DefaultView; 
  259. return _dv;
  260.            }
  261. }
  262. private DataTable GetIsUpdatedDoc(DataView dv)
  263. {
  264.     int count=dv.Count; 
  265. DataTable dt=(new FileData()).Tables[FileData.FMDOCFOLDER_TABLE]; 
  266. for(int i=0;i<count;i++)
  267. {
  268. if(dv[i].Row[8].ToString()!=string.Empty)
  269. {
  270.         DataRow row=dt.NewRow();       
  271.     row[0]=Convert.ToInt32(dv[i].Row[0].ToString(),10);  
  272. row[1]=Convert.ToInt32(dv[i].Row[1].ToString(),10);
  273.     row[3]=dv[i].Row[3].ToString();
  274.     row[4]=Convert.ToInt32(dv[i].Row[4].ToString(),10);
  275.     row[5]=dv[i].Row[5].ToString();
  276. row[7]=Convert.ToDateTime(dv[i].Row[7].ToString());
  277. row[8]=Convert.ToDateTime(dv[i].Row[8].ToString());
  278. row[9]=Convert.ToInt32(dv[i].Row[9].ToString(),10);
  279. row[13]=dv[i].Row[13].ToString();
  280. row[14]=dv[i].Row[14].ToString(); 
  281.                     dt.Rows.Add(row);  
  282. }
  283.     }
  284.             return dt;
  285. }
  286. private DataView TypeSearch(DataView dv)
  287. {
  288.  DataTable dtSearch=BindTable(dv);
  289.              DataView dvSearch=dtSearch.DefaultView; 
  290.      dvSearch.RowFilter="type='"+dropType.SelectedItem.Text+"'";    
  291.          return dvSearch;
  292. }
  293. private DataView  GetAllDoc()
  294. {
  295. FileData filedata =(new FileA()).LoadDocFolder(0);       
  296.             DataView dv=filedata.Tables[FileData.FMDOCFOLDER_TABLE].DefaultView;
  297. return dv;
  298. }
  299. private void cmdOption_Click(object sender, System.EventArgs e)
  300. {
  301. chkDate.Visible=true;
  302. chkType.Visible=true;
  303.         }
  304. private void chkDate_CheckedChanged(object sender, System.EventArgs e)
  305. {
  306. divDate.Visible =!divDate.Visible;
  307. }
  308. private void chkType_CheckedChanged(object sender, System.EventArgs e)
  309. {
  310. divType.Visible =!divType.Visible; 
  311. }
  312. public  void FillAllTypes()
  313. {
  314.             FileData filedata = (new FileA()).GetAllTypes();
  315. dropType.DataSource=filedata.Tables[FileData.FMFILEATT_TABLE].DefaultView;
  316. dropType.DataValueField=filedata.Tables[FileData.FMFILEATT_TABLE].Columns[FileData.ID_FIELD4].ToString();
  317. dropType.DataTextField=filedata.Tables[FileData.FMFILEATT_TABLE].Columns[FileData.TYPENAME_FIELD4].ToString();
  318. dropType.DataBind();
  319. }
  320.         private void rdoMonth_CheckedChanged(object sender, System.EventArgs e)
  321. {
  322. if(rdoMonth.Checked==true)
  323. {
  324. txtMonth.Enabled=true;
  325. txtDay.Enabled =false;
  326. txtMaxDate.Enabled=false; 
  327. txtMinDate.Enabled=false; 
  328. }
  329. }
  330. private void rdoDay_CheckedChanged(object sender, System.EventArgs e)
  331. {
  332. if(rdoDay.Checked==true)
  333. {
  334. txtDay.Enabled=true;
  335. txtMonth.Enabled=false; 
  336. txtMaxDate.Enabled=false; 
  337. txtMinDate.Enabled=false; 
  338. }  
  339. }
  340. private void rdoBetween_CheckedChanged(object sender, System.EventArgs e)
  341. {
  342. if(rdoBetween.Checked==true)
  343. {
  344. txtMaxDate.Enabled=true; 
  345. txtMinDate.Enabled=true; 
  346. txtDay.Enabled=false;
  347. txtMonth.Enabled=false; 
  348. }  
  349. }
  350. public DataTable BindTable(DataView dv)
  351. {
  352. DataTable dtSearch = new DataTable("Search");  
  353. DataColumnCollection d= dtSearch.Columns; 
  354. d.Add("folderid",typeof(System.Int32)); 
  355. d.Add("hifolderid", typeof(System.Int32));
  356. d.Add("name",typeof(System.String)); 
  357. d.Add("path",typeof(System.String));
  358. d.Add("type",typeof(System.String)); 
  359. d.Add("empid",typeof(System.String));
  360. d.Add("Cdate",typeof(System.String));
  361. int recordcount = dv.Count;
  362. for(int i=0;i<recordcount;i++)
  363. {
  364. DataRow row = dtSearch.NewRow();
  365. row["folderid"]=Convert.ToInt32(dv[i].Row[1].ToString(),10);
  366. row["hifolderid"] =Convert.ToInt32(dv[i].Row[0].ToString(),10);
  367. row["name"]=dv[i].Row[14].ToString()+dv[i].Row[3].ToString();
  368. int fid=Convert.ToInt32(dv[i].Row[0].ToString(),10);
  369. row["path"]=GetPath(fid);
  370. DateTime time=Convert.ToDateTime(dv[i].Row[7].ToString());
  371. row["Cdate"]=time.Year+"-"+time.Month+"-"+time.Day;
  372. row["empid"]=(new FileA()).GetEmpName(Convert.ToInt32(dv[i].Row[9].ToString()));
  373. row["type"]=dv[i].Row[13].ToString();
  374. dtSearch.Rows.Add(row);
  375. }
  376. return dtSearch;
  377. }
  378. private string GetPath(int fid)
  379. {    
  380. FileA fa= new FileA();
  381. string fpath=fa.GetDocPath(fid); 
  382. return fpath;
  383. }
  384. public DataView Search_Date()
  385. {
  386. DataView dv;
  387. if(rdoDay.Checked==true)
  388. {
  389. dv=DateSearch(1,dropDate.SelectedItem.Text);
  390. }
  391. else if(rdoMonth.Checked==true)
  392. {
  393. dv=DateSearch(2,dropDate.SelectedItem.Text);
  394. }
  395. else
  396. {
  397.  dv=DateSearch(3,dropDate.SelectedItem.Text);
  398. }
  399. return dv;
  400. }
  401. private void dgdFolder_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
  402. {
  403. ListItemType itemType = e.Item.ItemType;
  404. e.Item.Attributes["onmouseover"] = "javascript:this.style.backgroundColor='#fff7ce';cursor='hand';" ;
  405. if (itemType == ListItemType.Item )
  406. {
  407. e.Item.Attributes["onmouseout"] = "javascript:this.style.backgroundColor='#dedfde';";
  408. }
  409. else if( itemType == ListItemType.AlternatingItem)
  410. {
  411. e.Item.Attributes["onmouseout"] = "javascript:this.style.backgroundColor='#ffffff';";
  412. }
  413. }
  414. }
  415. }