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

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. /// ContactInfo 的摘要说明。
  16. /// </summary>
  17. public class ContactInfo : System.Web.UI.Page
  18. {
  19. protected System.Web.UI.WebControls.TextBox tbx_searchvalue;
  20. protected System.Web.UI.WebControls.RadioButtonList rbl_searchvalue;
  21. protected System.Web.UI.WebControls.Button btn_addsearch;
  22. protected System.Web.UI.WebControls.ListBox lbx_search;
  23. protected System.Web.UI.WebControls.Button btn_OK;
  24. protected System.Web.UI.WebControls.DataGrid dgrd_ContactList;
  25. protected System.Web.UI.WebControls.Button btn_Del;
  26. protected System.Web.UI.WebControls.Literal ltl_Client;
  27. protected System.Web.UI.WebControls.DropDownList ddl_search;
  28. private void Page_Load(object sender, System.EventArgs e)
  29. {
  30. // 在此处放置用户代码以初始化页面
  31. ltl_Client.Text = "0";
  32. }
  33. #region Web Form Designer generated code
  34. override protected void OnInit(EventArgs e)
  35. {
  36. //
  37. // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
  38. //
  39. InitializeComponent();
  40. base.OnInit(e);
  41. }
  42. /// <summary>
  43. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  44. /// 此方法的内容。
  45. /// </summary>
  46. private void InitializeComponent()
  47. {    
  48. this.ddl_search.SelectedIndexChanged += new System.EventHandler(this.ddl_search_SelectedIndexChanged);
  49. this.btn_addsearch.Click += new System.EventHandler(this.btn_addsearch_Click);
  50. this.btn_Del.Click += new System.EventHandler(this.btn_Del_Click);
  51. this.btn_OK.Click += new System.EventHandler(this.btn_OK_Click);
  52. this.Load += new System.EventHandler(this.Page_Load);
  53. }
  54. #endregion
  55. private void btn_addsearch_Click(object sender, System.EventArgs e)
  56. {
  57. ListItem lt = new ListItem();
  58. lt.Text = ddl_search.SelectedItem.Text + ":";
  59. if(tbx_searchvalue.Visible==true)
  60. lt.Text += tbx_searchvalue.Text;
  61. else if(rbl_searchvalue.Visible==true)
  62. lt.Text += rbl_searchvalue.SelectedItem.Text;
  63. lt.Value = lt.Text;
  64. lbx_search.Items.Add(lt);
  65. }
  66. private void ddl_search_SelectedIndexChanged(object sender, System.EventArgs e)
  67. {
  68. tbx_searchvalue.Text = "";
  69. tbx_searchvalue.Attributes["onfocus"] = "";
  70. tbx_searchvalue.ReadOnly = false;
  71. object[] array;
  72. switch(ddl_search.SelectedItem.Value)
  73. {
  74. case "销售阶段":
  75. tbx_searchvalue.Visible = false;
  76. rbl_searchvalue.Visible = true;
  77. array = Enum.GetNames(typeof(UDS.Components.ContactStat));
  78. for(int i=0;i<array.Length;i++)
  79. {
  80. switch(array[i].ToString())
  81. {
  82. case "trace": 
  83. array[i] = "跟踪";
  84. break;
  85. case "boot":
  86. array[i] = "启动";
  87. break;
  88. case "commend":
  89. array[i] = "产品推荐";
  90. break;
  91. case "requirement":
  92. array[i] = "需求定义";
  93. break;
  94. case "submit":
  95. array[i] = "方案提交";
  96. break;
  97. case "negotiate":
  98. array[i] = "商务谈判";
  99. break;
  100. case "actualize":
  101. array[i] = "项目实施";
  102. break;
  103. case "traceservice":
  104. array[i] = "跟踪服务";
  105. break;
  106. case "last":
  107. array[i] = "收尾款";
  108. break;
  109. }
  110. }
  111. rbl_searchvalue.DataSource = array;
  112. rbl_searchvalue.DataBind();
  113. break;
  114. case "成交预估":
  115. array = new string[]{"*","**","***","****","*****",}; 
  116. tbx_searchvalue.Visible = false;
  117. rbl_searchvalue.Visible = true;
  118. rbl_searchvalue.DataSource = array;
  119. rbl_searchvalue.DataBind();
  120. break;
  121. case "首次接洽时间":
  122. tbx_searchvalue.ReadOnly = true;
  123. tbx_searchvalue.Attributes["onfocus"] = "setday(this)";
  124. break;
  125. case "最后一次接洽时间":
  126. tbx_searchvalue.Visible = true;
  127. rbl_searchvalue.Visible = false;
  128. tbx_searchvalue.ReadOnly = true;
  129. tbx_searchvalue.Attributes["onfocus"] = "setday(this)";
  130. break;
  131. case "下次约见时间":
  132. tbx_searchvalue.Visible = true;
  133. rbl_searchvalue.Visible = false;
  134. tbx_searchvalue.ReadOnly = true;
  135. tbx_searchvalue.Attributes["onfocus"] = "setday(this)";
  136. break;
  137. case "本周新增记录":
  138. tbx_searchvalue.Visible = false;
  139. rbl_searchvalue.Visible = false;
  140. break;
  141. case "本月新增记录":
  142. tbx_searchvalue.Visible = false;
  143. rbl_searchvalue.Visible = false;
  144. break;
  145. default:
  146. tbx_searchvalue.Visible = true;
  147. rbl_searchvalue.Visible = false;
  148. break;
  149. }
  150. }
  151. private void btn_OK_Click(object sender, System.EventArgs e)
  152. {
  153. if(lbx_search.Items.Count>0)
  154. {
  155. string searchstring = "";
  156. string tmp = "";
  157. DateTime begintime = new DateTime();
  158. DateTime endtime = DateTime.Now;
  159. foreach(ListItem lt in lbx_search.Items)
  160. {
  161. string [] searcharr = new string[2];
  162. searcharr = lt.Value.Split(':');
  163. switch(searcharr[0].Trim())
  164. {
  165. case "销售人员姓名":
  166. UDS.Components.Staff staff = new UDS.Components.Staff();
  167. SqlDataReader dr_staffid = staff.GetStaffIDByRealName(searcharr[1]);
  168. tmp = "UDS_CM_ClientContact.MarketmanID='";
  169. while(dr_staffid.Read())
  170. {
  171. tmp +=  dr_staffid["staff_id"] + "' or UDS_CM_ClientContact.MarketmanID='";
  172. }
  173. dr_staffid.Close();
  174. if(tmp=="UDS_CM_ContactInfo.MarketmanID='")
  175. searchstring = "1=2";
  176. else
  177. {
  178. tmp = tmp.Substring(0,tmp.Length-37);
  179. searchstring += "(" + tmp + ") and ";
  180. }
  181. break;
  182. case "客户名称":
  183. UDS.Components.CM cm = new UDS.Components.CM();
  184. SqlDataReader dr_clientid = cm.GetClientIDByName(searcharr[1]);
  185. tmp = "UDS_CM_ClientContact.ClientID='";
  186. while(dr_clientid.Read())
  187. {
  188. tmp +=  dr_clientid["ID"] + "' or UDS_CM_ClientContact.ClientID='";
  189. }
  190. dr_clientid.Close();
  191. if(tmp=="UDS_CM_ClientContact.ClientID='")
  192. searchstring = "1=2";
  193. else
  194. {
  195. tmp = tmp.Substring(0,tmp.Length-34);
  196. searchstring += "(" + tmp + ") and ";
  197. }
  198. break;
  199. case "客户编号":
  200. searchstring += "UDS_CM_ClientContact.ClientID=" + searcharr[1] + " and ";
  201. break;
  202. case "销售阶段":
  203. switch(searcharr[1])
  204. {
  205. case "跟踪":
  206. searchstring += "patindex('%trace%',UDS_CM_ClientContact.curstatus)>=0" + " and ";
  207. break;
  208. case "启动":
  209. searchstring += "patindex('%boot%',UDS_CM_ClientContact.curstatus)>=0" + " and ";
  210. break;
  211. case "产品推荐":
  212. searchstring += "patindex('%commend%',UDS_CM_ClientContact.curstatus)>=0" + " and ";
  213. break;
  214. case "需求定义":
  215. searchstring += "patindex('%requirement%',UDS_CM_ClientContact.curstatus)>=0" + " and ";
  216. break;
  217. case "方案提交":
  218. searchstring += "patindex('%submit%',UDS_CM_ClientContact.curstatus)>=0" + " and ";
  219. break;
  220. case "商务谈判":
  221. searchstring += "patindex('%negotiate%',UDS_CM_ClientContact.curstatus)>=0" + " and ";
  222. break;
  223. case "项目实施":
  224. searchstring += "patindex('%actualize%',UDS_CM_ClientContact.curstatus)>=0" + " and ";
  225. break;
  226. case "跟踪服务":
  227. searchstring += "patindex('%traceservice%',UDS_CM_ClientContact.curstatus)>=0" + " and ";
  228. break;
  229. case "收尾款":
  230. searchstring += "patindex('%last%',UDS_CM_ClientContact.curstatus)>=0" + " and ";
  231. break;
  232. }
  233. break;
  234. case "成交预估":
  235. searchstring += "UDS_CM_ClientContact.BargainPrognosis='" + searcharr[1] + "' and ";
  236. break;
  237. case "已接洽次数":
  238. searchstring += "UDS_CM_ClientContact.ContactTimes=" + searcharr[1] + " and ";
  239. break;
  240. case "接洽对象职务":
  241. searchstring += "UDS_CM_Linkman.[Position]='" + searcharr[1] + "' and ";
  242. break;
  243. case "首次接洽时间":
  244. searchstring += "UDS_CM_ClientInfo.FirstContactTime='" + searcharr[1] + "' and ";
  245. break;
  246. case "最后一次接洽时间":
  247. searchstring += "UDS_CM_ClientInfo.ContactTime='" + searcharr[1] + "' and ";
  248. break;
  249. case "下次约见时间":
  250. searchstring += "UDS_CM_ClientInfo.NextContactTime='" + searcharr[1] + "' and ";
  251. break;
  252. case "本周新增记录":
  253. //得到本周起始日(周一 -- 周日)
  254. begintime = DateTime.Now;
  255. switch((int)DateTime.Now.DayOfWeek)
  256. {
  257. case 0:
  258. begintime = begintime.AddDays(-6);
  259. break;
  260. default:
  261. begintime = begintime.AddDays(1-(int)DateTime.Now.DayOfWeek);
  262. break;
  263. }
  264. searchstring += "(UDS_CM_ClientContact.updatetime between '" + begintime.ToShortDateString() + "' and '" + endtime.ToShortDateString() + "') and ";
  265. break;
  266. case "本月新增记录":
  267. //得到本月起始日
  268. begintime = DateTime.Now;
  269. begintime = begintime.AddDays(1-DateTime.Now.Day);
  270. searchstring += "(UDS_CM_ClientContact.updatetime between '" + begintime.ToShortDateString() + "' and '" + endtime.ToShortDateString() + "') and ";
  271. break;
  272. }
  273. }
  274. searchstring = "select * from UDS_CM_ClientInfo where ID IN (select UDS_CM_ClientInfo.ID from UDS_CM_ClientContact left join UDS_CM_ClientContact_Linkman ON UDS_CM_ClientContact.ID=UDS_CM_ClientContact_Linkman.ContactID left join UDS_CM_Linkman ON UDS_CM_ClientContact_Linkman.LinkmanID=UDS_CM_ClientContact_Linkman.id,UDS_CM_ClientInfo where UDS_CM_ClientContact.clientid=UDS_CM_ClientInfo.id and " + searchstring;
  275. if(searchstring.EndsWith("and "))
  276. {
  277. searchstring = searchstring.Substring(0,searchstring.Length-4);
  278. }
  279. searchstring += " group by UDS_CM_ClientInfo.ID)";
  280. DataSet ds = new DataSet();
  281. UDS.Components.Staff staff1 = new UDS.Components.Staff();
  282. SqlDataReader dr_Staff = staff1.GetAllStaffs();
  283. DataTable dt_Staff = UDS.Components.Tools.ConvertDataReaderToDataTable(dr_Staff);
  284. dt_Staff.TableName = "Staff";
  285. ds.Tables.Add(dt_Staff);
  286. UDS.Components.Database db = new UDS.Components.Database();
  287. SqlParameter[] prams = {
  288.    db.MakeInParam("@SQL",SqlDbType.NText,5000,searchstring)
  289.    };
  290. SqlDataReader dr = null;
  291. db.RunProc("sp_RunSql",prams,out dr);
  292. DataTable dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr);
  293. dt.TableName = "Client";
  294. ds.Tables.Add(dt);
  295. ltl_Client.Text = dt.Rows.Count.ToString();
  296. ds.Relations.Add("ClientAddMan_Staff",ds.Tables["Client"].Columns["AddManID"],ds.Tables["Staff"].Columns["Staff_ID"],false);
  297. dgrd_ContactList.DataSource = dt.DefaultView;
  298. dgrd_ContactList.DataBind();
  299. }
  300. }
  301. private void btn_Del_Click(object sender, System.EventArgs e)
  302. {
  303. foreach(ListItem lt in lbx_search.Items)
  304. {
  305. if(lt.Selected)
  306. {
  307. lbx_search.Items.Remove(lt);
  308. break;
  309. }
  310. }
  311. }
  312. }
  313. }