FrmPriceBaseFrame.cs 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483
  1. using com.steering.pss.sale.price.entity;
  2. using Core.Mes.Client.Comm.Server;
  3. using Core.Mes.Client.Comm.Tool;
  4. using CoreFS.CA06;
  5. using Infragistics.Win.UltraWinEditors;
  6. using Infragistics.Win.UltraWinGrid;
  7. using System;
  8. using System.Collections;
  9. using System.Collections.Generic;
  10. using System.ComponentModel;
  11. using System.Data;
  12. using System.Drawing;
  13. using System.Linq;
  14. using System.Text;
  15. using System.Windows.Forms;
  16. using Core.Mes.Client.Comm.Format;
  17. using Core.Mes.Client.Comm.Control;
  18. namespace Core.StlMes.Client.SalePrice.BaseForm
  19. {
  20. public partial class FrmPriceBaseFrame : FrmBase
  21. {
  22. string isValid = "1";
  23. public FrmPriceBaseFrame()
  24. {
  25. InitializeComponent();
  26. }
  27. private void FrmPriceBaseFrame_Load(object sender, EventArgs e)
  28. {
  29. EntityHelper.ShowGridCaption<SlmPriceBaseframeSetEntity>(gdPriceBaseFrame.DisplayLayout.Bands[0]);
  30. EntityHelper.ShowGridCaption<SlmPriceBaseframeClassifyEntity>(gdPriceBaseFrameClassify.DisplayLayout.Bands[0]);
  31. // gdPriceBaseFrameClassify
  32. InitForm();
  33. }
  34. private void InitForm()
  35. {
  36. UltraComboEditor uce1 = new UltraComboEditor();
  37. SalePriceClass.InitComboEditorWithParm(uce1, "com.steering.pss.sale.price.server.CorePriceBaseFrame.queryFacName", "FACTOR_ID", "FACTOR_NAME", this.ob, true, null);
  38. gdPriceBaseFrame.DisplayLayout.Bands[0].Columns["X1FACTORID"].EditorComponent = uce1;
  39. gdPriceBaseFrame.DisplayLayout.Bands[0].Columns["X1FACTORID"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  40. this.Controls.Add(uce1);
  41. uce1.Visible = false;
  42. UltraComboEditor uce2 = new UltraComboEditor();
  43. SalePriceClass.InitComboEditorWithParm(uce2, "com.steering.pss.sale.price.server.CorePriceBaseFrame.queryFacName", "FACTOR_ID", "FACTOR_NAME", this.ob, true, null);
  44. gdPriceBaseFrame.DisplayLayout.Bands[0].Columns["X2FACTORID"].EditorComponent = uce2;
  45. gdPriceBaseFrame.DisplayLayout.Bands[0].Columns["X2FACTORID"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  46. this.Controls.Add(uce2);
  47. uce2.Visible = false;
  48. UltraComboEditor uce3 = new UltraComboEditor();
  49. SalePriceClass.InitComboEditorWithParm(uce3, "com.steering.pss.sale.price.server.CorePriceBaseFrame.queryFacName", "FACTOR_ID", "FACTOR_NAME", this.ob, true, null);
  50. gdPriceBaseFrame.DisplayLayout.Bands[0].Columns["X3FACTORID"].EditorComponent = uce3;
  51. gdPriceBaseFrame.DisplayLayout.Bands[0].Columns["X3FACTORID"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  52. this.Controls.Add(uce3);
  53. uce3.Visible = false;
  54. UltraComboEditor uce4 = new UltraComboEditor();
  55. SalePriceClass.InitComboEditorWithParm(uce4, "com.steering.pss.sale.price.server.CorePriceBaseFrame.queryFacName", "FACTOR_ID", "FACTOR_NAME", this.ob, true, null);
  56. gdPriceBaseFrame.DisplayLayout.Bands[0].Columns["X4FACTORID"].EditorComponent = uce4;
  57. gdPriceBaseFrame.DisplayLayout.Bands[0].Columns["X4FACTORID"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  58. this.Controls.Add(uce4);
  59. uce4.Visible = false;
  60. UltraComboEditor uce5 = new UltraComboEditor();
  61. SalePriceClass.InitComboEditorWithParm(uce5, "com.steering.pss.sale.price.server.CorePriceBaseFrame.queryFacName", "FACTOR_ID", "FACTOR_NAME", this.ob, true, null);
  62. gdPriceBaseFrame.DisplayLayout.Bands[0].Columns["X5FACTORID"].EditorComponent = uce5;
  63. gdPriceBaseFrame.DisplayLayout.Bands[0].Columns["X5FACTORID"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  64. this.Controls.Add(uce5);
  65. uce5.Visible = false;
  66. UltraComboEditor uce6 = new UltraComboEditor();
  67. SalePriceClass.InitComboEditorWithParm(uce6, "com.steering.pss.sale.price.server.CorePriceBaseFrame.queryFacName", "FACTOR_ID", "FACTOR_NAME", this.ob, true, null);
  68. gdPriceBaseFrame.DisplayLayout.Bands[0].Columns["X6FACTORID"].EditorComponent = uce6;
  69. gdPriceBaseFrame.DisplayLayout.Bands[0].Columns["X6FACTORID"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  70. this.Controls.Add(uce6);
  71. uce6.Visible = false;
  72. UltraComboEditor uce7 = new UltraComboEditor();
  73. SalePriceClass.InitComboEditorWithParm(uce7, "com.steering.pss.sale.price.server.CorePriceBaseFrame.queryFacName", "FACTOR_ID", "FACTOR_NAME", this.ob, true, null);
  74. gdPriceBaseFrame.DisplayLayout.Bands[0].Columns["X7FACTORID"].EditorComponent = uce7;
  75. gdPriceBaseFrame.DisplayLayout.Bands[0].Columns["X7FACTORID"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  76. this.Controls.Add(uce7);
  77. uce7.Visible = false;
  78. UltraComboEditor uce8 = new UltraComboEditor();
  79. SalePriceClass.InitComboEditorWithParm(uce8, "com.steering.pss.sale.price.server.CorePriceBaseFrame.queryFacName", "FACTOR_ID", "FACTOR_NAME", this.ob, true, null);
  80. gdPriceBaseFrame.DisplayLayout.Bands[0].Columns["X8FACTORID"].EditorComponent = uce8;
  81. gdPriceBaseFrame.DisplayLayout.Bands[0].Columns["X8FACTORID"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  82. this.Controls.Add(uce8);
  83. uce8.Visible = false;
  84. UltraComboEditor uce9 = new UltraComboEditor();
  85. SalePriceClass.InitComboEditorWithParm(uce9, "com.steering.pss.sale.price.server.CorePriceBaseFrame.queryRangeName", "CLASS_D_ID", "CLASS_D_NAME", this.ob, true, null);
  86. gdPriceBaseFrame.DisplayLayout.Bands[0].Columns["Y1FACTORID"].EditorComponent = uce9;
  87. gdPriceBaseFrame.DisplayLayout.Bands[0].Columns["Y1FACTORID"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  88. this.Controls.Add(uce9);
  89. uce9.Visible = false;
  90. UltraComboEditor uce10 = new UltraComboEditor();
  91. SalePriceClass.InitComboEditorWithParm(uce10, "com.steering.pss.sale.price.server.CorePriceBaseFrame.queryRangeName", "CLASS_D_ID", "CLASS_D_NAME", this.ob, true, null);
  92. gdPriceBaseFrame.DisplayLayout.Bands[0].Columns["Y2FACTORID"].EditorComponent = uce10;
  93. gdPriceBaseFrame.DisplayLayout.Bands[0].Columns["Y2FACTORID"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  94. this.Controls.Add(uce10);
  95. uce10.Visible = false;
  96. UltraComboEditor uce11 = new UltraComboEditor();
  97. SalePriceClass.NitializeSignMin(uce11);
  98. gdPriceBaseFrameClassify.DisplayLayout.Bands[0].Columns["factorMinSign"].EditorComponent = uce11;
  99. gdPriceBaseFrameClassify.DisplayLayout.Bands[0].Columns["factorMinSign"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  100. this.Controls.Add(uce11);
  101. uce11.Visible = false;
  102. UltraComboEditor uce12 = new UltraComboEditor();
  103. SalePriceClass.NitializeSignMax(uce12);
  104. gdPriceBaseFrameClassify.DisplayLayout.Bands[0].Columns["factorMaxSign"].EditorComponent = uce12;
  105. gdPriceBaseFrameClassify.DisplayLayout.Bands[0].Columns["factorMaxSign"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  106. this.Controls.Add(uce12);
  107. uce12.Visible = false;
  108. UltraComboEditor uce13 = new UltraComboEditor();
  109. SalePriceClass.NitializeFactorClassifyId(uce13);
  110. gdPriceBaseFrameClassify.DisplayLayout.Bands[0].Columns["FactorclassifyId"].EditorComponent = uce13;
  111. gdPriceBaseFrameClassify.DisplayLayout.Bands[0].Columns["FactorclassifyId"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  112. this.Controls.Add(uce13);
  113. uce13.Visible = false;
  114. }
  115. public override void ToolBar_Click(object sender, string ToolbarKey)
  116. {
  117. switch (ToolbarKey)
  118. {
  119. case "Query":
  120. QueryData();
  121. break;
  122. case "Save":
  123. SaveFormData();
  124. break;
  125. case "Delete":
  126. DeleteOrResume(true);
  127. break;
  128. case "Resume":
  129. DeleteOrResume(false);
  130. break;
  131. case "Close":
  132. this.Close();
  133. break;
  134. }
  135. }
  136. /// <summary>
  137. /// 查询数据
  138. /// </summary>
  139. private void QueryData()
  140. {
  141. //string rangeId = "";
  142. //string rangeName = "";
  143. ////if (labelTextBox1.Checked)
  144. //// rangeName = labelTextBox1.Text.Trim();
  145. ////if (labelTextBox2.Checked)
  146. //// rangeId = labelTextBox2.Text.Trim();
  147. List<SlmPriceBaseframeSetEntity> list = EntityHelper.GetData<SlmPriceBaseframeSetEntity>(
  148. "com.steering.pss.sale.price.server.CorePriceBaseFrame.query", new object[] { isValid }, this.ob);
  149. slmPriceBaseframeSetEntityBindingSource.DataSource = list;
  150. UltraGridBand ugb = this.gdPriceBaseFrame.DisplayLayout.Bands[0];
  151. UltraGridColumn[] col = new UltraGridColumn[] { };
  152. GridHelper.RefreshAndAutoSizeExceptColumns(gdPriceBaseFrame, col);
  153. }
  154. /// <summary>
  155. /// 保存界面数据
  156. /// </summary>
  157. private void SaveFormData()
  158. {
  159. //基价框架
  160. gdPriceBaseFrame.UpdateData();
  161. gdPriceBaseFrameClassify.UpdateData();
  162. UltraGridRow[] row = gdPriceBaseFrame.Rows.AsQueryable().Where(a => a.Cells["CHK"].Value.ToString().ToUpper() == "TRUE").ToArray();
  163. UltraGridRow[] row1 = gdPriceBaseFrameClassify.Rows.AsQueryable().Where(a => a.Cells["CHK"].Value.ToString().ToUpper() == "TRUE").ToArray();
  164. if (row.Length + row1.Length <= 0)
  165. {
  166. MessageUtil.ShowWarning("请选择需要保存的数据!");
  167. return;
  168. }
  169. if (row.Length>0)
  170. {
  171. ArrayList parm = CheckFormData(row);
  172. if (parm == null || parm.Count <= 0)
  173. {
  174. return;
  175. }
  176. if (MessageUtil.ShowYesNoAndQuestion("是否确认保存数据!") == DialogResult.No) return;
  177. int i = ServerHelper.SetData("com.steering.pss.sale.price.server.CorePriceBaseFrame.save",
  178. new object[] { parm }, this.ob);
  179. if (i > 0)
  180. {
  181. MessageUtil.ShowTips("数据保存成功!");
  182. QueryData();
  183. }
  184. else
  185. {
  186. MessageUtil.ShowTips("数据保存失败!");
  187. QueryData();
  188. }
  189. }
  190. if (row1.Length>0)
  191. {
  192. if (row1.Length <= 0)
  193. {
  194. MessageUtil.ShowWarning("请选择需要保存的数据!");
  195. return;
  196. }
  197. ArrayList parm1 = CheckFormRangeData(row1);
  198. if (parm1 == null || parm1.Count <= 0)
  199. {
  200. return;
  201. }
  202. if (MessageUtil.ShowYesNoAndQuestion("是否确认保存数据!") == DialogResult.No) return;
  203. int i1 = ServerHelper.SetData("com.steering.pss.sale.price.server.CorePriceBaseFrame.saveRange",
  204. new object[] { parm1 }, this.ob);
  205. if (i1 > 0)
  206. {
  207. MessageUtil.ShowTips("数据保存成功!");
  208. QueryDataRange();
  209. }
  210. else
  211. {
  212. MessageUtil.ShowTips("数据保存失败!");
  213. QueryDataRange();
  214. }
  215. }
  216. //基价框架范围
  217. // UltraGridRow[] row1 = gdPriceBaseFrameClassify.Rows.AsQueryable().Where(a => a.Cells["CHK"].Value.ToString().ToUpper() == "TRUE").ToArray();
  218. }
  219. private ArrayList CheckFormRangeData(UltraGridRow[] row1)
  220. {
  221. ArrayList parm = new ArrayList();
  222. List<string> list = new List<string>();
  223. foreach (var uRow in row1)
  224. {
  225. SlmPriceBaseframeClassifyEntity spf = (SlmPriceBaseframeClassifyEntity)uRow.ListObject;
  226. if (spf.Validflag == "无效" && spf.CreateName != "")
  227. {
  228. MessageUtil.ShowWarning("【" + spf.FrameId + "】的因素已经无效,不能修改!");
  229. return null;
  230. }
  231. spf.CreateName = UserInfo.GetUserName();
  232. spf.UpdateName = UserInfo.GetUserName();
  233. parm.Add(JSONFormat.Format(spf));
  234. }
  235. return parm;
  236. }
  237. private void QueryDataRange()
  238. {
  239. if (gdPriceBaseFrame.ActiveRow.Cells["FrameId"].Value.ToString() != "")
  240. {
  241. string FrameId = gdPriceBaseFrame.ActiveRow.Cells["FrameId"].Value.ToString();
  242. string isValid = "1";
  243. EntityHelper.ShowGridCaption<SlmPriceBaseframeClassifyEntity>(gdPriceBaseFrameClassify.DisplayLayout.Bands[0]);
  244. List<SlmPriceBaseframeClassifyEntity> list = EntityHelper.GetData<SlmPriceBaseframeClassifyEntity>(
  245. "com.steering.pss.sale.price.server.CorePriceBaseFrame.queryRange", new object[] { FrameId, isValid }, this.ob);
  246. slmPriceBaseframeClassifyEntityBindingSource.DataSource = list;
  247. UltraGridBand ugb = this.gdPriceBaseFrameClassify.DisplayLayout.Bands[0];
  248. UltraGridColumn[] col = new UltraGridColumn[] { };
  249. GridHelper.RefreshAndAutoSizeExceptColumns(gdPriceBaseFrameClassify, col);
  250. }
  251. }
  252. /// <summary>
  253. /// 删除或恢复
  254. /// </summary>
  255. /// <param name="flag"></param>
  256. private void DeleteOrResume(bool flag)
  257. {
  258. gdPriceBaseFrame.UpdateData();
  259. UltraGridRow[] row = gdPriceBaseFrame.Rows.AsQueryable().Where(a => a.Cells["CHK"].Value.ToString() == "True").ToArray();
  260. if (row.Length <= 0)
  261. {
  262. MessageUtil.ShowWarning("请选择需要" + (flag ? "删除" : "恢复") + "的数据!");
  263. return;
  264. }
  265. ArrayList parm = new ArrayList();
  266. if (flag)
  267. {
  268. foreach (var uRow in row)
  269. {
  270. SlmPriceBaseframeSetEntity spf = (SlmPriceBaseframeSetEntity)uRow.ListObject;
  271. if (spf.Validflag == "无效")
  272. {
  273. MessageUtil.ShowWarning("您勾选的数据中存在已删除的数据,不必重复删除!");
  274. return;
  275. }
  276. spf.CreateName = UserInfo.GetUserName();
  277. spf.UpdateName = UserInfo.GetUserName();
  278. parm.Add(JSONFormat.Format(spf));
  279. }
  280. }
  281. else
  282. {
  283. foreach (var uRow in row)
  284. {
  285. SlmPriceBaseframeSetEntity spf = (SlmPriceBaseframeSetEntity)uRow.ListObject;
  286. if (spf.Validflag == "有效")
  287. {
  288. MessageUtil.ShowWarning("您勾选的数据中存在有效的数据,不必进行恢复!");
  289. return;
  290. }
  291. //ArrayList parm1 = new ArrayList();
  292. //parm1.Add(JSONFormat.Format(spf));
  293. ////恢复前判断是否存在相同因素名称的数据
  294. //DataTable dt = ServerHelper.GetData("com.steering.pss.sale.price.server.CorePriceBaseFrame.canResume", new object[] { parm1 }, this.ob);
  295. //if (dt != null && dt.Rows.Count > 0)
  296. //{
  297. // MessageUtil.ShowWarning("系统已存在名称为【" + spf.FrameId + "】并且有效的基价框架,不能恢复!");
  298. // return;
  299. //}
  300. //不需要判断 此项
  301. spf.CreateName = UserInfo.GetUserName();
  302. spf.UpdateName = UserInfo.GetUserName();
  303. parm.Add(JSONFormat.Format(spf));
  304. }
  305. }
  306. if (MessageUtil.ShowYesNoAndQuestion("是否" + (flag ? "删除" : "恢复") + "所选的数据!") == DialogResult.No) return;
  307. int i= ServerHelper.SetData("com.steering.pss.sale.price.server.CorePriceBaseFrame.deleteOrResume", new object[] { parm ,flag }, this.ob);
  308. if (i>=0)
  309. {
  310. MessageUtil.ShowTips("数据" + (flag ? "删除" : "恢复") + "成功!");
  311. QueryData();
  312. }
  313. else
  314. {
  315. MessageUtil.ShowTips("数据" + (flag ? "删除" : "恢复") + "失败!");
  316. QueryData();
  317. }
  318. }
  319. /// <summary>
  320. /// 验证界面数据
  321. /// </summary>
  322. /// <param name="row">界面数据</param>
  323. /// <returns></returns>
  324. private ArrayList CheckFormData(UltraGridRow[] row)
  325. {
  326. ArrayList parm = new ArrayList();
  327. List<string> list = new List<string>();
  328. foreach (var uRow in row)
  329. {
  330. SlmPriceBaseframeSetEntity spf = (SlmPriceBaseframeSetEntity)uRow.ListObject;
  331. ArrayList FactorSValue = new ArrayList();
  332. for (int i = 0; i < uRow.Cells.Count-4; i++)
  333. {
  334. if (uRow.Cells[i].Value.ToString() != "")
  335. {
  336. FactorSValue.Add(uRow.Cells[i].Value);
  337. }
  338. }
  339. if (SalePriceClass.IsRepeat(FactorSValue) == true)
  340. {
  341. MessageUtil.ShowWarning("因素值有重复!");
  342. return null;
  343. }
  344. if (spf.Validflag == "无效" && spf.CreateName != "")
  345. {
  346. MessageUtil.ShowWarning("【" + spf.FrameId + "】的因素已经无效,不能修改!");
  347. return null;
  348. }
  349. spf.CreateName = UserInfo.GetUserName();
  350. spf.UpdateName = UserInfo.GetUserName();
  351. parm.Add(JSONFormat.Format(spf));
  352. }
  353. return parm;
  354. }
  355. private void gdPriceBaseFrame_AfterRowInsert(object sender, RowEventArgs e)
  356. {
  357. string maxId = gdPriceBaseFrame.Rows.AsQueryable().Max(a => a.Cells["FrameId"].Value.ToString());
  358. if (maxId == "")
  359. {
  360. e.Row.Cells["FrameId"].Value = "A000001";
  361. }
  362. else
  363. {
  364. string str = "A" + (Convert.ToInt32(maxId.Substring(1, 6)) + 1).ToString().PadLeft(6, '0');
  365. e.Row.Cells["FrameId"].Value = str;
  366. }
  367. }
  368. private void chkValid_CheckedChanged(object sender, EventArgs e)
  369. {
  370. if (chkValid.Checked)
  371. {
  372. isValid = "0";
  373. }
  374. else
  375. {
  376. isValid = "1";
  377. }
  378. }
  379. private void gdPriceBaseFrame_InitializeRow(object sender, InitializeRowEventArgs e)
  380. {
  381. if (e.Row.Cells["VALIDFLAG"].Value.ToString() == "无效")
  382. {
  383. e.Row.Appearance.ForeColor = Color.Red;
  384. }
  385. else
  386. {
  387. e.Row.Appearance.ForeColor = Color.Black;
  388. }
  389. }
  390. private void gdPriceBaseFrame_InitializeLayout(object sender, InitializeLayoutEventArgs e)
  391. {
  392. }
  393. private void gdPriceBaseFrameClassify_AfterRowInsert(object sender, RowEventArgs e)
  394. {
  395. string maxId = gdPriceBaseFrameClassify.Rows.AsQueryable().Max(a => a.Cells["BrID"].Value.ToString());
  396. if (maxId == "")
  397. {
  398. e.Row.Cells["BrID"].Value = "R000001";
  399. }
  400. else
  401. {
  402. string str = "R" + (Convert.ToInt32(maxId.Substring(1, 6)) + 1).ToString().PadLeft(6, '0');
  403. e.Row.Cells["BrID"].Value = str;
  404. }
  405. e.Row.Cells["Frameid"].Value = gdPriceBaseFrame.ActiveRow.Cells["FrameId"].Value.ToString();
  406. }
  407. private void gdPriceBaseFrame_AfterRowActivate(object sender, EventArgs e)
  408. {
  409. QueryDataRange();
  410. }
  411. }
  412. }