FormEditUserParameter.cs 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Linq;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using DevExpress.XtraEditors;
  11. using SIMDP.Model;
  12. using SIMDP.Util;
  13. using ProjectBase.Data.BaseDAL;
  14. using SIMDP.BLL;
  15. using ProjectBase.Data.Logs;
  16. using ProjectBase.Util;
  17. namespace SIMDP
  18. {
  19. public partial class FormEditUserParameter : DevExpress.XtraEditors.XtraForm
  20. {
  21. private MoUserParameter moUserPara = null;
  22. public FormEditUserParameter(MoUserParameter userPara)
  23. {
  24. InitializeComponent();
  25. InitControls();
  26. moUserPara = userPara;
  27. }
  28. private void FormEditUserParameter_Load(object sender, EventArgs e)
  29. {
  30. if (moUserPara != null)
  31. {
  32. this.textEditParaName.EditValue = moUserPara.UserParaName;
  33. this.textEditParaValue.EditValue = moUserPara.UserParaValue;
  34. //this.dateEditPara.EditValue = moUserPara.UserParaTime;
  35. //this.lookUpEditParaType.EditValue = Convert.ToInt32(moUserPara.UserParaType);
  36. this.checkEditValid.Checked = moUserPara.UserParaValid;
  37. this.richTextBoxParaDescription.Text = moUserPara.UserParaDescription;
  38. this.textEditParaUnit.EditValue = moUserPara.UserParaUnit;
  39. this.textEditParaName.Enabled = false;
  40. }
  41. else
  42. {
  43. this.checkEditValid.Checked = true;
  44. }
  45. }
  46. /// <summary>
  47. /// 初始化控件
  48. /// </summary>
  49. private void InitControls()
  50. {
  51. //下拉框--参数类型
  52. BindingSource bsParaType = new BindingSource();
  53. bsParaType.DataSource = SysEnvironment.dirSysParameterType;
  54. this.lookUpEditParaType.Properties.DataSource = bsParaType;
  55. this.lookUpEditParaType.Properties.ValueMember = "Key";
  56. this.lookUpEditParaType.Properties.DisplayMember = "Value";
  57. this.lookUpEditParaType.Properties.NullText = null;
  58. //下拉框--参数范围参考条件
  59. BindingSource bsCondition = new BindingSource();
  60. bsCondition.DataSource = SysEnvironment.dirSysParameterData;
  61. this.lookUpEditCondition.Properties.DataSource = bsCondition;
  62. this.lookUpEditCondition.Properties.ValueMember = "Key";
  63. this.lookUpEditCondition.Properties.DisplayMember = "Value";
  64. this.lookUpEditCondition.Properties.NullText = null;
  65. }
  66. /// <summary>
  67. /// 保存
  68. /// </summary>
  69. /// <param name="sender"></param>
  70. /// <param name="e"></param>
  71. private void SimpleButtonSave_Click(object sender, EventArgs e)
  72. {
  73. if (!Validation())
  74. {
  75. return;
  76. }
  77. //if (!ParameterTypeValidation())
  78. // return;
  79. //if (!ParameterDataValidation())
  80. // return;
  81. try
  82. {
  83. MoUserParameter mo = new MoUserParameter();
  84. mo.UserParaName = this.textEditParaName.EditValue.ToString();
  85. mo.UserParaValue = this.textEditParaValue.EditValue.ToString();
  86. //mo.UserParaTime = Convert.ToDateTime(this.dateEditPara.EditValue);
  87. mo.UserParaUnit = this.textEditParaUnit.EditValue.ToString();
  88. //mo.UserParaType = this.lookUpEditParaType.EditValue.ToString();
  89. mo.UserParaValid = this.checkEditValid.Checked;
  90. //mo.UserParaScope = this.textEditStart.EditValue != null ? this.textEditStart.EditValue.ToString() : "";
  91. //if (this.textEditStart.EditValue != null && this.textEditEnd.EditValue != null)
  92. // mo.UserParaScope += "~";
  93. //mo.UserParaScope += this.textEditEnd.EditValue != null ? this.textEditEnd.EditValue.ToString() : "";
  94. mo.UserParaDescription = this.richTextBoxParaDescription.Text;
  95. //BlSystemParameter bl = new BlSystemParameter();
  96. bool bOK = false;
  97. if (moUserPara == null)
  98. bOK = BLLFactory<BlUserParameter>.Instance.Insert(mo);
  99. else
  100. {
  101. mo.UserParaId = moUserPara.UserParaId;
  102. bOK = BLLFactory<BlUserParameter>.Instance.Update(mo, mo.UserParaId);
  103. }
  104. if (!bOK)
  105. {
  106. DevExpress.XtraEditors.XtraMessageBox.Show("用户参数编辑失败!");
  107. }
  108. else
  109. {
  110. DevExpress.XtraEditors.XtraMessageBox.Show("用户参数编辑成功!");
  111. this.Close();
  112. }
  113. }
  114. catch (Exception ex)
  115. {
  116. DevExpress.XtraEditors.XtraMessageBox.Show("保存用户参数相关信息失败。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  117. LogHelper.log.Error(string.Format("保存用户参数相关信息出现错误:{0}", ex));
  118. }
  119. }
  120. /// <summary>
  121. /// 验证输入的值的类型
  122. /// </summary>
  123. /// <returns></returns>
  124. private bool ParameterTypeValidation()
  125. {
  126. int paraType = Convert.ToInt32(this.lookUpEditParaType.EditValue);
  127. bool bOK = false;
  128. switch (paraType)
  129. {
  130. case 0:
  131. bOK = true;
  132. break;
  133. case 1:
  134. bOK = TypeValidation.IsNumerical(this.textEditParaValue.EditValue.ToString());
  135. break;
  136. case 2:
  137. bOK = TypeValidation.IsInteger(this.textEditParaValue.EditValue.ToString());
  138. break;
  139. case 3:
  140. bOK = TypeValidation.IsTime(this.textEditParaValue.EditValue.ToString());
  141. break;
  142. case 4:
  143. bOK = TypeValidation.IsDate(this.textEditParaValue.EditValue.ToString());
  144. break;
  145. default:
  146. bOK = true;
  147. break;
  148. }
  149. if (!bOK)
  150. {
  151. DevExpress.XtraEditors.XtraMessageBox.Show("输入的值的类型不符合取值条件!");
  152. return false;
  153. }
  154. return true;
  155. }
  156. /// <summary>
  157. /// 验证输入的值
  158. /// </summary>
  159. /// <returns></returns>
  160. private bool ParameterDataValidation()
  161. {
  162. int paraType = Convert.ToInt32(this.lookUpEditParaType.EditValue);
  163. int paraCondition = Convert.ToInt32(this.lookUpEditCondition.EditValue);
  164. bool bOK = false;
  165. switch (paraCondition)
  166. {
  167. case 1: //介于
  168. {
  169. if (paraType == 1)//数值比较
  170. {
  171. if ( Convert.ToDecimal(this.textEditParaValue.Text) >= Convert.ToDecimal(this.textEditStart.Text) &&
  172. Convert.ToDecimal(this.textEditParaValue.Text) <= Convert.ToDecimal(this.textEditEnd.Text))
  173. {
  174. bOK = true;
  175. }
  176. }
  177. else if (paraType == 2)//整型比较
  178. {
  179. if (Convert.ToInt32(this.textEditParaValue.Text) >= Convert.ToInt32(this.textEditStart.Text) &&
  180. Convert.ToInt32(this.textEditParaValue.Text) <= Convert.ToInt32(this.textEditEnd.Text))
  181. {
  182. bOK = true;
  183. }
  184. }
  185. else //时间和日期比较
  186. {
  187. if ((0 <= this.textEditParaValue.EditValue.ToString().CompareTo(this.textEditStart.EditValue.ToString())) &&
  188. (0 >= this.textEditParaValue.EditValue.ToString().CompareTo(this.textEditEnd.EditValue.ToString())))
  189. {
  190. bOK = true;
  191. }
  192. }
  193. break;
  194. }
  195. case 2: //未介于
  196. {
  197. if (paraType == 1)//数值比较
  198. {
  199. if (Convert.ToDecimal(this.textEditParaValue.Text) < Convert.ToDecimal(this.textEditStart.Text) ||
  200. Convert.ToDecimal(this.textEditParaValue.Text) > Convert.ToDecimal(this.textEditEnd.Text))
  201. {
  202. bOK = true;
  203. }
  204. }
  205. else if (paraType == 2)//整型比较
  206. {
  207. if (Convert.ToInt32(this.textEditParaValue.Text) < Convert.ToInt32(this.textEditStart.Text) ||
  208. Convert.ToInt32(this.textEditParaValue.Text) > Convert.ToInt32(this.textEditEnd.Text))
  209. {
  210. bOK = true;
  211. }
  212. }
  213. else //时间和日期比较
  214. {
  215. if (0 > this.textEditParaValue.EditValue.ToString().CompareTo(this.textEditStart.EditValue.ToString()) ||
  216. 0 < this.textEditParaValue.EditValue.ToString().CompareTo(this.textEditEnd.EditValue.ToString()))
  217. {
  218. bOK = true;
  219. }
  220. }
  221. break;
  222. }
  223. case 3: //等于
  224. {
  225. if (this.textEditParaValue.EditValue.Equals(this.textEditStart.EditValue))
  226. {
  227. bOK = true;
  228. }
  229. break;
  230. }
  231. case 4: //不等于
  232. {
  233. if (!this.textEditParaValue.EditValue.Equals(this.textEditStart.EditValue))
  234. {
  235. bOK = true;
  236. }
  237. break;
  238. }
  239. case 5: //大于
  240. {
  241. if (paraType == 1)//数值比较
  242. {
  243. if (Convert.ToDecimal(this.textEditParaValue.Text) > Convert.ToDecimal(this.textEditStart.Text) )
  244. {
  245. bOK = true;
  246. }
  247. }
  248. else if (paraType == 2)//整型比较
  249. {
  250. if (Convert.ToInt32(this.textEditParaValue.Text) > Convert.ToInt32(this.textEditStart.Text) )
  251. {
  252. bOK = true;
  253. }
  254. }
  255. else //时间和日期比较
  256. {
  257. if (0 < this.textEditParaValue.EditValue.ToString().CompareTo(this.textEditStart.EditValue.ToString()))
  258. {
  259. bOK = true;
  260. }
  261. }
  262. break;
  263. }
  264. case 6: //大于等于
  265. {
  266. if (paraType == 1)//数值比较
  267. {
  268. if (Convert.ToDecimal(this.textEditParaValue.Text) >= Convert.ToDecimal(this.textEditStart.Text))
  269. {
  270. bOK = true;
  271. }
  272. }
  273. else if (paraType == 2)//整型比较
  274. {
  275. if (Convert.ToInt32(this.textEditParaValue.Text) >= Convert.ToInt32(this.textEditStart.Text))
  276. {
  277. bOK = true;
  278. }
  279. }
  280. else //时间和日期比较
  281. {
  282. if (0 <= this.textEditParaValue.EditValue.ToString().CompareTo(this.textEditStart.EditValue.ToString()))
  283. {
  284. bOK = true;
  285. }
  286. }
  287. break;
  288. }
  289. case 7: //小于
  290. {
  291. if (paraType == 1)//数值比较
  292. {
  293. if (Convert.ToDecimal(this.textEditParaValue.Text) < Convert.ToDecimal(this.textEditEnd.Text))
  294. {
  295. bOK = true;
  296. }
  297. }
  298. else if (paraType == 2)//整型比较
  299. {
  300. if (Convert.ToInt32(this.textEditParaValue.Text) < Convert.ToInt32(this.textEditEnd.Text))
  301. {
  302. bOK = true;
  303. }
  304. }
  305. else //时间和日期比较
  306. {
  307. if (0 > this.textEditParaValue.EditValue.ToString().CompareTo(this.textEditEnd.EditValue.ToString()))
  308. {
  309. bOK = true;
  310. }
  311. }
  312. break;
  313. }
  314. case 8: //小于等于
  315. {
  316. if (paraType == 1)//数值比较
  317. {
  318. if (Convert.ToDecimal(this.textEditParaValue.Text) <= Convert.ToDecimal(this.textEditEnd.Text))
  319. {
  320. bOK = true;
  321. }
  322. }
  323. else if (paraType == 2)//整型比较
  324. {
  325. if (Convert.ToInt32(this.textEditParaValue.Text) <= Convert.ToInt32(this.textEditEnd.Text))
  326. {
  327. bOK = true;
  328. }
  329. }
  330. else //时间和日期比较
  331. {
  332. if (0 >= this.textEditParaValue.EditValue.ToString().CompareTo(this.textEditEnd.EditValue.ToString()))
  333. {
  334. bOK = true;
  335. }
  336. }
  337. break;
  338. }
  339. default:
  340. bOK = true;
  341. break;
  342. }
  343. if (!bOK)
  344. {
  345. DevExpress.XtraEditors.XtraMessageBox.Show("输入的值不符合取值范围!");
  346. return false;
  347. }
  348. return true;
  349. }
  350. /// <summary>
  351. /// 参数值的类型改变
  352. /// </summary>
  353. /// <param name="sender"></param>
  354. /// <param name="e"></param>
  355. private void lookUpEditParaType_EditValueChanged(object sender, EventArgs e)
  356. {
  357. if (this.lookUpEditParaType.EditValue != null && !string.IsNullOrEmpty(this.lookUpEditParaType.EditValue.ToString()))
  358. {
  359. this.lookUpEditCondition.EditValue = null;
  360. this.lookUpEditCondition.ItemIndex = -1;
  361. int paraType = Convert.ToInt32(this.lookUpEditParaType.EditValue);
  362. switch (paraType)
  363. {
  364. case 0:
  365. this.lookUpEditCondition.Enabled = false;
  366. this.layoutControlItemMin.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
  367. this.layoutControlItemMax.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
  368. this.textEditParaValue.Properties.NullValuePromptShowForEmptyValue = true;
  369. this.textEditParaValue.Properties.NullValuePrompt = "请输入文本";
  370. break;
  371. case 1:
  372. this.lookUpEditCondition.Enabled = true;
  373. this.layoutControlItemMin.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
  374. this.layoutControlItemMin.Text = "最小值(*):";
  375. this.layoutControlItemMax.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
  376. this.layoutControlItemMax.Text = "最大值(*):";
  377. this.textEditStart.Properties.NullValuePromptShowForEmptyValue = true;
  378. this.textEditStart.Properties.NullValuePrompt = "请输入小于3位小数的数值";
  379. this.textEditEnd.Properties.NullValuePromptShowForEmptyValue = true;
  380. this.textEditEnd.Properties.NullValuePrompt = "请输入小于3位小数的数值";
  381. this.textEditParaValue.Properties.NullValuePromptShowForEmptyValue = true;
  382. this.textEditParaValue.Properties.NullValuePrompt = "请输入小于3位小数的数值";
  383. break;
  384. case 2:
  385. this.lookUpEditCondition.Enabled = true;
  386. this.layoutControlItemMin.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
  387. this.layoutControlItemMin.Text = "最小值(*):";
  388. this.layoutControlItemMax.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
  389. this.layoutControlItemMax.Text = "最大值(*):";
  390. this.textEditStart.Properties.NullValuePromptShowForEmptyValue = true;
  391. this.textEditStart.Properties.NullValuePrompt = "请输入整数";
  392. this.textEditEnd.Properties.NullValuePromptShowForEmptyValue = true;
  393. this.textEditEnd.Properties.NullValuePrompt = "请输入整数";
  394. this.textEditParaValue.Properties.NullValuePromptShowForEmptyValue = true;
  395. this.textEditParaValue.Properties.NullValuePrompt = "请输入整数";
  396. break;
  397. case 3:
  398. this.lookUpEditCondition.Enabled = true;
  399. this.layoutControlItemMin.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
  400. this.layoutControlItemMin.Text = "开始时间(*):";
  401. this.layoutControlItemMax.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
  402. this.layoutControlItemMax.Text = "结束时间(*):";
  403. this.textEditStart.Properties.NullValuePromptShowForEmptyValue = true;
  404. this.textEditStart.Properties.NullValuePrompt = "00:00:00";
  405. this.textEditEnd.Properties.NullValuePromptShowForEmptyValue = true;
  406. this.textEditEnd.Properties.NullValuePrompt = "00:00:00";
  407. this.textEditParaValue.Properties.NullValuePromptShowForEmptyValue = true;
  408. this.textEditParaValue.Properties.NullValuePrompt = "00:00:00";
  409. break;
  410. case 4:
  411. this.lookUpEditCondition.Enabled = true;
  412. this.layoutControlItemMin.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
  413. this.layoutControlItemMin.Text = "开始日期(*):";
  414. this.layoutControlItemMax.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
  415. this.layoutControlItemMax.Text = "结束日期(*):";
  416. this.textEditStart.Properties.NullValuePromptShowForEmptyValue = true;
  417. this.textEditStart.Properties.NullValuePrompt = "0000/00/00";
  418. this.textEditEnd.Properties.NullValuePromptShowForEmptyValue = true;
  419. this.textEditEnd.Properties.NullValuePrompt = "0000/00/00";
  420. this.textEditParaValue.Properties.NullValuePromptShowForEmptyValue = true;
  421. this.textEditParaValue.Properties.NullValuePrompt = "0000/00/00";
  422. break;
  423. default:
  424. break;
  425. }
  426. }
  427. }
  428. /// <summary>
  429. /// 取值条件改变
  430. /// </summary>
  431. /// <param name="sender"></param>
  432. /// <param name="e"></param>
  433. private void lookUpEditCondition_EditValueChanged(object sender, EventArgs e)
  434. {
  435. if (this.lookUpEditCondition.EditValue != null && !string.IsNullOrEmpty(this.lookUpEditCondition.EditValue.ToString()))
  436. {
  437. int paraType = Convert.ToInt32(this.lookUpEditCondition.EditValue);
  438. switch (paraType)
  439. {
  440. case 1:
  441. this.layoutControlItemMin.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
  442. this.layoutControlItemMax.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
  443. break;
  444. case 2:
  445. this.layoutControlItemMin.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
  446. this.layoutControlItemMax.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
  447. break;
  448. case 3:
  449. case 4:
  450. case 5:
  451. case 6:
  452. this.layoutControlItemMin.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
  453. this.layoutControlItemMax.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
  454. break;
  455. case 7:
  456. case 8:
  457. this.layoutControlItemMin.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
  458. this.layoutControlItemMax.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
  459. break;
  460. default:
  461. break;
  462. }
  463. }
  464. }
  465. /// <summary>
  466. /// 验证必填项是否为空
  467. /// </summary>
  468. /// <returns></returns>
  469. private bool Validation()
  470. {
  471. if (string.IsNullOrEmpty(this.textEditParaName.Text) )
  472. {
  473. DevExpress.XtraEditors.XtraMessageBox.Show("请先输入用户参数名称!");
  474. return false;
  475. }
  476. //if ( this.dateEditPara.EditValue == null || string.IsNullOrEmpty(this.dateEditPara.Text))
  477. //{
  478. // DevExpress.XtraEditors.XtraMessageBox.Show("请先选择生效日期!");
  479. // return false;
  480. //}
  481. //if (this.lookUpEditParaType.EditValue == null || string.IsNullOrEmpty(this.lookUpEditParaType.EditValue.ToString()))
  482. //{
  483. // DevExpress.XtraEditors.XtraMessageBox.Show("请先选择用户参数值类型!");
  484. // return false;
  485. //}
  486. //int paraType = Convert.ToInt32(this.lookUpEditParaType.EditValue);
  487. //if (paraType != 0 && this.lookUpEditCondition.EditValue == null)
  488. //{
  489. // DevExpress.XtraEditors.XtraMessageBox.Show("请先选择用户参数值范围取值条件!");
  490. // return false;
  491. //}
  492. //if (this.layoutControlItemMin.Visible)
  493. //{
  494. // int index = this.layoutControlItemMin.Text.IndexOf("*");
  495. // string str = this.layoutControlItemMin.Text.Substring(0,index -1 );
  496. // if (string.IsNullOrEmpty(this.textEditStart.Text))
  497. // {
  498. // DevExpress.XtraEditors.XtraMessageBox.Show(string.Format("请先输入{0}!", str));
  499. // return false;
  500. // }
  501. //}
  502. //if (this.layoutControlItemMax.Visible)
  503. //{
  504. // int index = this.layoutControlItemMax.Text.IndexOf("*");
  505. // string str = this.layoutControlItemMax.Text.Substring(0, index - 1);
  506. // if (string.IsNullOrEmpty(this.textEditEnd.Text))
  507. // {
  508. // DevExpress.XtraEditors.XtraMessageBox.Show(string.Format("请先输入{0}!", str));
  509. // return false;
  510. // }
  511. //}
  512. if (string.IsNullOrEmpty(this.textEditParaValue.Text))
  513. {
  514. DevExpress.XtraEditors.XtraMessageBox.Show("请先输入参数值!");
  515. return false;
  516. }
  517. if (string.IsNullOrEmpty(this.textEditParaUnit.Text))
  518. {
  519. DevExpress.XtraEditors.XtraMessageBox.Show("请先输入参数单位!");
  520. return false;
  521. }
  522. return true;
  523. }
  524. }
  525. }