FrmOrgBudget.cs 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Data;
  6. using System.Drawing;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Windows.Forms;
  10. using com.hnshituo.pur.vo;
  11. using Core.Mes.Client.Comm.Control;
  12. using Core.Mes.Client.Comm.Server;
  13. using Core.Mes.Client.Comm.Tool;
  14. using CoreFS.CA06;using Pur.Entity;
  15. using Infragistics.Win;
  16. using Infragistics.Win.UltraWinEditors;
  17. using Infragistics.Win.UltraWinGrid;
  18. using CoreFS.SF01;
  19. using Pur.Pop_upWindow;
  20. namespace Pur.configure
  21. {
  22. public partial class FrmOrgBudget : FrmPmsBase
  23. {
  24. public FrmOrgBudget()
  25. {
  26. InitializeComponent();
  27. }
  28. private void FrmOrgBudget_Load(object sender, EventArgs e)
  29. {
  30. Init();
  31. Query(true);
  32. }
  33. string errMsg = "";
  34. public List<CoreAppDepartment> _dtOrg = new List<CoreAppDepartment>();
  35. DataTable dt1;//部门信息
  36. #region toolbar工具栏
  37. /// <summary>
  38. /// toolbar
  39. /// </summary>
  40. /// <param name="sender"></param>
  41. /// <param name="ToolbarKey"></param>
  42. public override void ToolBar_Click(object sender, string ToolbarKey)
  43. {
  44. switch (ToolbarKey)
  45. {
  46. case "Query":
  47. Query(true);
  48. break;
  49. case "Query1":
  50. Query(false);
  51. break;
  52. case "Save":
  53. DoSave();
  54. break;
  55. case "Delete":
  56. DeleteOrResume(true);
  57. break;
  58. case "Resume":
  59. DeleteOrResume(false);
  60. break;
  61. case "Refresh":
  62. Init();
  63. break;
  64. case "Export":
  65. GridHelper.ulGridToExcel(ultraGrid1, "部门预算管理数据");
  66. break;
  67. case "Close":
  68. this.Close();
  69. break;
  70. case "Copy":
  71. CopyData();
  72. break;
  73. }
  74. }
  75. #endregion
  76. #region toolbar事件
  77. /// <summary>
  78. /// 查询
  79. /// </summary>
  80. /// <param name="Tips"></param>
  81. private void Query(bool Tips)
  82. {
  83. try
  84. {
  85. this.Cursor = Cursors.WaitCursor;
  86. String strDept = QdepartName.Text.ToString().Trim();
  87. String strYear = Qyear.Text.ToString().Trim();
  88. ConfigureOrgBudget bdg = new ConfigureOrgBudget();
  89. bdg.Departname = strDept;
  90. bdg.Year = strYear;
  91. bdg.Validflag = "1";
  92. if (Tips.Equals(false))
  93. {
  94. bdg.Validflag = "";
  95. }
  96. DataTable dt = this.execute<DataTable>("com.hnshituo.pur.configure.service.ConfigureOrgBudgetService", "doQuery", new object[] { bdg });
  97. if (dt != null)
  98. {
  99. GridHelper.CopyDataToDatatable(ref dt, ref dataTable1, true);
  100. }
  101. foreach (UltraGridRow rows in ultraGrid1.Rows)
  102. {
  103. if (rows.GetCellValue("validflag").ToString() == "无效")
  104. {
  105. rows.Appearance.ForeColor = Color.Red;
  106. }
  107. }
  108. }
  109. catch (Exception ex)
  110. {
  111. MessageUtil.ShowError("加载数据失败;" + ex);
  112. }
  113. finally
  114. {
  115. this.Cursor = Cursors.Default;
  116. }
  117. }
  118. /// <summary>
  119. /// 作废和恢复
  120. /// </summary>
  121. /// <param name="tips"></param>
  122. private void DeleteOrResume(bool tips)
  123. {
  124. ultraGrid1.UpdateData();
  125. int i = 0;
  126. ArrayList list = new ArrayList();
  127. //作废
  128. if(tips==true)
  129. {
  130. foreach (UltraGridRow row in ultraGrid1.Rows)
  131. {
  132. if (Convert.ToBoolean(row.Cells["CHK"].Value))
  133. {
  134. i++;
  135. ConfigureOrgBudget res = new ConfigureOrgBudget();
  136. String strId=row.Cells["ID"].Value.ToString().Trim();
  137. String strValidFlag = "0";
  138. res.Id = strId;
  139. res.Validflag = strValidFlag;
  140. res.DeleteName = UserInfo.GetUserName();
  141. res.DeleteTime = new DateTime();
  142. res.DeleteUserid = UserInfo.GetUserID();
  143. list.Add(res);
  144. }
  145. }
  146. if (i == 0)
  147. {
  148. MessageUtil.ShowWarning("请选择需要操作的记录!");
  149. return;
  150. }
  151. if (MessageBox.Show("是否确认作废数据?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  152. return;
  153. CoreResult re = this.execute<CoreResult>("com.hnshituo.pur.configure.service.ConfigureOrgBudgetService", "doDeleteOrResume", new object[] { list, 0, 0 });
  154. if (re.Resultcode == 0)
  155. {
  156. MessageUtil.ShowTips("操作成功!");
  157. Query(true);
  158. ConfigureOrgBudget strbdg = (ConfigureOrgBudget)list[0];
  159. string stroldId = strbdg.Id;
  160. ConfigureClassCommon.doActiveSelRow(ultraGrid1, "ID", stroldId);
  161. }
  162. else
  163. {
  164. MessageUtil.ShowTips("操作失败:" + re.Resultmsg);
  165. }
  166. }
  167. //恢复
  168. if(tips==false)
  169. {
  170. foreach (UltraGridRow row in ultraGrid1.Rows)
  171. {
  172. if (Convert.ToBoolean(row.Cells["CHK"].Value))
  173. {
  174. i++;
  175. ConfigureOrgBudget res = new ConfigureOrgBudget();
  176. String strId = row.Cells["ID"].Value.ToString().Trim();
  177. String strValidFlag = "1";
  178. res.Id = strId;
  179. res.Validflag = strValidFlag;
  180. res.UpdateName = UserInfo.GetUserName();
  181. res.UpdateTime = new DateTime();
  182. res.UpdateUserid = UserInfo.GetUserID();
  183. list.Add(res);
  184. }
  185. }
  186. if (i == 0)
  187. {
  188. MessageUtil.ShowWarning("请选择需要操作的记录!");
  189. return;
  190. }
  191. if (MessageBox.Show("是否确认恢复数据?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  192. return;
  193. CoreResult re = this.execute<CoreResult>("com.hnshituo.pur.configure.service.ConfigureOrgBudgetService", "doDeleteOrResume", new object[] { list, 0, 0 });
  194. if (re.Resultcode == 0)
  195. {
  196. MessageUtil.ShowTips("操作成功!");
  197. Query(true);
  198. ConfigureOrgBudget strbdg = (ConfigureOrgBudget)list[0];
  199. string stroldId = strbdg.Id;
  200. ConfigureClassCommon.doActiveSelRow(ultraGrid1, "ID", stroldId);
  201. }
  202. else
  203. {
  204. MessageUtil.ShowTips("操作失败:" + re.Resultmsg);
  205. }
  206. }
  207. }
  208. /// <summary>
  209. /// 保存
  210. /// </summary>
  211. private void DoSave()
  212. {
  213. try
  214. {
  215. ultraGrid1.UpdateData();
  216. int i = 0;
  217. ArrayList list = new ArrayList();
  218. foreach (UltraGridRow row in ultraGrid1.Rows)
  219. {
  220. if (Convert.ToBoolean(row.Cells["CHK"].Value))
  221. {
  222. i++;
  223. ConfigureOrgBudget res = new ConfigureOrgBudget();
  224. String strId=row.Cells["ID"].Value.ToString().Trim();
  225. String strDEPARTID = row.Cells["DEPARTID"].Value.ToString().Trim();
  226. String strDEPARTNAME = row.Cells["DEPARTNAME"].Value.ToString().Trim();
  227. String strYEAR = row.Cells["YEAR"].Value.ToString().Trim();
  228. String strM1 = row.Cells["M1"].Value.ToString().Trim() == "" ? "0" : row.Cells["M1"].Value.ToString().Trim();
  229. String strM2 = row.Cells["M2"].Value.ToString().Trim() == "" ? "0" : row.Cells["M2"].Value.ToString().Trim();
  230. String strM3 = row.Cells["M3"].Value.ToString().Trim() == "" ? "0" : row.Cells["M3"].Value.ToString().Trim();
  231. String strM4 = row.Cells["M4"].Value.ToString().Trim() == "" ? "0" : row.Cells["M4"].Value.ToString().Trim();
  232. String strM5 = row.Cells["M5"].Value.ToString().Trim() == "" ? "0" : row.Cells["M5"].Value.ToString().Trim();
  233. String strM6 = row.Cells["M6"].Value.ToString().Trim() == "" ? "0" : row.Cells["M6"].Value.ToString().Trim();
  234. String strM7 = row.Cells["M7"].Value.ToString().Trim() == "" ? "0" : row.Cells["M7"].Value.ToString().Trim();
  235. String strM8 = row.Cells["M8"].Value.ToString().Trim() == "" ? "0" : row.Cells["M8"].Value.ToString().Trim();
  236. String strM9 = row.Cells["M9"].Value.ToString().Trim() == "" ? "0" : row.Cells["M9"].Value.ToString().Trim();
  237. String strM10 = row.Cells["M10"].Value.ToString().Trim() == "" ? "0" : row.Cells["M10"].Value.ToString().Trim();
  238. String strM11 = row.Cells["M11"].Value.ToString().Trim() == "" ? "0" : row.Cells["M11"].Value.ToString().Trim();
  239. String strM12 = row.Cells["M12"].Value.ToString().Trim() == "" ? "0" : row.Cells["M12"].Value.ToString().Trim();
  240. String strREMARK = row.Cells["REMARK"].Value.ToString().Trim();
  241. String strValidFlag = row.Cells["VALIDFLAG"].Value.ToString().Trim();
  242. res.Id = strId;
  243. res.Departid = strDEPARTID;
  244. res.Departname = strDEPARTNAME;
  245. res.Year = strYEAR;
  246. res.M1 = Convert.ToDouble(strM1);
  247. res.M2 = Convert.ToDouble(strM2);
  248. res.M3 = Convert.ToDouble(strM3);
  249. res.M4 = Convert.ToDouble(strM4);
  250. res.M5 = Convert.ToDouble(strM5);
  251. res.M6 = Convert.ToDouble(strM6);
  252. res.M7 = Convert.ToDouble(strM7);
  253. res.M8 = Convert.ToDouble(strM8);
  254. res.M9 = Convert.ToDouble(strM9);
  255. res.M10 = Convert.ToDouble(strM10);
  256. res.M11 = Convert.ToDouble(strM11);
  257. res.M12 = Convert.ToDouble(strM12);
  258. res.Remark = strREMARK;
  259. res.Validflag = strValidFlag;
  260. if (res == null)
  261. return;
  262. if (!TestData(res))
  263. {
  264. MessageUtil.ShowWarning(errMsg);
  265. return;
  266. }
  267. if (res.Validflag.Equals("") || res.Id.Equals(""))
  268. {
  269. res.CreateName = UserInfo.GetUserName();
  270. res.CreateTime = DateTime.Now;
  271. res.CreateUserid = UserInfo.GetUserID();
  272. }
  273. else
  274. {
  275. res.UpdateName = UserInfo.GetUserName();
  276. res.UpdateTime = DateTime.Now;
  277. res.UpdateUserid = UserInfo.GetUserID();
  278. }
  279. list.Add(res);
  280. }
  281. }
  282. if (i == 0)
  283. {
  284. MessageUtil.ShowWarning("请选择需要操作的记录!");
  285. return;
  286. }
  287. if (MessageBox.Show("是否确认保存选择的:"+list.Count+"条数据?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  288. return;
  289. CoreResult re = this.execute<CoreResult>("com.hnshituo.pur.configure.service.ConfigureOrgBudgetService", "doSave", new object[] { list, 0, 0 });
  290. if (re.Resultcode == 0)
  291. {
  292. MessageUtil.ShowTips("数据保存成功!");
  293. Query(true);
  294. ConfigureOrgBudget strbdg = (ConfigureOrgBudget)list[0];
  295. string stroldId = strbdg.Id;
  296. ConfigureClassCommon.doActiveSelRow(ultraGrid1, "ID", stroldId);
  297. }
  298. else
  299. {
  300. MessageUtil.ShowTips("保存失败:" + re.Resultmsg);
  301. }
  302. }
  303. catch (Exception ex)
  304. {
  305. MessageUtil.ShowError("保存失败:"+ex);
  306. }
  307. }
  308. /// <summary>
  309. /// 复制旧数据到指定年份
  310. /// </summary>
  311. private void CopyData()//复制旧数据
  312. {
  313. try
  314. {
  315. //不能有重复的部门
  316. //不能有指定年份的数据
  317. ultraGrid1.UpdateData();
  318. int i = 0;
  319. ArrayList list = new ArrayList();
  320. foreach (UltraGridRow row in ultraGrid1.Rows)
  321. {
  322. if (Convert.ToBoolean(row.Cells["CHK"].Value))
  323. {
  324. i++;
  325. ConfigureOrgBudget res = new ConfigureOrgBudget();
  326. String strId = row.Cells["ID"].Value.ToString().Trim();
  327. String strYEAR = row.Cells["YEAR"].Value.ToString().Trim();
  328. if (String.IsNullOrEmpty(strId) || String.IsNullOrEmpty(strYEAR))
  329. {
  330. continue;
  331. }
  332. res.Id = strId;
  333. res.Year = strYEAR;
  334. if (res == null)
  335. return;
  336. if (res.Year.Equals("") || res.Id.Equals(""))
  337. {
  338. continue;
  339. }
  340. else
  341. {
  342. res.UpdateName = UserInfo.GetUserName();
  343. res.UpdateTime = DateTime.Now;
  344. res.UpdateUserid = UserInfo.GetUserID();
  345. }
  346. list.Add(res);
  347. }
  348. }
  349. if (i == 0)
  350. {
  351. MessageUtil.ShowWarning("请选择需要操作的记录!");
  352. return;
  353. }
  354. FrmPopCopyBudgetData frm = new FrmPopCopyBudgetData(this.ob, list,"1");
  355. frm.ShowDialog();
  356. if (frm.Tips == "1")
  357. {
  358. Query(true);
  359. }
  360. //CoreResult re = this.execute<CoreResult>("com.hnshituo.pur.configure.service.ConfigureOrgBudgetService", "doSave", new object[] { list, 0, 0 });
  361. //if (re.Resultcode == 0)
  362. //{
  363. // MessageUtil.ShowTips("数据保存成功!");
  364. // Query(true);
  365. // ConfigureOrgBudget strbdg = (ConfigureOrgBudget)list[0];
  366. // string stroldId = strbdg.Id;
  367. // ConfigureClassCommon.doActiveSelRow(ultraGrid1, "ID", stroldId);
  368. //}
  369. //else
  370. //{
  371. // MessageUtil.ShowTips("保存失败:" + re.Resultmsg);
  372. //}
  373. }
  374. catch (Exception ex)
  375. {
  376. MessageUtil.ShowError("保存失败:" + ex);
  377. }
  378. }
  379. #endregion
  380. #region 界面初始化
  381. /// <summary>
  382. /// 初始化控件数据
  383. /// </summary>
  384. private void Init()
  385. {
  386. //绑定年份数据
  387. DataTable dt1 = new DataTable();
  388. dt1.Columns.Add("YEAR", Type.GetType("System.Int32"));
  389. for (int i = DateTime.Now.AddYears(-3).Year; i <= DateTime.Now.AddYears(3).Year; i++)
  390. dt1.Rows.Add(new object[] { i });
  391. Qyear.DataSource = dt1;
  392. Qyear.ValueMember = "YEAR";
  393. Qyear.DisplayMember = "YEAR";
  394. Qyear.Value = DateTime.Now.Year.ToString();
  395. UltraComboEditor uce = new UltraComboEditor();
  396. DataTable dt = new DataTable();
  397. dt.Columns.Add("YEAR", Type.GetType("System.Int32"));
  398. for (int i = DateTime.Now.AddYears(-3).Year; i <= DateTime.Now.AddYears(10).Year; i++)
  399. dt.Rows.Add(new object[] { i });
  400. uce.DataSource = dt;
  401. uce.ValueMember = "YEAR";
  402. uce.DisplayMember = "YEAR";
  403. this.Controls.Add(uce);
  404. uce.Visible = false;
  405. ultraGrid1.DisplayLayout.Bands[0].Columns["YEAR"].EditorComponent = uce;
  406. ultraGrid1.DisplayLayout.Bands[0].Columns["YEAR"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  407. //ultraGrid1.DisplayLayout.Bands[0].Columns["YEAR"].AutoCompleteMode = Infragistics.Win.AutoCompleteMode.Suggest;
  408. //绑定部门数据
  409. //this._dtOrg = this.execute<List<CoreAppDepartment>>("com.hnshituo.core.service.AppDepartmentService", "findAll", new object[] { });
  410. //FillTreeData(this._dtOrg);
  411. //this.cmbDept.DataSource = this._dtOrg;
  412. //this.cmbDept.DisplayMember = "Departname";
  413. //this.cmbDept.ValueMember = "Departid";
  414. //List<CoreAppDepartment> list1 = UserInfo.DataPurview;
  415. ////string[] str = UserInfo.DataPurviewIds;
  416. //this.cmbDept.AddControl(this.treeView4Combo1);
  417. //this.cmbDept.LoadChildControl1();
  418. //UltraComboEditor org = new UltraComboEditor();
  419. //dt1 = this.execute<DataTable>("com.hnshituo.core.service.AppDepartmentService", "findAll", new object[] { });
  420. ////QcmBaseCommon.InitDrop(uceSale, "com.steering.pss.qcm.CoreResBaseResourceAllocation.getSaleOrg", "BASENAME", "BASECODE", true, this.ob);
  421. //FillComboxItems(org, dt1, "DEPARTID", "DEPARTNAME", "");
  422. //this.Controls.Add(org);
  423. //org.Visible = false;
  424. //ClsBaseInfo.SetComboItemHeight(org);
  425. txt_selectDept.Visible = false;
  426. ultraGrid1.DisplayLayout.Bands[0].Columns["DEPARTNAME"].EditorComponent = txt_selectDept;
  427. //ultraGrid1.DisplayLayout.Bands[0].Columns["DEPARTID"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  428. //ultraGrid1.DisplayLayout.Bands[0].Columns["DEPARTID"].AutoCompleteMode = Infragistics.Win.AutoCompleteMode.Suggest;
  429. //设置界面不可编辑列
  430. SetColumnsActive(ultraGrid1.DisplayLayout.Bands[0], new string[] {"DEPARTID","ID", "VALIDFLAG", "CREATENAME", "CREATETIME", "CREATEUSERID" });
  431. }
  432. #endregion
  433. #region 公共函数
  434. /// <summary>
  435. /// 校验保存填写数据是否满足要求
  436. /// </summary>
  437. /// <param name="res"></param>
  438. /// <returns></returns>
  439. private bool TestData(ConfigureOrgBudget res)
  440. {
  441. try
  442. {
  443. if (res.Validflag.ToString() != "" && res.Validflag.ToString() != "有效")
  444. {
  445. errMsg = "无效数据无法保存!";
  446. return false;
  447. }
  448. if (res.Departid.ToString().Trim() == "")
  449. {
  450. errMsg = "请选择部门信息,未获取到有效的部门ID!";
  451. return false;
  452. }
  453. if (res.Departname.ToString().Trim() == "")
  454. {
  455. errMsg = "请选择部门信息,部门名称不能为空!";
  456. return false;
  457. }
  458. if (res.Year.ToString() == "")
  459. {
  460. errMsg = "请选择年份!";
  461. return false;
  462. }
  463. if (!IsNum(res.M1.ToString()))
  464. {
  465. errMsg = "1月预算请输入数字!";
  466. return false;
  467. }
  468. if(isrightRange(res.M1.ToString())==false)
  469. {
  470. errMsg = "1月" + errMsg;
  471. return false;
  472. }
  473. if (!IsNum(res.M2.ToString()))
  474. {
  475. errMsg = "2月预算请输入数字!";
  476. return false;
  477. }
  478. if (isrightRange(res.M2.ToString()) == false)
  479. {
  480. errMsg = "2月" + errMsg;
  481. return false;
  482. }
  483. if (!IsNum(res.M3.ToString()))
  484. {
  485. errMsg = "3月预算请输入数字!";
  486. return false;
  487. }
  488. if (isrightRange(res.M3.ToString()) == false)
  489. {
  490. errMsg = "3月" + errMsg;
  491. return false;
  492. }
  493. if (!IsNum(res.M4.ToString()))
  494. {
  495. errMsg = "4月预算请输入数字!";
  496. return false;
  497. }
  498. if (isrightRange(res.M4.ToString()) == false)
  499. {
  500. errMsg = "4月" + errMsg;
  501. return false;
  502. }
  503. if (!IsNum(res.M5.ToString()))
  504. {
  505. errMsg = "5月预算请输入数字!";
  506. return false;
  507. }
  508. if (isrightRange(res.M5.ToString()) == false)
  509. {
  510. errMsg = "5月" + errMsg;
  511. return false;
  512. }
  513. if (!IsNum(res.M6.ToString()))
  514. {
  515. errMsg = "6月预算请输入数字!";
  516. return false;
  517. }
  518. if (isrightRange(res.M6.ToString()) == false)
  519. {
  520. errMsg = "6月" + errMsg;
  521. return false;
  522. }
  523. if (!IsNum(res.M7.ToString()))
  524. {
  525. errMsg = "7月预算请输入数字!";
  526. return false;
  527. }
  528. if (isrightRange(res.M7.ToString()) == false)
  529. {
  530. errMsg = "7月" + errMsg;
  531. return false;
  532. }
  533. if (!IsNum(res.M8.ToString()))
  534. {
  535. errMsg = "8月预算请输入数字!";
  536. return false;
  537. }
  538. if (isrightRange(res.M8.ToString()) == false)
  539. {
  540. errMsg = "8月" + errMsg;
  541. return false;
  542. }
  543. if (!IsNum(res.M9.ToString()))
  544. {
  545. errMsg = "9月预算请输入数字!";
  546. return false;
  547. }
  548. if (isrightRange(res.M9.ToString()) == false)
  549. {
  550. errMsg = "9月" + errMsg;
  551. return false;
  552. }
  553. if (!IsNum(res.M10.ToString()))
  554. {
  555. errMsg = "10月预算请输入数字!";
  556. return false;
  557. }
  558. if (isrightRange(res.M10.ToString()) == false)
  559. {
  560. errMsg = "10月" + errMsg;
  561. return false;
  562. }
  563. if (!IsNum(res.M11.ToString()))
  564. {
  565. errMsg = "11月预算请输入数字!";
  566. return false;
  567. }
  568. if (isrightRange(res.M11.ToString()) == false)
  569. {
  570. errMsg = "11月" + errMsg;
  571. return false;
  572. }
  573. if (!IsNum(res.M12.ToString()))
  574. {
  575. errMsg = "12月预算请输入数字!";
  576. return false;
  577. }
  578. if (isrightRange(res.M12.ToString()) == false)
  579. {
  580. errMsg = "12月" + errMsg;
  581. return false;
  582. }
  583. String StrDepartName = ultraGrid1.ActiveRow.Cells["DEPARTID"].Text.ToString().Trim();
  584. if (res.Validflag.ToString() == "") //新增
  585. {
  586. ConfigureOrgBudget bdg = new ConfigureOrgBudget();
  587. bdg.Departid = res.Departid;
  588. bdg.Year = res.Year;
  589. DataTable dt = this.execute<DataTable>("com.hnshituo.pur.configure.service.ConfigureOrgBudgetService", "find", new object[] { bdg, 0, 0 });
  590. if (dt != null && dt.Rows.Count > 0)
  591. {
  592. errMsg = "部门:" + StrDepartName + ",年份:" + res.Year + " 对应的预算信息已经存在!";
  593. return false;
  594. }
  595. }
  596. else //修改
  597. {
  598. //if (res.SaleOrg.ToString() != res.SaleOrgOld.ToString() || res.ProcessCode.ToString() != res.ProcessCodeOld.ToString()
  599. // || res.Year.ToString() != res.YearOld.ToString())
  600. //{
  601. // DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreResBaseResourceAllocation.isReapt", new object[] { res.SaleOrg.ToString(), res.ProcessCode.ToString(), res.Year.ToString() }, this.ob);
  602. // if (dt != null && dt.Rows.Count > 0)
  603. // {
  604. // errMsg = "销售组织:" + res.SaleOrgDesc + ",工序名称:" + res.ProcessDesc + ",年份:" + res.Year + " 对应的记录已经存在!";
  605. // return false;
  606. // }
  607. //}
  608. ConfigureOrgBudget bdg = new ConfigureOrgBudget();
  609. bdg.Departid = res.Departid;
  610. bdg.Year = res.Year;
  611. DataTable dt = this.execute<DataTable>("com.hnshituo.pur.configure.service.ConfigureOrgBudgetService", "find", new object[] { bdg, 0, 0 });
  612. if (dt != null && dt.Rows.Count > 0)
  613. {
  614. DataRow[] rows = dt.Select("id<>'" + res.Id + "'");
  615. int ii = rows.Count();
  616. if (rows.Count() != 0)
  617. {
  618. errMsg = "部门:" + StrDepartName + ",年份:" + res.Year + " 对应的预算信息已经存在!";
  619. return false;
  620. }
  621. }
  622. }
  623. return true;
  624. }
  625. catch (Exception ex)
  626. {
  627. errMsg = ex + "";
  628. //MessageUtil.ShowError(""+ex);
  629. return false;
  630. }
  631. }
  632. /// <summary>
  633. /// 判断是否为正数数字
  634. /// </summary>
  635. /// <param name="p"></param>
  636. /// <returns></returns>
  637. private bool IsNum(string str)
  638. {
  639. if (str != "")
  640. {
  641. return StringUtil.IsNumber(str);
  642. }
  643. return true;
  644. }
  645. private bool isrightRange(String str)
  646. {
  647. if (Convert.ToDouble(str) >= 2147483647/10000 || Convert.ToDouble(str) <= -2147483647/10000)
  648. {
  649. errMsg = "超出每月预算最大上限20亿!";
  650. return false;
  651. }
  652. return true;
  653. }
  654. /// <summary>
  655. /// 字符串转是否能转换成非负数
  656. /// </summary>
  657. /// <param name="str"></param>
  658. /// <returns></returns>
  659. public static bool Is_Below_zero(string str)
  660. {
  661. try
  662. {
  663. if (str.Equals(""))
  664. {
  665. return true;
  666. }
  667. else
  668. {
  669. if (StringUtil.IsDouble(str) && double.Parse(str) >= 0)
  670. return true;
  671. else
  672. return false;
  673. }
  674. }
  675. catch
  676. {
  677. return false;
  678. }
  679. }
  680. /// <summary>
  681. /// 设置包含在指定列中的列只读
  682. /// </summary>
  683. /// <param name="band"></param>
  684. /// <param name="columnKeys"></param>
  685. public static void SetColumnsActive(UltraGridBand band, params string[] columnKeys)
  686. {
  687. foreach (UltraGridColumn gridColumn in band.Columns)
  688. {
  689. if (columnKeys.Contains(gridColumn.Key) == true)
  690. {
  691. gridColumn.CellActivation = Activation.ActivateOnly;
  692. }
  693. }
  694. }
  695. /// <summary>
  696. /// 初始化Combox数据,加入数据筛选
  697. /// </summary>
  698. /// <param name="cmbx">ComboBox控件</param>
  699. /// <param name="dt">DataTable</param>
  700. /// <param name="filterCondition">RowFilter条件</param>
  701. public static void FillComboxItems(UltraComboEditor cmbx, DataTable dt, string valueCol, string textCol, string filterCondition)
  702. {
  703. if (dt != null && dt.Rows.Count > 0)
  704. {
  705. DataView dvw = dt.DefaultView;
  706. dvw.RowFilter = filterCondition;
  707. ArrayList aryTmp = new ArrayList();
  708. aryTmp.Add(new ValueListItem(" ", " "));
  709. for (int i = 0; i < dvw.Count; i++)
  710. {
  711. aryTmp.Add(new ValueListItem(dvw[i][valueCol].ToString(), dvw[i][textCol].ToString()));
  712. }
  713. cmbx.DataSource = aryTmp;
  714. cmbx.DisplayMember = "DisplayText";
  715. cmbx.ValueMember = "DataValue";
  716. }
  717. }
  718. #region // 填充部门树
  719. private bool FillTreeData(List<CoreAppDepartment> lcad)
  720. {
  721. this.treeView4Combo1.Nodes.Clear();
  722. if (lcad == null || lcad.Count == 0) return false;
  723. string key = "";
  724. try
  725. {
  726. foreach (CoreAppDepartment cad in lcad)
  727. {
  728. TreeNode tn = CreateOrFindRarenttNode(cad, null);
  729. if (treeView4Combo1.Nodes.Find(tn.Name, false).Length == 0)
  730. {
  731. treeView4Combo1.Nodes.Add(tn);
  732. }
  733. }
  734. }
  735. catch (Exception ex)
  736. {
  737. MessageBox.Show(ex.Message);
  738. }
  739. return true;
  740. }
  741. #endregion
  742. private TreeNode CreateOrFindRarenttNode(CoreAppDepartment cad, TreeNode childNode)
  743. {
  744. TreeNode[] ptn = treeView4Combo1.Nodes.Find(cad.Departid, true);
  745. //TreeNode tn = null;
  746. //节点已经存在
  747. if (ptn.Length > 0)
  748. {
  749. if (childNode != null && ptn[0].Nodes.Find(childNode.Name, false).Length == 0) ptn[0].Nodes.Add(childNode);
  750. //如果已经是最上层组织,直接返回已有节点
  751. if (this.IsRoot(cad))
  752. {
  753. return ptn[0];
  754. }
  755. //否则递归找上层组织
  756. else
  757. {
  758. CoreAppDepartment dept = _dtOrg.Find(x => x.Departid == cad.Pid);
  759. return CreateOrFindRarenttNode(dept, ptn[0]);
  760. }
  761. }
  762. //节点不存在
  763. //如果已经是最上层组织,创建并返回节点
  764. TreeNode tn = CreateCommonNode(cad);
  765. if (childNode != null) tn.Nodes.Add(childNode);
  766. if (this.IsRoot(cad))
  767. {
  768. return tn;
  769. }
  770. else
  771. {
  772. CoreAppDepartment dept = _dtOrg.Find(x => x.Departid == cad.Pid);
  773. return CreateOrFindRarenttNode(dept, tn);
  774. }
  775. }
  776. private TreeNode CreateCommonNode(CoreAppDepartment cad)
  777. {
  778. TreeNode tn = new TreeNode();
  779. tn.Name = cad.Departid;
  780. tn.Text = cad.Departname;
  781. return tn;
  782. }
  783. private Boolean IsRoot(CoreAppDepartment cad)
  784. {
  785. if (string.IsNullOrEmpty(cad.Pid)) return true;
  786. CoreAppDepartment dept = _dtOrg.Find(x => x.Departid == cad.Pid);
  787. if (dept == null) return true;
  788. return false;
  789. }
  790. #endregion
  791. #region 界面事件
  792. private void ultraGrid1_InitializeRow(object sender, InitializeRowEventArgs e)
  793. {
  794. if (e.Row.Cells["VALIDFLAG"].Value.ToString().Equals("无效"))
  795. {
  796. e.Row.Appearance.ForeColor = Color.Red;
  797. }
  798. else
  799. {
  800. e.Row.Appearance.ForeColor = Color.Black;
  801. }
  802. }
  803. private void ultraGrid1_AfterRowActivate(object sender, EventArgs e)
  804. {
  805. ultraGrid1.UpdateData();
  806. UltraGridRow ugr = ultraGrid1.ActiveRow;
  807. if (ugr == null)
  808. return;
  809. if (!Convert.ToBoolean(ugr.Cells["CHK"].Value))
  810. {
  811. for (int i = 0; i < ugr.Cells.Count; i++)
  812. {
  813. if (!ugr.Cells[i].Column.Key.Equals("CHK"))
  814. ugr.Cells[i].Activation = Activation.ActivateOnly;
  815. }
  816. }
  817. else
  818. {
  819. for (int i = 0; i < ugr.Cells.Count; i++)
  820. {
  821. ugr.Cells[i].Activation = Activation.AllowEdit;
  822. }
  823. }
  824. }
  825. private void ultraGrid1_AfterRowInsert(object sender, RowEventArgs e)
  826. {
  827. }
  828. private void ultraGrid1_CellChange(object sender, CellEventArgs e)
  829. {
  830. if (e.Cell.Column.Key.Equals("M1")||e.Cell.Column.Key.Equals("M2")||e.Cell.Column.Key.Equals("M3")||e.Cell.Column.Key.Equals("M4")||e.Cell.Column.Key.Equals("M5")||e.Cell.Column.Key.Equals("M6")||e.Cell.Column.Key.Equals("M7")||e.Cell.Column.Key.Equals("M8")||e.Cell.Column.Key.Equals("M9")||e.Cell.Column.Key.Equals("M10")||e.Cell.Column.Key.Equals("M11")||e.Cell.Column.Key.Equals("M12"))
  831. {
  832. String sreNumOld = e.Cell.Value.ToString();
  833. ultraGrid1.UpdateData();
  834. String sreNumNew = e.Cell.Value.ToString();
  835. if (!Is_Below_zero(sreNumNew))
  836. {
  837. e.Cell.Value = sreNumOld;
  838. }
  839. }
  840. }
  841. private void ultraGrid1_InitializeLayout(object sender, InitializeLayoutEventArgs e)
  842. {
  843. }
  844. #endregion
  845. private void cmbDept_SelectedIndexChanged(object sender, EventArgs e)
  846. {
  847. //if (opType == OperationType.Add)
  848. //{
  849. // string deptid = this.cmbDept.SelectedValue == null ? "" : this.cmbDept.SelectedValue.ToString();
  850. // if (deptid == null || deptid == "") return;
  851. // CoreAppDepartment cad = _dtOrg.Find((CoreAppDepartment x) => x.Departid == deptid);
  852. // if (cad == null) return;
  853. // this.txtUserId.Text = cad.DepartNo;
  854. //}
  855. }
  856. private void txt_selectDept_EditorButtonClick(object sender, EditorButtonEventArgs e)
  857. {
  858. frmdepartment frm = new frmdepartment(this.ob);
  859. frm.ShowDialog();
  860. String strdeptId = frm.BuyerUnitCode;
  861. String strDeptName = frm.Fulltext;
  862. if (strdeptId != null && strdeptId!= "")
  863. {
  864. if (ultraGrid1.ActiveRow == null)
  865. {
  866. return;
  867. }
  868. else
  869. {
  870. UltraGridRow row = ultraGrid1.ActiveRow;
  871. row.Cells["DEPARTID"].Value = strdeptId;
  872. row.Cells["DEPARTNAME"].Value = strDeptName;
  873. }
  874. }
  875. }
  876. }
  877. }