dkGMouldTypeSearchBox.cs 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543
  1. /*******************************************************************************
  2. * Copyright(c) 2014 dongke All rights reserved. / Confidential
  3. * 类的信息:
  4. * 1.程序名称:dkGMouldTypeSearchBox.cs
  5. * 2.功能描述:成型线类型选择控件
  6. * 编辑履历:
  7. * 作者 日期 版本 修改内容
  8. * 庄天威 2014/09/15 1.00 新建
  9. *******************************************************************************/
  10. using System;
  11. using System.ComponentModel;
  12. using System.Data;
  13. using System.Drawing;
  14. using System.Windows.Forms;
  15. using Dongke.IBOSS.PRD.Basics.BaseControls;
  16. using Dongke.IBOSS.PRD.WCF.Proxys;
  17. namespace Dongke.IBOSS.PRD.Client.Controls.SearchTextBox
  18. {
  19. /// <summary>
  20. /// 成型线类型选择控件
  21. /// </summary>
  22. public partial class dkGMouldTypeSearchBox : UserControl
  23. {
  24. #region 成员变量
  25. private S_CMN_005 _frmMouldType;
  26. private Label lblGMouldType; // 项目名称标签
  27. private TextBox txtGMouldType; // 输入文本框
  28. private bool _isEnabled = true; // 控件是否可用
  29. private DataTable _dataSource = null; // 数据源
  30. private int? _mouldTypeID; // 成型线类型ID
  31. private string _mouldTypeIDS; //id集
  32. private string _mouldTypeCode; // 成型线类型Code
  33. private string _mouldTypeName; // 成型线类型名称
  34. private int _isCanManyTimes; // 能否多次注浆
  35. private bool _isMustInput; // 控件是否是必须输入项目
  36. private bool _IsOnlyShowValid = true; // 是否只显示有效数据
  37. #endregion
  38. #region 构造函数
  39. public dkGMouldTypeSearchBox()
  40. {
  41. InitializeComponent();
  42. this.ReadOnly = true;
  43. }
  44. #endregion
  45. #region 属性
  46. /// <summary>
  47. /// 是否只显示有效数据
  48. /// </summary>
  49. [Description("设置控件是否只显示有效数据。")]
  50. [DefaultValue(true)]
  51. public bool IsOnlyShowValid
  52. {
  53. get
  54. {
  55. return _IsOnlyShowValid;
  56. }
  57. set
  58. {
  59. _IsOnlyShowValid = value;
  60. }
  61. }
  62. /// <summary>
  63. /// 获取或者设定控件是否是必须输入项目
  64. /// </summary>
  65. [DefaultValue("False")]
  66. [Description("获取或者设定控件是否是必须输入项目。")]
  67. public bool IsMustInput
  68. {
  69. get
  70. {
  71. return _isMustInput;
  72. }
  73. set
  74. {
  75. _isMustInput = value;
  76. // 项目为必须输入项时,需要修改字体颜色
  77. if (_isMustInput)
  78. {
  79. this.lblGMouldType.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(155)))), ((int)(((byte)(39)))), ((int)(((byte)(39)))));
  80. }
  81. else
  82. {
  83. this.lblGMouldType.ForeColor = System.Drawing.SystemColors.ControlText;
  84. }
  85. }
  86. }
  87. [Description("获取或者设定Lable标签字符。")]
  88. public string Title
  89. {
  90. get
  91. {
  92. return this.lblGMouldType.Text;
  93. }
  94. set
  95. {
  96. this.lblGMouldType.Text = value;
  97. AdjustControl();
  98. }
  99. }
  100. /// <summary>
  101. /// 获取和设置是否只显示多次注浆类别。
  102. /// </summary>
  103. [DefaultValue(true)]
  104. [Description("获取和设置是否只显示多次注浆类别。")]
  105. public int IsCanManyTimes
  106. {
  107. get
  108. {
  109. return _isCanManyTimes;
  110. }
  111. set
  112. {
  113. _isCanManyTimes = value;
  114. }
  115. }
  116. [DefaultValue(false)]
  117. public bool IsDeleteSelf
  118. {
  119. get;
  120. set;
  121. }
  122. /// <summary>
  123. /// 获取或者设定控件的数据源。
  124. /// </summary>
  125. [Description("获取或者设定控件的数据源。")]
  126. public DataTable DataSource
  127. {
  128. get
  129. {
  130. return _dataSource;
  131. }
  132. set
  133. {
  134. _dataSource = value;
  135. }
  136. }
  137. /// <summary>
  138. /// 获取或者设定控件的尺寸大小。
  139. /// </summary>
  140. [Description("获取或者设定控件的尺寸大小。")]
  141. public new Size Size
  142. {
  143. get
  144. {
  145. return base.Size;
  146. }
  147. set
  148. {
  149. base.Size = value;
  150. AdjustControl();
  151. }
  152. }
  153. /// <summary>
  154. /// 获取或者设定控件的文本框的文本字符串。
  155. /// </summary>
  156. [Description("获取或者设定控件的文本框的文本字符串。")]
  157. public override string Text
  158. {
  159. get
  160. {
  161. return this.txtGMouldType.Text;
  162. }
  163. set
  164. {
  165. this.txtGMouldType.Text = value;
  166. }
  167. }
  168. /// <summary>
  169. /// 获取或者设定控件的文本框的背景颜色。
  170. /// </summary>
  171. [Description("获取或者设定控件的文本框的背景颜色。")]
  172. public Color TxtMouldTypeBackColor
  173. {
  174. get
  175. {
  176. return this.txtGMouldType.BackColor;
  177. }
  178. set
  179. {
  180. this.txtGMouldType.BackColor = value;
  181. }
  182. }
  183. /// <summary>
  184. /// 获取或者设定控件的类别ID。
  185. /// </summary>
  186. [Description("获取或者设定控件的类别ID。")]
  187. public int? MouldTypeID
  188. {
  189. get
  190. {
  191. return _mouldTypeID;
  192. }
  193. set
  194. {
  195. _mouldTypeID = value;
  196. if (_mouldTypeID != null && _mouldTypeID != 0 && this.DataSource != null)
  197. {
  198. DataTable mouldTypeTable = this.DataSource.Copy();
  199. DataRow[] dataRows = mouldTypeTable.Select("GMouldTypeID = " + this._mouldTypeID);
  200. if (dataRows.Length == 1)
  201. {
  202. this.MouldTypeCode = dataRows[0]["GMouldTypeCode"] as string;
  203. this.Text = dataRows[0]["GMouldTypeName"] as string;
  204. }
  205. }
  206. if (_mouldTypeID == null)
  207. {
  208. this.Text = string.Empty;
  209. MouldTypeCode = string.Empty;
  210. MouldTypeName = string.Empty;
  211. }
  212. }
  213. }
  214. /// <summary>
  215. /// 获取或者设定控件的类别Code
  216. /// </summary>
  217. [Description("获取或者设定控件的类别Code。")]
  218. public string MouldTypeIDS
  219. {
  220. get
  221. {
  222. return _mouldTypeIDS;
  223. }
  224. set
  225. {
  226. _mouldTypeIDS = value;
  227. }
  228. }
  229. /// <summary>
  230. /// 获取或者设定控件的类别id集
  231. /// </summary>
  232. [Description("获取或者设定控件的类别id集。")]
  233. public string MouldTypeCode
  234. {
  235. get
  236. {
  237. return _mouldTypeCode;
  238. }
  239. set
  240. {
  241. _mouldTypeCode = value;
  242. }
  243. }
  244. /// <summary>
  245. /// 获取或者设定控件的类别名称
  246. /// </summary>
  247. [Description("获取或者设定控件的类别名称。")]
  248. public string MouldTypeName
  249. {
  250. get
  251. {
  252. return _mouldTypeName;
  253. }
  254. set
  255. {
  256. _mouldTypeName = value;
  257. }
  258. }
  259. /// <summary>
  260. /// 获取或者设定控件是否可用。
  261. /// </summary>
  262. [System.ComponentModel.DefaultValue(null)]
  263. [Description("获取或者设定控件是否可用。")]
  264. public new bool Enabled
  265. {
  266. get
  267. {
  268. return _isEnabled;
  269. }
  270. set
  271. {
  272. _isEnabled = value;
  273. this.txtGMouldType.Enabled = _isEnabled;
  274. this.TabStop = _isEnabled;
  275. }
  276. }
  277. /// <summary>
  278. /// 获取或者设定控件是否只读。
  279. /// </summary>
  280. [System.ComponentModel.DefaultValue(null)]
  281. [Description("获取或者设定控件是否只读。")]
  282. public bool ReadOnly
  283. {
  284. set
  285. {
  286. this.txtGMouldType.ReadOnly = value;
  287. }
  288. }
  289. /// <summary>
  290. /// 范围权限
  291. /// </summary>
  292. public byte PurviewType
  293. {
  294. get;
  295. set;
  296. }
  297. /// <summary>
  298. /// 多选。
  299. /// </summary>
  300. [System.ComponentModel.DefaultValue(false)]
  301. [Description("多选。")]
  302. public bool SelectMore
  303. {
  304. get;
  305. set;
  306. }
  307. #endregion
  308. #region 定义委托事件
  309. public delegate void TextBoxChangedHandle(object sender, TextChangeEventArgs e);
  310. public event TextBoxChangedHandle MouldTypeValueChanged;
  311. #endregion
  312. #region 控件事件
  313. [Description("控件光标点击按钮事件。")]
  314. public new event EventHandler Click
  315. {
  316. add
  317. {
  318. this.btnSearch.Click += value;
  319. }
  320. remove
  321. {
  322. this.btnSearch.Click -= value;
  323. }
  324. }
  325. /// <summary>
  326. /// 控件尺寸大小改变事件
  327. /// </summary>
  328. /// <param name="sender"></param>
  329. /// <param name="e"></param>
  330. private void dkGMouldTypeSearchBox_SizeChanged(object sender, System.EventArgs e)
  331. {
  332. AdjustControl();
  333. }
  334. /// <summary>
  335. /// 查询按钮按下事件
  336. /// </summary>
  337. /// <param name="sender"></param>
  338. /// <param name="e"></param>
  339. private void btnSearch_Click(object sender, System.EventArgs e)
  340. {
  341. // 如果属性是不可用,是不能进行点击事件的
  342. if (!Enabled)
  343. {
  344. return;
  345. }
  346. // 当数据源为null时,查询数据源
  347. if (DataSource == null)
  348. {
  349. // 查询数据源
  350. DataSource = SystemModuleProxy.Service.GetGMouldType().Tables[0];
  351. }
  352. // 释放窗体资源
  353. if (null != _frmMouldType)
  354. {
  355. _frmMouldType.Dispose();
  356. _frmMouldType = null;
  357. }
  358. // 打开查询窗体
  359. if (this.SelectMore)
  360. {
  361. _frmMouldType = new S_CMN_005(1);
  362. }
  363. else
  364. {
  365. _frmMouldType = new S_CMN_005();
  366. }
  367. _frmMouldType.DataSource = this.DataSource;
  368. DialogResult dialogResult = _frmMouldType.ShowDialog();
  369. // 查询窗体返回值给控件赋值
  370. if (dialogResult.Equals(DialogResult.OK))
  371. {
  372. //判断是多选否是
  373. if (this.SelectMore)
  374. {
  375. _mouldTypeCode = string.Empty;
  376. _mouldTypeName = string.Empty;
  377. _mouldTypeIDS = string.Empty;
  378. //赋值多选值
  379. if (_frmMouldType.dataDT.Rows.Count > 0 || _frmMouldType.MouldTypeRow != null)
  380. {
  381. for (int i = 0; i < _frmMouldType.dataDT.Rows.Count; i++)
  382. {
  383. if (_frmMouldType.dataDT.Rows[i]["sel"].ToString().Equals("1"))
  384. {
  385. if (string.IsNullOrEmpty(_mouldTypeCode))
  386. {
  387. _mouldTypeCode = _frmMouldType.dataDT.Rows[i]["GMOULDTYPECODE"].ToString();
  388. _mouldTypeName = _frmMouldType.dataDT.Rows[i]["GMOULDTYPENAME"].ToString();
  389. _mouldTypeIDS = _frmMouldType.dataDT.Rows[i]["GMOULDTYPEID"].ToString();
  390. }
  391. else
  392. {
  393. _mouldTypeCode += "," + _frmMouldType.dataDT.Rows[i]["GMOULDTYPECODE"].ToString();
  394. _mouldTypeName += "," + _frmMouldType.dataDT.Rows[i]["GMOULDTYPENAME"].ToString();
  395. _mouldTypeIDS += "," + _frmMouldType.dataDT.Rows[i]["GMOULDTYPEID"].ToString();
  396. }
  397. }
  398. }
  399. this.Text = _mouldTypeName;
  400. }
  401. }
  402. else
  403. {
  404. if (_frmMouldType.MouldTypeRow != null)
  405. {
  406. _mouldTypeID = Convert.ToInt32(_frmMouldType.MouldTypeRow["GMOULDTYPEID"]);
  407. _mouldTypeCode = _frmMouldType.MouldTypeRow["GMOULDTYPECODE"].ToString();
  408. _mouldTypeName = _frmMouldType.MouldTypeRow["GMOULDTYPENAME"].ToString();
  409. _isCanManyTimes = Convert.ToInt32(_frmMouldType.MouldTypeRow["CanManyTimes"].ToString());
  410. this.Text = _frmMouldType.MouldTypeRow["GMOULDTYPENAME"].ToString();
  411. }
  412. }
  413. }
  414. }
  415. /// <summary>
  416. /// 清除控件的值
  417. /// </summary>
  418. /// <param name="sender"></param>
  419. /// <param name="e"></param>
  420. private void txtGMouldType_KeyDown(object sender, KeyEventArgs e)
  421. {
  422. if (e.KeyCode == Keys.Back || e.KeyCode == Keys.Delete)
  423. {
  424. ClearControl();
  425. }
  426. }
  427. private void txtGMouldType_TextChanged(object sender, EventArgs e)
  428. {
  429. if (MouldTypeValueChanged != null)
  430. {
  431. MouldTypeValueChanged(this, new TextChangeEventArgs(this.txtGMouldType.Text));
  432. }
  433. }
  434. public class TextChangeEventArgs : EventArgs
  435. {
  436. public TextChangeEventArgs(string message)
  437. {
  438. }
  439. }
  440. #endregion
  441. #region 私有方法/函数
  442. /// <summary>
  443. /// 根据控件的尺寸变化,改变控件内部控件的尺寸大小
  444. /// </summary>
  445. protected void AdjustControl()
  446. {
  447. // 取得按钮控件的宽度和高度
  448. int buttonWidth = (this.btnSearch.Visible) ? this.btnSearch.Width : 0;
  449. this.Height = this.btnSearch.Height;
  450. // 设置控件的尺寸和位置。
  451. this.txtGMouldType.Location = new System.Drawing.Point(this.lblGMouldType.Width +
  452. ControlsConst.CONTROLSPACE, (this.Height - this.txtGMouldType.Height) / 2);
  453. this.txtGMouldType.Size = new System.Drawing.Size(this.Width - this.btnSearch.Width -
  454. (this.lblGMouldType.Width + ControlsConst.CONTROLSPACE * 2), this.Height);
  455. this.btnSearch.Location =
  456. new System.Drawing.Point(this.Width - this.btnSearch.Width,
  457. (this.Height - this.btnSearch.Height) / 2);
  458. // 设置标签的尺寸和位置。
  459. this.lblGMouldType.Location =
  460. new System.Drawing.Point(0, (this.Height - this.lblGMouldType.Height) / 2);
  461. this.lblGMouldType.Size = new System.Drawing.Size(this.lblGMouldType.Width, this.lblGMouldType.Height);
  462. }
  463. /// <summary>
  464. /// 清空控件
  465. /// </summary>
  466. /// <returns></returns>
  467. public void ClearControl()
  468. {
  469. this.txtGMouldType.Text = "";
  470. this._mouldTypeID = null;
  471. this._mouldTypeCode = string.Empty;
  472. this._mouldTypeName = string.Empty;
  473. this._mouldTypeIDS = string.Empty;
  474. }
  475. /// <summary>
  476. /// 过滤数据源
  477. /// </summary>
  478. /// <param name="dataSource"></param>
  479. /// <returns></returns>
  480. protected DataTable SetFilter(DataTable dataSource)
  481. {
  482. //string filter = "ValueFlag = 1";
  483. //if (dataSource is DataTable)
  484. //{
  485. // DataTable dtbl = (DataTable)dataSource;
  486. // // 若设置了只显示有效数据
  487. // if (this._IsOnlyShowValid == true)
  488. // {
  489. // dtbl.DefaultView.RowFilter = filter;
  490. // }
  491. // dataSource = dtbl.DefaultView.ToTable();
  492. //}
  493. return dataSource;
  494. }
  495. #endregion
  496. }
  497. }