FormEditUserParameter.cs 25 KB

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