FrmOrderSpec.cs 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using Core.Mes.Client.Comm.Control;
  10. using Core.Mes.Client.Comm.Server;
  11. using CoreFS.CA06;
  12. using Infragistics.Win.UltraWinGrid;
  13. using System.Collections;
  14. namespace Core.StlMes.Client.SaleOrder
  15. {
  16. public partial class FrmOrderSpec : FrmBase
  17. {
  18. public delegate void GetOrderSpec(string specName, UltraGridRow retunSpecRow);
  19. public event GetOrderSpec GetOrderSpecs;
  20. private string titleName = "";
  21. /// <summary>
  22. /// 规格描述
  23. /// </summary>
  24. public string TitleName
  25. {
  26. get { return titleName; }
  27. set { titleName = value; }
  28. }
  29. private string specCode = "";
  30. public string SpecCode
  31. {
  32. get { return specCode; }
  33. set { specCode = value; }
  34. }
  35. private string pscType = "";
  36. /// <summary>
  37. /// 品名类型 A B C D
  38. /// </summary>
  39. public string PscType
  40. {
  41. get { return pscType; }
  42. set { pscType = value; }
  43. }
  44. int iSelectRow = -1; //判定全程途径是否单选
  45. OpeBase ob = new OpeBase();
  46. string codID = "";
  47. string codName = "";
  48. string indexWt = "";
  49. public FrmOrderSpec()
  50. {
  51. InitializeComponent();
  52. }
  53. protected override void OnLoad(EventArgs e)
  54. {
  55. try
  56. {
  57. base.OnLoad(e);
  58. ultraGrid2.DisplayLayout.Override.FilterUIType = Infragistics.Win.UltraWinGrid.FilterUIType.FilterRow;
  59. ultraGrid2.DisplayLayout.Override.FilterOperatorDefaultValue = Infragistics.Win.UltraWinGrid.FilterOperatorDefaultValue.Contains;
  60. //ultraGrid2.DisplayLayout.Override.CellClickAction = Infragistics.Win.UltraWinGrid.CellClickAction.RowSelect;
  61. }
  62. catch (System.Exception ex)
  63. { }
  64. }
  65. public FrmOrderSpec(OpeBase db)
  66. {
  67. this.ob = db;
  68. InitializeComponent();
  69. }
  70. private void ultraToolbarsManagerSpec_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  71. {
  72. iSelectRow = -1;
  73. switch (e.Tool.Key.ToString())
  74. {
  75. case "Query":
  76. titleName = "";
  77. doQuery();
  78. break;
  79. case "ButtonCom":
  80. //if (CheckData() == true)
  81. //{
  82. // doSave();
  83. //}
  84. break;
  85. case "ButtonTrueCom":
  86. //判断是否有勾选项,没有则提示,chkbool大于0执行新增规则描述函数。
  87. //int chkbool = sochkRows();
  88. //if (chkbool > 0)
  89. //{
  90. // if (rowsAsk() == true)
  91. // {
  92. // if (CheckData() == true)
  93. // {
  94. // doSave();
  95. // }
  96. // }
  97. //}
  98. //Boolean insertOut = false;
  99. //for (int i = 0; i < ultraGrid1.Rows.Count; i++)
  100. //{
  101. // Infragistics.Win.UltraWinGrid.UltraGridRow row = ultraGrid1.Rows[i];
  102. // if (row.Cells["ORDER_SPEC_DESC"].Value.ToString() == indexWt
  103. // || row.Cells["SPCHK"].Value.ToString().ToLower().Equals("true"))
  104. // {
  105. // insertOut = true;
  106. // string descName = row.Cells["ORDER_SPEC_DESC"].Value.ToString();
  107. // GetOrderSpecs(descName, row);
  108. // this.Close();
  109. // }
  110. //}
  111. //if (!insertOut)
  112. //{
  113. // MessageBox.Show("请选择数据后再进行操作!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  114. //}
  115. if (ultraGrid2.ActiveRow != null)
  116. {
  117. Infragistics.Win.UltraWinGrid.UltraGridRow row = ultraGrid2.ActiveRow;
  118. string descName = row.Cells["ORDER_SPEC_DESC"].Value.ToString();
  119. GetOrderSpecs(descName, row);
  120. this.Close();
  121. }
  122. break;
  123. case "ButtonEsc":
  124. this.Close();
  125. break;
  126. }
  127. }
  128. /// <summary>
  129. /// 查询方法,比较通用的查询方法
  130. /// </summary>
  131. private void doQuery()
  132. {
  133. this.dataTableSpec.Clear();
  134. //this.dataTableSpecs.Clear();
  135. try
  136. {
  137. //DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderLine.getBindSpecOrder", new Object[] { validFlag, titleName, pscType }, this.ob);
  138. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderLine.getBindOrderSpec", new object[] {SpecCode,TitleName }, this.ob);
  139. GridHelper.CopyDataToDatatable(ref dt, ref this.dataTableSpec, true);
  140. dataTableSpec.AcceptChanges();
  141. }
  142. catch
  143. {
  144. return;
  145. }
  146. //GridHelper.RefreshAndAutoSize(ultraGrid2);
  147. }
  148. private bool IsExistOrderSpec(string orderSpec, string orderSpecCode)
  149. {
  150. ArrayList list = new ArrayList();
  151. list.Add(orderSpec);
  152. list.Add(orderSpecCode);
  153. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreSpecBasicsNew.isExistOrderSpec",
  154. new object[] { list }, ob);
  155. if (dt == null)
  156. {
  157. return true;
  158. }
  159. else if (dt != null && dt.Rows[0][0].ToString() == "0")
  160. {
  161. return false;
  162. }
  163. return true;
  164. }
  165. //private bool CheckData()
  166. //{
  167. // ultraGrid1.UpdateData();
  168. // DataRow[] drs2 = this.dataTableSpecs.Select("SPCHK = 'True'");
  169. // List<string> insertOrder_SpecNames = new List<string>();
  170. // foreach (DataRow dr in drs2)
  171. // {
  172. // if (dr["ORDER_SPEC_DESC"].ToString() == "")
  173. // {
  174. // MessageBox.Show("您所要保存的数据中,订货规格描述不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  175. // return false;
  176. // }
  177. // else if (IsExistOrderSpec(dr["ORDER_SPEC_DESC"].ToString(), dr["ORDER_SPEC_CODE"].ToString())
  178. // == true)
  179. // {
  180. // MessageBox.Show("已存在订货规格描述-" + dr["ORDER_SPEC_DESC"].ToString() + "!",
  181. // "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  182. // return false;
  183. // }
  184. // if (insertOrder_SpecNames.Contains(dr["ORDER_SPEC_DESC"].ToString()))
  185. // {
  186. // MessageBox.Show("您所要保存的数据中,出现重复的订货规格描述-[" + dr["ORDER_SPEC_DESC"].ToString() + "]!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  187. // return false;
  188. // }
  189. // insertOrder_SpecNames.Add(dr["ORDER_SPEC_DESC"].ToString());
  190. // }
  191. // return true;
  192. //}
  193. //private void doSave()
  194. //{
  195. // ultraGrid1.UpdateData();
  196. // //判断是否有勾选项,没有则提示。
  197. // int chkbool = sochkRows();
  198. // if (chkbool <= 0)
  199. // {
  200. // MessageBox.Show("请选择数据后再进行操作!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  201. // return;
  202. // }
  203. // //确定保存吗?
  204. // if (MessageBox.Show("是否确认保存?", "提示", MessageBoxButtons.YesNo,
  205. // MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.No)
  206. // {
  207. // return;
  208. // }
  209. // //从表新增组ArrayList
  210. // ArrayList spbSupplementAddParams = new ArrayList();
  211. // //从表修改组ArrayList
  212. // ArrayList spbSupplementUpdateParams = new ArrayList();
  213. // //直接遍历从表所有行,判定是否有选中项。
  214. // for (int j = 0; j < this.dataTableSpecs.Rows.Count; j++)
  215. // {
  216. // DataRow minrow = dataTableSpecs.Rows[j];
  217. // if (minrow["SPCHK"].ToString() == "True")
  218. // {
  219. // if (minrow.RowState == DataRowState.Added)
  220. // {
  221. // spbSupplementAddParams.Add(codID);
  222. // spbSupplementAddParams.Add(codID);
  223. // spbSupplementAddParams.Add(minrow["ORDER_SPEC_DESC"].ToString());
  224. // //name是冗余字段,不需要。
  225. // spbSupplementAddParams.Add(codID);
  226. // spbSupplementAddParams.Add(codName);
  227. // spbSupplementAddParams.Add(this.UserInfo.GetUserName());
  228. // spbSupplementAddParams.Add(minrow["MEMO"].ToString());
  229. // }
  230. // else if (minrow.RowState == DataRowState.Modified)
  231. // {
  232. // spbSupplementUpdateParams.Add(minrow["ORDER_SPEC_DESC"].ToString());
  233. // spbSupplementUpdateParams.Add(this.UserInfo.GetUserName());
  234. // spbSupplementUpdateParams.Add(minrow["MEMO"].ToString());
  235. // spbSupplementUpdateParams.Add(minrow["ORDER_SPEC_CODE"].ToString());
  236. // }
  237. // }
  238. // }
  239. // //执行数据库相关操作
  240. // CoreClientParam ccp = new CoreClientParam();
  241. // if (spbSupplementAddParams.Count > 0)
  242. // {
  243. // //服务端的包名+类名
  244. // ccp.ServerName = "com.steering.pss.sale.order.CoreCtrlOrderLine";
  245. // //类里的方法名
  246. // ccp.MethodName = "BindCmbSpecADD";
  247. // ccp.ServerParams = new object[] { spbSupplementAddParams };
  248. // }
  249. // if (spbSupplementUpdateParams.Count > 0)
  250. // {
  251. // //服务端的包名+类名
  252. // ccp.ServerName = "com.steering.pss.sale.order.CoreCtrlOrderLine";
  253. // //类里的方法名
  254. // ccp.MethodName = "BindCmbSpecUpdata";
  255. // ccp.ServerParams = new object[] { spbSupplementUpdateParams };
  256. // }
  257. // try
  258. // {
  259. // ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  260. // }
  261. // catch (Exception ex)
  262. // {
  263. // MessageBox.Show("错误提示:" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
  264. // return;
  265. // }
  266. // if (ccp.ReturnCode == -1)
  267. // {
  268. // return;
  269. // }
  270. // else
  271. // {
  272. // MessageBox.Show("保存成功!", "提示",
  273. // MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  274. // DataTable mindt = ServerHelper.GetData("com.steering.pss.sale.order.CoreCtrlOrderLine.BindCmbSpecSPECQUERY", new Object[] { codID, codName }, this.ob);
  275. // GridHelper.CopyDataToDatatable(ref mindt, ref this.dataTableSpecs, true);
  276. // dataTableSpecs.AcceptChanges();
  277. // }
  278. //}
  279. //private int sochkRows()
  280. //{
  281. // int chkbool = 0;
  282. // foreach (UltraGridRow row in ultraGrid1.Rows)
  283. // {
  284. // if (row.Cells["SPCHK"].Value.ToString().ToUpper() == "TRUE")
  285. // {
  286. // chkbool += 1;
  287. // }
  288. // }
  289. // return chkbool;
  290. //}
  291. /// <summary>
  292. /// 判定是否新增
  293. /// </summary>
  294. /// <returns></returns>
  295. //private bool rowsAsk()
  296. //{
  297. // for (int j = 0; j < this.dataTableSpecs.Rows.Count; j++)
  298. // {
  299. // DataRow minrow = dataTableSpecs.Rows[j];
  300. // if (minrow.RowState == DataRowState.Added)
  301. // {
  302. // indexWt = minrow["ORDER_SPEC_DESC"].ToString();
  303. // return true;
  304. // }
  305. // }
  306. // return false;
  307. //}
  308. //private void ultraGrid2_Click(object sender, EventArgs e)
  309. //{
  310. // Infragistics.Win.UltraWinGrid.UltraGridRow row = ultraGrid2.ActiveRow;
  311. // if (row != null)
  312. // {
  313. // //从表的记录也要查询出来。
  314. // codID = row.Cells["SPEC_CODE"].Value.ToString();
  315. // codName = row.Cells["SPEC_NAME"].Value.ToString();
  316. // DataTable mindt = ServerHelper.GetData("com.steering.pss.sale.order.CoreCtrlOrderLine.BindCmbSpecSPECQUERY", new Object[] { row.Cells["SPEC_CODE"].Value.ToString(), row.Cells["SPEC_NAME"].Value.ToString() }, this.ob);
  317. // GridHelper.CopyDataToDatatable(ref mindt, ref this.dataTableSpecs, true);
  318. // dataTableSpecs.AcceptChanges();
  319. // }
  320. //}
  321. //private void ultraGrid1_CellChange(object sender, CellEventArgs e)
  322. //{
  323. // this.ultraGrid1.UpdateData();
  324. // if (e.Cell.Column.Key.Equals("SPCHK") && Convert.ToBoolean(e.Cell.Value))
  325. // {
  326. // if (iSelectRow != -1)
  327. // ultraGrid1.Rows[iSelectRow].Cells["SPCHK"].Value = false;
  328. // iSelectRow = e.Cell.Row.Index;
  329. // }
  330. // else
  331. // {
  332. // iSelectRow = -1;
  333. // }
  334. //}
  335. private void FrmOrderSpec_Load(object sender, EventArgs e)
  336. {
  337. doQuery();
  338. }
  339. private void ultraGrid2_DoubleClickRow(object sender, DoubleClickRowEventArgs e)
  340. {
  341. if (e.Row.Index == -1)
  342. {
  343. return;
  344. }
  345. if (ultraGrid2.ActiveRow != null)
  346. {
  347. Infragistics.Win.UltraWinGrid.UltraGridRow row = ultraGrid2.ActiveRow;
  348. string descName = row.Cells["ORDER_SPEC_DESC"].Value.ToString();
  349. GetOrderSpecs(descName, row);
  350. this.Close();
  351. }
  352. }
  353. }
  354. }