ClientInfo.aspx.cs
上传用户:xgw_05
上传日期:2009-12-11
资源大小:20208k
文件大小:19k
源码类别:

OA系统

开发平台:

C#

  1. using System;
  2. using System.Collections;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Data.SqlClient;
  6. using System.Drawing;
  7. using System.Web;
  8. using System.Web.SessionState;
  9. using System.Web.UI;
  10. using System.Web.UI.WebControls;
  11. using System.Web.UI.HtmlControls;
  12. namespace UDS.SubModule.CM.Stat
  13. {
  14. /// <summary>
  15. /// ClientInfo 的摘要说明。
  16. /// </summary>
  17. public class ClientInfo : System.Web.UI.Page
  18. {
  19. protected System.Web.UI.WebControls.DropDownList ddl_search;
  20. protected System.Web.UI.WebControls.RadioButtonList rbl_searchvalue;
  21. protected System.Web.UI.WebControls.Button btn_Del;
  22. protected System.Web.UI.WebControls.Button btn_addsearch;
  23. protected System.Web.UI.WebControls.Button btn_OK;
  24. protected System.Web.UI.WebControls.ListBox lbx_search;
  25. protected System.Web.UI.WebControls.Literal ltl_Client;
  26. protected System.Web.UI.WebControls.DataGrid dgrd_clientlist;
  27. protected System.Web.UI.WebControls.DropDownList ddl_SearchBound;
  28. protected System.Web.UI.WebControls.TextBox tbx_searchvalue;
  29. private string searchstring = "";
  30. //存放页眉文字
  31. private string[] headtext;
  32. private void Page_Load(object sender, System.EventArgs e)
  33. {
  34. ltl_Client.Text = "0";
  35. if(!Page.IsPostBack)
  36. {
  37. headtext = new String[dgrd_clientlist.Columns.Count];
  38. for(int i=0;i<dgrd_clientlist.Columns.Count;i++)
  39. {
  40. headtext[i] = dgrd_clientlist.Columns[i].HeaderText;
  41. }
  42. ViewState["headtext"] = headtext;
  43. ViewState["searchstring"] = "";
  44. ViewState["SortField"] = "ID";
  45. ViewState["SortDirect"] = "ASC";
  46. }
  47. else
  48. {
  49. //把页眉复位
  50. headtext = (string[]) ViewState["headtext"];
  51. for(int i=0;i<dgrd_clientlist.Columns.Count;i++)
  52. {
  53. dgrd_clientlist.Columns[i].HeaderText = headtext[i];
  54. }
  55. searchstring = ViewState["searchstring"].ToString();
  56. }
  57. }
  58. #region Web Form Designer generated code
  59. override protected void OnInit(EventArgs e)
  60. {
  61. //
  62. // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
  63. //
  64. InitializeComponent();
  65. base.OnInit(e);
  66. }
  67. /// <summary>
  68. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  69. /// 此方法的内容。
  70. /// </summary>
  71. private void InitializeComponent()
  72. {    
  73. this.ddl_search.SelectedIndexChanged += new System.EventHandler(this.ddl_search_SelectedIndexChanged);
  74. this.ddl_SearchBound.SelectedIndexChanged += new System.EventHandler(this.ddl_SearchBound_SelectedIndexChanged);
  75. this.btn_addsearch.Click += new System.EventHandler(this.btn_addsearch_Click);
  76. this.btn_Del.Click += new System.EventHandler(this.btn_Del_Click);
  77. this.btn_OK.Click += new System.EventHandler(this.btn_OK_Click);
  78. this.dgrd_clientlist.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.dgrd_clientlist_PageIndexChanged);
  79. this.dgrd_clientlist.SortCommand += new System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.dgrd_clientlist_SortCommand);
  80. this.Load += new System.EventHandler(this.Page_Load);
  81. }
  82. #endregion
  83. private void btn_OK_Click(object sender, System.EventArgs e)
  84. {
  85. string searchbound = "";
  86. searchstring = "";
  87. UDS.Components.Staff mysubordinate = new UDS.Components.Staff();
  88. SqlDataReader dr_mysubordinate = mysubordinate.GetStaffFromPosition(Request.Cookies["Username"].Value,2,2);
  89. switch(ddl_SearchBound.SelectedValue)
  90. {
  91. //查询下属和本人
  92. case "1":
  93. //绑定下级人员
  94. while(dr_mysubordinate.Read())
  95. {
  96. searchbound += "'" + dr_mysubordinate["Staff_ID"].ToString() + "',";
  97. }
  98. dr_mysubordinate.Close();
  99. searchbound += "'" + Request.Cookies["UserID"].Value + "'";
  100. break;
  101. //查询本人
  102. case "2":
  103. searchbound += "'" + Request.Cookies["UserID"].Value + "'";
  104. break;
  105. //查询下属
  106. case "3":
  107. while(dr_mysubordinate.Read())
  108. {
  109. searchbound += "'" + dr_mysubordinate["Staff_ID"].ToString() + "',";
  110. }
  111. dr_mysubordinate.Close();
  112. searchbound = (searchbound=="")?"":searchbound.Substring(0,searchbound.Length-1);
  113. break;
  114. }
  115. #region 根据查询条件产生查询语句
  116. if(lbx_search.Items.Count>0)
  117. {
  118. DateTime begintime = new DateTime();
  119. DateTime endtime = DateTime.Now;
  120. foreach(ListItem lt in lbx_search.Items)
  121. {
  122. string [] searcharr = new string[2];
  123. searcharr = lt.Value.Split(':');
  124. switch(searcharr[0].Trim())
  125. {
  126. case "客户名称":
  127. searchstring += "UDS_CM_ClientInfo.name like '%" + searcharr[1] + "%' and ";
  128. break;
  129. case "客户分类":
  130. switch(searcharr[1])
  131. {
  132. case "终端用户":
  133. searchstring += "patindex('%terminal%',UDS_CM_ClientInfo.type)>0" + " and ";
  134. break;
  135. case "渠道商":
  136. searchstring += "patindex('%channal%',UDS_CM_ClientInfo.type)>0" + " and ";
  137. break;
  138. case "社会关系":
  139. searchstring += "patindex('%social%',UDS_CM_ClientInfo.type)>0" + " and ";
  140. break;
  141. case "媒体公关":
  142. searchstring += "patindex('%media%',UDS_CM_ClientInfo.type)>0" + " and ";
  143. break;
  144. }
  145. break;
  146. case "所处行业":
  147. switch(searcharr[1])
  148. {
  149. case "房地产":
  150. searchstring += "patindex('%realty%',UDS_CM_ClientInfo.Calling)>0" + " and ";
  151. break;
  152. case "IT":
  153. searchstring += "patindex('%IT%',UDS_CM_ClientInfo.Calling)>0" + " and ";
  154. break;
  155. case "商业贸易":
  156. searchstring += "patindex('%business%',UDS_CM_ClientInfo.Calling)>0" + " and ";
  157. break;
  158. case "电信":
  159. searchstring += "patindex('%telecom%',UDS_CM_ClientInfo.Calling)>0" + " and ";
  160. break;
  161. case "邮政通讯":
  162. searchstring += "patindex('%post%',UDS_CM_ClientInfo.Calling)>0" + " and ";
  163. break;
  164. case "咨询服务":
  165. searchstring += "patindex('%refer%',UDS_CM_ClientInfo.Calling)>0" + " and ";
  166. break;
  167. case "旅游业":
  168. searchstring += "patindex('%travel%',UDS_CM_ClientInfo.Calling)>0" + " and ";
  169. break;
  170. case "交通运输":
  171. searchstring += "patindex('%bus%',UDS_CM_ClientInfo.Calling)>0" + " and ";
  172. break;
  173. case "金融证券":
  174. searchstring += "patindex('%stock%',UDS_CM_ClientInfo.Calling)>0" + " and ";
  175. break;
  176. case "保险":
  177. searchstring += "patindex('%insurance%',UDS_CM_ClientInfo.Calling)>0" + " and ";
  178. break;
  179. case "税务":
  180. searchstring += "patindex('%tax%',UDS_CM_ClientInfo.Calling)>0" + " and ";
  181. break;
  182. case "制造业":
  183. searchstring += "patindex('%make%',UDS_CM_ClientInfo.Calling)>0" + " and ";
  184. break;
  185. case "家电":
  186. searchstring += "patindex('%he%',UDS_CM_ClientInfo.Calling)>0" + " and ";
  187. break;
  188. case "服装":
  189. searchstring += "patindex('%clothe%',UDS_CM_ClientInfo.Calling)>0" + " and ";
  190. break;
  191. case "食品":
  192. searchstring += "patindex('%food%',UDS_CM_ClientInfo.Calling)>0" + " and ";
  193. break;
  194. case "医药":
  195. searchstring += "patindex('%medicine%',UDS_CM_ClientInfo.Calling)>0" + " and ";
  196. break;
  197. case "机械":
  198. searchstring += "patindex('%mechanism%',UDS_CM_ClientInfo.Calling)>0" + " and ";
  199. break;
  200. case "汽车制造":
  201. searchstring += "patindex('%auto%',UDS_CM_ClientInfo.Calling)>0" + " and ";
  202. break;
  203. }
  204. break;
  205. case "企业性质":
  206. switch(searcharr[1])
  207. {
  208. case "政府":
  209. searchstring += "patindex('%government%',UDS_CM_ClientInfo.CompanyProperty)>0" + " and ";
  210. break;
  211. case "国营":
  212. searchstring += "patindex('%contry%',UDS_CM_ClientInfo.CompanyProperty)>0" + " and ";
  213. break;
  214. case "民营":
  215. searchstring += "patindex('%privateowned%',UDS_CM_ClientInfo.CompanyProperty)>0" + " and ";
  216. break;
  217. case "外资":
  218. searchstring += "patindex('%oversea%',UDS_CM_ClientInfo.CompanyProperty)>0" + " and ";
  219. break;
  220. case "上市公司":
  221. searchstring += "patindex('%stock%',UDS_CM_ClientInfo.CompanyProperty)>0" + " and ";
  222. break;
  223. }
  224. break;
  225. case "客户来源":
  226. switch(searcharr[1])
  227. {
  228. case "销售主动联系":
  229. searchstring += "patindex('%sellman%',UDS_CM_ClientInfo.Customer)>0" + " and ";
  230. break;
  231. case "以前认识":
  232. searchstring += "patindex('%familiar%',UDS_CM_ClientInfo.Customer)>0" + " and ";
  233. break;
  234. case "熟人介绍":
  235. searchstring += "patindex('%introduce%',UDS_CM_ClientInfo.Customer)>0" + " and ";
  236. break;
  237. case "客户主动联系":
  238. searchstring += "patindex('%client%',UDS_CM_ClientInfo.Customer)>0" + " and ";
  239. break;
  240. }
  241. break;
  242. case "客户编号":
  243. searchstring += "UDS_CM_ClientInfo.id='" + searcharr[1] + "' and ";
  244. break;
  245. case "联系人":
  246. //searchstring_linkman = "select * from UDS_CM_ClientInfo,UDS_CM_Linkman where UDS_CM_ClientInfo.id=UDS_CM_Linkman.clientid and UDS_CM_Linkman.name='" + searcharr[1] + "'" + " and ";
  247. searchstring += "UDS_CM_Linkman.name='" + searcharr[1] + "' and ";
  248. break;
  249. case "电话":
  250. searchstring += "UDS_CM_ClientInfo.telephone='" + searcharr[1] + "' and ";
  251. break;
  252. case "销售人员":
  253. UDS.Components.Staff staff = new UDS.Components.Staff();
  254. SqlDataReader dr_staffid = staff.GetStaffIDByRealName(searcharr[1]);
  255. string tmp = "UDS_CM_ClientInfo.addmanid='";
  256. while(dr_staffid.Read())
  257. {
  258. tmp +=  dr_staffid["staff_id"] + "' or UDS_CM_ClientInfo.addmanid='";
  259. }
  260. dr_staffid.Close();
  261. if(tmp=="UDS_CM_ClientInfo.addmanid='")
  262. searchstring = "1=2";
  263. else
  264. {
  265. tmp = tmp.Substring(0,tmp.Length-32);
  266. searchstring += "(" + tmp + ") and ";
  267. }
  268. break;
  269. case "添加日期":
  270. searchstring += "datediff(d,UDS_CM_ClientInfo.birthday,'" + searcharr[1] + "')=0 and ";
  271. break;
  272. case "本周新增客户":
  273. //得到本周起始日(周一 -- 周日)
  274. begintime = DateTime.Now;
  275. switch((int)DateTime.Now.DayOfWeek)
  276. {
  277. case 0:
  278. begintime = begintime.AddDays(-6);
  279. break;
  280. default:
  281. begintime = begintime.AddDays(1-(int)DateTime.Now.DayOfWeek);
  282. break;
  283. }
  284. searchstring += "(UDS_CM_ClientInfo.birthday between '" + begintime.ToShortDateString() + "' and '" + endtime.ToShortDateString() + "') and ";
  285. break;
  286. case "本月新增客户":
  287. //得到本月起始日
  288. begintime = DateTime.Now;
  289. begintime = begintime.AddDays(1-DateTime.Now.Day);
  290. searchstring += "(UDS_CM_ClientInfo.birthday between '" + begintime.ToShortDateString() + "' and '" + endtime.ToShortDateString() + "') and ";
  291. break;
  292. }
  293. }
  294. searchstring = "select UDS_CM_ClientInfo.*,UDS_CM_Linkman.Name AS Linkman from UDS_CM_ClientInfo left join UDS_CM_Linkman on UDS_CM_Linkman.clientid=UDS_CM_ClientInfo.id and UDS_CM_Linkman.ID=UDS_CM_ClientInfo.ChiefLinkmanID  where " + searchstring;
  295. // if(searchstring.EndsWith("and "))
  296. // {
  297. // searchstring = searchstring.Substring(0,searchstring.Length-4);
  298. // }
  299. #endregion
  300. searchstring += "UDS_CM_ClientInfo.AddmanID IN (" + searchbound + ")";
  301. ViewState["searchstring"] = searchstring;
  302. // Response.Write(searchstring);
  303. // Response.End();
  304. Bind();
  305. //Response.Write(searchstring);
  306. }
  307. }
  308. private void Bind()
  309. {
  310. DataSet ds = new DataSet();
  311. UDS.Components.Staff staff1 = new UDS.Components.Staff();
  312. SqlDataReader dr_Staff = staff1.GetAllStaffs();
  313. DataTable dt_Staff = UDS.Components.Tools.ConvertDataReaderToDataTable(dr_Staff);
  314. dt_Staff.TableName = "Staff";
  315. ds.Tables.Add(dt_Staff);
  316. try
  317. {
  318. UDS.Components.Database db = new UDS.Components.Database();
  319. SqlParameter[] prams = {
  320.    db.MakeInParam("@SQL",SqlDbType.NText,5000,searchstring)
  321.    };
  322. SqlDataReader dr = null;
  323. db.RunProc("sp_RunSql",prams,out dr);
  324. DataTable dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr);
  325. dt.TableName = "Client";
  326. ds.Tables.Add(dt);
  327. ltl_Client.Text = dt.Rows.Count.ToString();
  328. ds.Relations.Add("ClientAddMan_Staff",ds.Tables["Client"].Columns["AddManID"],ds.Tables["Staff"].Columns["Staff_ID"],false);
  329. dt.DefaultView.Sort = ViewState["SortField"].ToString() + " " + ViewState["SortDirect"].ToString();
  330. dgrd_clientlist.DataSource = dt.DefaultView;
  331. dgrd_clientlist.DataBind();
  332. }
  333. catch(Exception ex)
  334. {
  335. UDS.Components.Error.Log(ex.ToString());
  336. Server.Transfer("../../Error.aspx");
  337. }
  338. }
  339. private void ddl_search_SelectedIndexChanged(object sender, System.EventArgs e)
  340. {
  341. tbx_searchvalue.Text = "";
  342. tbx_searchvalue.Attributes["onfocus"] = "";
  343. tbx_searchvalue.ReadOnly = false;
  344. #region 条件选择
  345. switch(ddl_search.SelectedItem.Value)
  346. {
  347. case "客户名称": tbx_searchvalue.Visible = true;rbl_searchvalue.Visible = false;break;
  348. case "客户分类": 
  349. {
  350. object[] array;
  351. tbx_searchvalue.Visible = false;
  352. rbl_searchvalue.Visible = true;
  353. array = Enum.GetNames(typeof(UDS.Components.ClientType));
  354. for(int i=0;i<array.Length;i++)
  355. {
  356. switch(array[i].ToString())
  357. {
  358. case "terminal": 
  359. array[i] = "终端用户";
  360. break;
  361. case "channal":
  362. array[i] = "渠道商";
  363. break;
  364. case "social":
  365. array[i] = "社会关系";
  366. break;
  367. case "media":
  368. array[i] = "媒体公关";
  369. break;
  370. }
  371. }
  372. rbl_searchvalue.DataSource = array;
  373. rbl_searchvalue.DataBind();
  374. break;
  375. }
  376. case "客户编号":
  377. tbx_searchvalue.Visible = true;rbl_searchvalue.Visible = false;break;
  378. case "联系人":
  379. tbx_searchvalue.Visible = true;rbl_searchvalue.Visible = false;break;
  380. case "电话":
  381. tbx_searchvalue.Visible = true;rbl_searchvalue.Visible = false;break;
  382. case "所处行业": 
  383. {
  384. object[] array;
  385. tbx_searchvalue.Visible = false;
  386. rbl_searchvalue.Visible = true;
  387. array = Enum.GetNames(typeof(UDS.Components.ClientTrade));
  388. for(int i=0;i<array.Length;i++)
  389. {
  390. switch(array[i].ToString())
  391. {
  392. case "realty": 
  393. array[i] = "房地产";
  394. break;
  395. case "IT":
  396. array[i] = "IT";
  397. break;
  398. case "business":
  399. array[i] = "商业贸易";
  400. break;
  401. case "telecom":
  402. array[i] = "电信";
  403. break;
  404. case "post":
  405. array[i] = "邮政通讯";
  406. break;
  407. case "refer":
  408. array[i] = "咨询服务";
  409. break;
  410. case "travel":
  411. array[i] = "旅游业";
  412. break;
  413. case "bus":
  414. array[i] = "交通运输";
  415. break;
  416. case "stock":
  417. array[i] = "金融证券";
  418. break;
  419. case "insurance":
  420. array[i] = "保险";
  421. break;
  422. case "tax":
  423. array[i] = "税务";
  424. break;
  425. case "make":
  426. array[i] = "制造业";
  427. break;
  428. case "he":
  429. array[i] = "家电";
  430. break;
  431. case "clothe":
  432. array[i] = "服装";
  433. break;
  434. case "food":
  435. array[i] = "食品";
  436. break;
  437. case "medicine":
  438. array[i] = "医药";
  439. break;
  440. case "mechanism":
  441. array[i] = "机械";
  442. break;
  443. case "auto":
  444. array[i] = "汽车制造";
  445. break;
  446. }
  447. }
  448. rbl_searchvalue.DataSource = array;
  449. rbl_searchvalue.DataBind();
  450. break;
  451. }
  452. case "企业性质":
  453. {
  454. object[] array;
  455. tbx_searchvalue.Visible = false;
  456. rbl_searchvalue.Visible = true;
  457. array = Enum.GetNames(typeof(UDS.Components.EnterpriseType));
  458. for(int i=0;i<array.Length;i++)
  459. {
  460. switch(array[i].ToString())
  461. {
  462. case "government":
  463. array[i] = "政府";
  464. break;
  465. case "contry":
  466. array[i] = "国营";
  467. break;
  468. case "oversea":
  469. array[i] = "外资";
  470. break;
  471. case "stock":
  472. array[i] = "上市公司";
  473. break;
  474. case "privateowned":
  475. array[i] = "民营";
  476. break;
  477. }
  478. }
  479. rbl_searchvalue.DataSource = array;
  480. rbl_searchvalue.DataBind();
  481. break;
  482. }
  483. case "客户来源":
  484. {
  485. object[] array;
  486. tbx_searchvalue.Visible = false;
  487. rbl_searchvalue.Visible = true;
  488. array = Enum.GetNames(typeof(UDS.Components.ClientSource));
  489. for(int i=0;i<array.Length;i++)
  490. {
  491. switch(array[i].ToString())
  492. {
  493. case "sellman":
  494. array[i] = "销售主动联系";
  495. break;
  496. case "familiar":
  497. array[i] = "以前认识";
  498. break;
  499. case "introduce":
  500. array[i] = "熟人介绍";
  501. break;
  502. case "client":
  503. array[i] = "客户主动联系";
  504. break;
  505. }
  506. }
  507. rbl_searchvalue.DataSource = array;
  508. rbl_searchvalue.DataBind();
  509. break;
  510. }
  511. case "添加日期":
  512. tbx_searchvalue.Visible = true;
  513. rbl_searchvalue.Visible = false;
  514. tbx_searchvalue.ReadOnly = true;
  515. tbx_searchvalue.Attributes["onfocus"] = "setday(this)";
  516. break;
  517. case "本周新增客户":
  518. tbx_searchvalue.Visible = false;
  519. rbl_searchvalue.Visible = false;
  520. break;
  521. case "本月新增客户":
  522. tbx_searchvalue.Visible = false;
  523. rbl_searchvalue.Visible = false;
  524. break;
  525. default:
  526. tbx_searchvalue.Visible = true;
  527. rbl_searchvalue.Visible = false;
  528. break;
  529. }
  530. #endregion
  531. }
  532. private void btn_addsearch_Click(object sender, System.EventArgs e)
  533. {
  534. ListItem lt = new ListItem();
  535. lt.Text = ddl_search.SelectedItem.Text + ":";
  536. if(tbx_searchvalue.Visible==true)
  537. lt.Text += tbx_searchvalue.Text;
  538. else if(rbl_searchvalue.Visible==true)
  539. lt.Text += rbl_searchvalue.SelectedItem.Text;
  540. lt.Value = lt.Text;
  541. lbx_search.Items.Add(lt);
  542. }
  543. private void btn_Del_Click(object sender, System.EventArgs e)
  544. {
  545. foreach(ListItem lt in lbx_search.Items)
  546. {
  547. if(lt.Selected)
  548. {
  549. lbx_search.Items.Remove(lt);
  550. break;
  551. }
  552. }
  553. }
  554. private void ddl_SearchBound_SelectedIndexChanged(object sender, System.EventArgs e)
  555. {
  556. }
  557. private void dgrd_clientlist_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
  558. {
  559. if(ViewState["SortField"].ToString() == e.SortExpression)
  560. {
  561. ViewState["SortDirect"] = (ViewState["SortDirect"].ToString()=="ASC")?"DESC":"ASC";
  562. }
  563. else
  564. {
  565. ViewState["SortField"] = e.SortExpression;
  566. ViewState["SortDirect"] = "ASC";
  567. }
  568. foreach(DataGridColumn col in  dgrd_clientlist.Columns)
  569. {
  570. if(col.SortExpression.ToString()==ViewState["SortField"].ToString())
  571. {
  572. if(ViewState["SortDirect"].ToString() == "ASC")
  573. col.HeaderText += "<img src='../../../images/asc.gif' border=0/>";
  574. else
  575. col.HeaderText += "<img src='../../../images/desc.gif' border=0/>";
  576. }
  577. }
  578. Bind();
  579. }
  580. private void dgrd_clientlist_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
  581. {
  582. dgrd_clientlist.CurrentPageIndex =e.NewPageIndex;
  583. Bind();
  584. }
  585. }
  586. }