华恒Mes鼎捷代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

576 lines
25 KiB

5 months ago
  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.Windows.Forms;
  8. using DevExpress.XtraEditors;
  9. using ICSSoft.Frame.User.BLL;
  10. using ICSSoft.Base.Language.Tool;
  11. using ICSSoft.Base.UserControl.MessageControl;
  12. using System.Data.SqlClient;
  13. using ICSSoft.Base.Config.AppConfig;
  14. using ICSSoft.Base.Report.Filter;
  15. using ICSSoft.Base.Config.DBHelper;
  16. using ICSSoft.Base.UserControl.FormControl;
  17. using ICSSoft.Base.ReferForm.AppReferForm;
  18. using ICSSoft.Base.Lable.PrintTool;
  19. using ICSSoft.Frame.Data.DAL;
  20. using ICSSoft.Frame.Data.BLL;
  21. using ICSSoft.Frame.Data.Entity;
  22. using ICSSoft.Frame.APP.Entity;
  23. namespace ICSSoft.Frame.APP
  24. {
  25. public partial class FormICSNCTPAdd : DevExpress.XtraEditors.XtraForm
  26. {
  27. FormICSEQPSTPUIModel EQPSTPUIModel;
  28. int flag;
  29. string nctpid;
  30. public FormICSNCTPAdd()
  31. {
  32. InitializeComponent();
  33. init();
  34. chargeFormState("Add");
  35. flag = 0;
  36. nctpid = AppConfig.GetGuid();
  37. }
  38. public FormICSNCTPAdd(string id)
  39. {
  40. InitializeComponent();
  41. init();
  42. chargeFormState("Edit");
  43. SearchTypeInfo(id);
  44. flag = 1;
  45. nctpid = id;
  46. }
  47. private void chargeFormState(string state)
  48. {
  49. switch (state)
  50. {
  51. case "Add":
  52. txtMUSERName.Text = AppConfig.UserName;
  53. txtMTIME.Text = AppConfig.GetSeverDateTime("yyyy-MM-dd hh:mm:ss").ToString();
  54. txtMUSERName.Properties.ReadOnly = true;
  55. txtMTIME.Properties.ReadOnly = true;
  56. break;
  57. case "Edit":
  58. //txtItemCode.Properties.Buttons[0].Visible = false;
  59. //txtItemCode.Enabled = false;
  60. //gluItemCode.Properties.Buttons[0].Visible = false;
  61. gluItemCode.Enabled = false;
  62. //txtOPCODE.Properties.Buttons[0].Visible = false;
  63. //txtOPCODE.Enabled = false;
  64. txtEQPCODE.Properties.Buttons[0].Visible = false;
  65. txtEQPCODE.Enabled = false;
  66. //txtEQPTypeCode.Properties.Buttons[0].Visible = false;
  67. //txtEQPTypeCode.Enabled = false;
  68. txtMUSERName.Properties.ReadOnly = true;
  69. txtMTIME.Properties.ReadOnly = true;
  70. break;
  71. }
  72. }
  73. private void SearchTypeInfo(string id)
  74. {
  75. DataTable dt = ICSNCTPBLL.searchInfoByID(id, AppConfig.AppConnectString);
  76. if (dt != null && dt.Rows.Count > 0)
  77. {
  78. nctpid = dt.Rows[0]["guid"].ToString();
  79. txtProductDate.Text = dt.Rows[0]["ProductDate"].ToString();
  80. txtProductMO.Text = dt.Rows[0]["ProductMO"].ToString();
  81. gluItemCode.Text = dt.Rows[0]["ITEMCODE"].ToString();
  82. txtItemName.Text = dt.Rows[0]["ItemName"].ToString();
  83. txtProjectCode.Text = dt.Rows[0]["ProjectCode"].ToString();
  84. txtOPCODE.Text = dt.Rows[0]["OPCode"].ToString();
  85. txtOPDESC.Text = dt.Rows[0]["OPDESC"].ToString();
  86. txtProductNum.Text = dt.Rows[0]["ProductNum"].ToString();
  87. txtEQPCODE.Text = dt.Rows[0]["EQPCODE"].ToString();
  88. txtNCTPType.Text = dt.Rows[0]["NCTPType"].ToString();
  89. txtEQPDESC.Text = dt.Rows[0]["EQPName"].ToString();
  90. txtProductUser.Text = dt.Rows[0]["ProductUser"].ToString();
  91. txtUnitTP.Text = dt.Rows[0]["UnitTP"].ToString();
  92. txtMUSERName.Text = AppConfig.UserName;
  93. txtMTIME.Text = AppConfig.GetSeverDateTime("yyyy-MM-dd hh:mm:ss").ToString();
  94. //txtEQPTypeCode.Text = dt.Rows[0]["EQPTypeCode"].ToString();
  95. txtDESC.Text = dt.Rows[0]["EATTRIBUTE1"].ToString();
  96. //txtEQPTypeName.Text = dt.Rows[0]["EQPTypeName"].ToString();
  97. }
  98. }
  99. private string check()
  100. {
  101. string msg = "";
  102. Decimal decValue = 0m;
  103. if (txtProductDate.Text.Trim() == "")
  104. {
  105. msg += "生产日期不能为空!\n";
  106. }
  107. else
  108. {
  109. string sql = @" SELECT b.*
  110. FROM [Sys_EnumKey] a left join [Sys_EnumValues] b on a.[EnumKey] = b.[EnumKey]
  111. where a.[EnumKey] = '036'";
  112. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text,sql).Tables[0];
  113. bool userflag = false;
  114. foreach (DataRow dr in dt.Rows)
  115. {
  116. if (dr["EnumValue"].ToString() == AppConfig.UserCode)
  117. {
  118. userflag = true;
  119. }
  120. }
  121. if (!userflag)
  122. {
  123. DateTime dateNow = AppConfig.GetSeverDateTime("yyyy-MM-dd");
  124. TimeSpan ts = new TimeSpan();
  125. ts = AppConfig.GetSeverDateTime("yyyy-MM-dd hh:mm:ss").Subtract(DateTime.Parse(txtProductDate.Text.Trim()));
  126. if (ts.TotalHours >= 48 || ts.TotalHours < 0)
  127. {
  128. msg += "日期只能只能输入当天和前一天!\n";
  129. }
  130. }
  131. }
  132. if (txtOPCODE.Text.Trim() == "")
  133. msg += "工序代码不能为空!\n";
  134. if (txtProductNum.Text.Trim() == "")
  135. msg += "加工数量不能为空!\n";
  136. if (txtEQPCODE.Text.Trim() == "")
  137. msg += "设备编号不能为空!\n";
  138. if (txtUnitTP.Text.Trim() == "")
  139. msg += "单位工时不能为空!\n";
  140. if (txtProductUser.Text.Trim() == "")
  141. msg += "加工人员不能为空!\n";
  142. else
  143. {
  144. if (!Decimal.TryParse(txtUnitTP.Text.Trim(), out decValue))
  145. {
  146. msg += "标准工时格式不正确!\n";
  147. }
  148. }
  149. return msg;
  150. }
  151. private void btnOK_Click(object sender, EventArgs e)
  152. {
  153. try
  154. {
  155. string msg = check();
  156. if (!string.IsNullOrEmpty(msg))
  157. {
  158. ICSBaseSimpleCode.AppshowMessageBox(msg);
  159. return;
  160. }
  161. //if (CheckMOWip(this.txtProductMO.Text.Trim(),this.txtOPCODE.Text.Trim()))
  162. //{
  163. // ICSBaseSimpleCode.AppshowMessageBox("工单:"+ this.txtProductMO.Text.Trim() + ",工序:" + this.txtOPCODE.Text.Trim() +" 已有扫码加工记录!" );
  164. // return;
  165. //}
  166. ICSNCTP nctp = new ICSNCTP();
  167. nctp.guid = nctpid;
  168. nctp.NCTPType = txtNCTPType.Text;
  169. nctp.ProductDate = DateTime.Parse(txtProductDate.Text);
  170. nctp.ProductMO = txtProductMO.Text;
  171. nctp.ItemCode = gluItemCode.Text;
  172. nctp.ItemName = txtItemName.Text;
  173. nctp.ProjectCode = txtProjectCode.Text;
  174. nctp.OPCode = txtOPCODE.Text;
  175. nctp.ProductNum = decimal.Parse(txtProductNum.Text);
  176. nctp.EQPCode = txtEQPCODE.Text;
  177. nctp.EQPName = txtEQPDESC.Text;
  178. nctp.UnitTP = Convert.ToDecimal(txtUnitTP.Text.Equals("") ? "0" : txtUnitTP.Text);
  179. nctp.TotalTP = nctp.UnitTP * nctp.ProductNum;
  180. nctp.ProductUser = txtProductUser.Text;
  181. nctp.Status = "新增";
  182. nctp.MUSER = AppConfig.UserCode;
  183. nctp.MUSERName = AppConfig.UserName;
  184. // nctp.MTIME = DateTime.Now;
  185. nctp.WorkPoint = AppConfig.WorkPointCode;
  186. nctp.EATTRIBUTE1 = this.txtDESC.Text.Trim();
  187. //eqpstp.EQPTypeCode = txtEQPTypeCode.Text;
  188. nctp.DeptCheckTime = DateTime.Now;
  189. ICSNCTPBLL.Add(nctp, AppConfig.AppConnectString);
  190. this.Close();
  191. this.DialogResult = DialogResult.Yes;
  192. }
  193. catch (Exception ex) {
  194. MessageBox.Show(ex.Message);
  195. }
  196. }
  197. #region 关闭
  198. private void btnCancle_Click(object sender, EventArgs e)
  199. {
  200. this.Close();
  201. //this.DialogResult = DialogResult.Cancel;
  202. }
  203. private void btnClose_Click(object sender, EventArgs e)
  204. {
  205. this.Close();
  206. //this.DialogResult = DialogResult.Cancel;
  207. }
  208. #endregion
  209. #region 存货编码按钮
  210. private void txtItemCode_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
  211. {
  212. ButtonEdit btn = (ButtonEdit)sender;
  213. string sql = "select distinct guid as [产品ID],ItemCode as [存货编码],ItemName as [存货名称] from dbo.Base_Inventory with(nolock) WHERE 1=1";
  214. //object obj = AppConfig.InvokeWebservice(AppConfig.BaseServiceUri, "WebBaseService", "BaseService", "GetHuaRongErpConnectString", new object[] { });
  215. //if (obj == null)
  216. //{
  217. // ICSBaseSimpleCode.AppshowMessageBox(1, "ERP数据库连接取得失败!");
  218. //}
  219. DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  220. FormDataRefer reForm = new FormDataRefer();
  221. reForm.FormTitle = "产品信息";
  222. DataTable menuData = data;
  223. reForm.DataSource = menuData;
  224. reForm.MSelectFlag = false;
  225. reForm.RowIndexWidth = 35;
  226. reForm.HideCols.Add("产品ID");
  227. reForm.FormWidth = 500;
  228. reForm.FormHeight = 500;
  229. //reForm.FilterKey = btn.Text;
  230. //grvDetail.GetRowCellValue(grvDetail.FocusedRowHandle, grvDetail.FocusedColumn).ToString().Trim();
  231. if (reForm.ShowDialog() == DialogResult.OK)
  232. {
  233. DataTable retData = reForm.ReturnData;
  234. foreach (DataRow dr in retData.Rows)
  235. {
  236. //txtItemCode.Text = dr["存货编码"].ToString();
  237. //itemid = dr["产品ID"].ToString();
  238. txtItemName.Text = dr["存货名称"].ToString();
  239. }
  240. }
  241. }
  242. #endregion
  243. #region 工序代码按钮
  244. private void txtOPCODE_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
  245. {
  246. ButtonEdit btn = (ButtonEdit)sender;
  247. string sql = "";
  248. sql = @"select distinct a.OPID as [工序ID],
  249. a.OPCODE as [],
  250. b.OPDESC as []
  251. from ICSITEMROUTE2OP a
  252. left join ICSOP b on a.OPCODE=b.OPCODE
  253. where a.ITEMCODE='" + gluItemCode.Text + "' and 1=1";
  254. //where a.ITEMCODE='" + txtItemCode.Text + "' and 1=1";
  255. DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  256. if (data == null || data.Rows.Count == 0)
  257. {
  258. sql = @"select distinct a.OPID as [工序ID],
  259. a.OPCODE as [],
  260. c.OPDESC as []
  261. from ICSMODELROUTE2OP a
  262. left join Base_Inventory b on a.MODELCODE=b.ItemMainCategoryCode
  263. left join ICSOP c on a.OPCODE=c.OPCODE
  264. where b.ITEMCODE='" + gluItemCode.Text + "' and 1=1";
  265. //where b.ITEMCODE='" + txtItemCode.Text + "' and 1=1";
  266. //object obj = AppConfig.InvokeWebservice(AppConfig.BaseServiceUri, "WebBaseService", "BaseService", "GetHuaRongErpConnectString", new object[] { });
  267. //if (obj == null)
  268. //{
  269. // ICSBaseSimpleCode.AppshowMessageBox(1, "ERP数据库连接取得失败!");
  270. //}
  271. data = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  272. }
  273. FormDataRefer reForm = new FormDataRefer();
  274. reForm.FormTitle = "工序信息";
  275. DataTable menuData = data;
  276. reForm.DataSource = menuData;
  277. reForm.MSelectFlag = false;
  278. reForm.RowIndexWidth = 35;
  279. reForm.HideCols.Add("工序ID");
  280. reForm.FormWidth = 500;
  281. reForm.FormHeight = 500;
  282. //reForm.FilterKey = btn.Text;
  283. //grvDetail.GetRowCellValue(grvDetail.FocusedRowHandle, grvDetail.FocusedColumn).ToString().Trim();
  284. if (reForm.ShowDialog() == DialogResult.OK)
  285. {
  286. DataTable retData = reForm.ReturnData;
  287. foreach (DataRow dr in retData.Rows)
  288. {
  289. txtOPCODE.Text = dr["工序代码"].ToString();
  290. //opid = dr["工序ID"].ToString();
  291. txtOPDESC.Text = dr["工序"].ToString();
  292. }
  293. }
  294. }
  295. #endregion
  296. #region 设备编号按钮
  297. private void txtEQPCODE_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
  298. {
  299. // ButtonEdit btn = (ButtonEdit)sender;
  300. // string sql = @"select distinct EQPID as [设备ID], EQPCode as [设备编号],EQPName as [设备名称] from dbo.ICSEquipment
  301. // where EType='"+txtEQPTypeName.Text+"'";
  302. // DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  303. // FormDataRefer reForm = new FormDataRefer();
  304. // reForm.FormTitle = "设备信息";
  305. // DataTable menuData = data;
  306. // reForm.DataSource = menuData;
  307. // reForm.MSelectFlag = false;
  308. // reForm.RowIndexWidth = 35;
  309. // reForm.HideCols.Add("设备ID");
  310. // reForm.FormWidth = 500;
  311. // reForm.FormHeight = 500;
  312. // //reForm.FilterKey = btn.Text;
  313. // //grvDetail.GetRowCellValue(grvDetail.FocusedRowHandle, grvDetail.FocusedColumn).ToString().Trim();
  314. // if (reForm.ShowDialog() == DialogResult.OK)
  315. // {
  316. // DataTable retData = reForm.ReturnData;
  317. // foreach (DataRow dr in retData.Rows)
  318. // {
  319. // txtEQPCODE.Text = dr["设备编号"].ToString();
  320. // //opid = dr["设备ID"].ToString();
  321. // txtEQPDESC.Text = dr["设备名称"].ToString();
  322. // }
  323. // }
  324. }
  325. #endregion
  326. private void gluItemCode_EditValueChanged(object sender, EventArgs e)
  327. {
  328. //var o = gluItemCode.Properties.GetRowByKeyValue(gluItemCode.EditValue);
  329. //if (o is DataRowView)
  330. //{
  331. // DataRowView RowView = o as DataRowView;
  332. // txtItemName.Text = RowView.Row["存货名称"].ToString();
  333. //}
  334. //init3();
  335. }
  336. private void init3()
  337. {
  338. #region 工序代码
  339. string sql2 = @"select distinct
  340. a.OPCODE as [],
  341. b.OPDESC as []
  342. from ICSITEMROUTE2OP a
  343. left join ICSOP b on a.OPCODE=b.OPCODE
  344. where a.ITEMCODE='" + gluItemCode.Text + "' and 1=1";
  345. //where a.ITEMCODE='" + txtItemCode.Text + "' and 1=1";
  346. DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql2).Tables[0];
  347. if (data == null || data.Rows.Count == 0)
  348. {
  349. sql2 = @"select distinct
  350. a.OPCODE as [],
  351. c.OPDESC as []
  352. from ICSMODELROUTE2OP a
  353. left join Base_Inventory b on a.MODELCODE=b.ItemMainCategoryCode
  354. left join ICSOP c on a.OPCODE=c.OPCODE
  355. where b.ITEMCODE='" + gluItemCode.Text + "' and 1=1";
  356. data = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql2).Tables[0];
  357. }
  358. txtOPCODE.Properties.ValueMember = "工序代码";
  359. txtOPCODE.Properties.DisplayMember = "工序代码";
  360. txtOPCODE.Properties.DataSource = data;
  361. txtOPCODE.Properties.NullText = "";//空时的值
  362. txtOPCODE.Properties.ImmediatePopup = true;//输入值是否马上弹出窗体
  363. txtOPCODE.Properties.ValidateOnEnterKey = true;//回车确认
  364. txtOPCODE.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard;//要使用户可以输入,这里须设为Standard
  365. txtOPCODE.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.True; //可用Ctrl + Delete清空选择內容
  366. //自适应宽度
  367. txtOPCODE.Properties.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup;
  368. #endregion
  369. }
  370. #region 初始化查询条件
  371. private void init()
  372. {
  373. #region 生产订单号
  374. string sql = @"SELECT DISTINCT a.MOCODE AS [生产订单号],a.ITEMCODE as [存货编码],b.INVNAME AS [存货名称],
  375. a.MOUSER as[] FROM ICSMO a left join ICSINVENTORY b on a.ITEMCODE=b.INVCODE where 1=1 ORDER BY a.ITEMCODE";
  376. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  377. txtProductMO.Properties.ValueMember = "生产订单号";
  378. txtProductMO.Properties.DisplayMember = "生产订单号";
  379. txtProductMO.Properties.DataSource = dt;
  380. txtProductMO.Properties.NullText = "";//空时的值
  381. txtProductMO.Properties.ImmediatePopup = true;//输入值是否马上弹出窗体
  382. txtProductMO.Properties.ValidateOnEnterKey = true;//回车确认
  383. txtProductMO.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard;//要使用户可以输入,这里须设为Standard
  384. txtProductMO.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.True; //可用Ctrl + Delete清空选择內容
  385. //自适应宽度
  386. txtProductMO.Properties.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup;
  387. #endregion
  388. #region 人员代码
  389. string sql3 = "select distinct UserCode as [人员代码],UserName as [人员名称] from dbo.Sys_User with(nolock) WHERE 1=1";
  390. DataTable dt3 = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql3).Tables[0];
  391. txtProductUser.Properties.ValueMember = "人员代码";
  392. txtProductUser.Properties.DisplayMember = "人员代码";
  393. txtProductUser.Properties.DataSource = dt3;
  394. txtProductUser.Properties.NullText = "";//空时的值
  395. txtProductUser.Properties.ImmediatePopup = true;//输入值是否马上弹出窗体
  396. txtProductUser.Properties.ValidateOnEnterKey = true;//回车确认
  397. txtProductUser.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard;//要使用户可以输入,这里须设为Standard
  398. txtProductUser.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.True; //可用Ctrl + Delete清空选择內容
  399. //自适应宽度
  400. txtProductUser.Properties.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup;
  401. #endregion
  402. #region 设备编号
  403. string sql1 = "select distinct EQPCode as [设备编号],EQPName as [设备名称] from dbo.ICSEquipment with(nolock) WHERE 1=1";
  404. DataTable dt1 = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql1).Tables[0];
  405. txtEQPCODE.Properties.ValueMember = "设备编号";
  406. txtEQPCODE.Properties.DisplayMember = "设备编号";
  407. txtEQPCODE.Properties.DataSource = dt1;
  408. txtEQPCODE.Properties.NullText = "";//空时的值
  409. txtEQPCODE.Properties.ImmediatePopup = true;//输入值是否马上弹出窗体
  410. txtEQPCODE.Properties.ValidateOnEnterKey = true;//回车确认
  411. txtEQPCODE.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard;//要使用户可以输入,这里须设为Standard
  412. txtEQPCODE.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.True; //可用Ctrl + Delete清空选择內容
  413. //自适应宽度
  414. txtEQPCODE.Properties.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup;
  415. #endregion
  416. #region 工序代码
  417. string sql2 = @"select distinct c.OPCODE as [工序代码],d.OPDESC as [工序] from ICSMO a inner join dbo.ICSMO2ROUTE b on a.ID=b.MOID
  418. inner join dbo.ICSITEMROUTE2OP c on b.ROUTEID=c.ROUTEID AND a.ITEMCODE=c.ITEMCODE inner join dbo.ICSOP d on d.ID=c.OPID ";
  419. DataTable dt2 = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql2).Tables[0];
  420. txtOPCODE.Properties.ValueMember = "工序代码";
  421. txtOPCODE.Properties.DisplayMember = "工序代码";
  422. txtOPCODE.Properties.DataSource = dt2;
  423. txtOPCODE.Properties.NullText = "";//空时的值
  424. txtOPCODE.Properties.ImmediatePopup = true;//输入值是否马上弹出窗体
  425. txtOPCODE.Properties.ValidateOnEnterKey = true;//回车确认
  426. txtOPCODE.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard;//要使用户可以输入,这里须设为Standard
  427. txtOPCODE.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.True; //可用Ctrl + Delete清空选择內容
  428. //自适应宽度
  429. txtOPCODE.Properties.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup;
  430. #endregion
  431. #region 申请单类型
  432. DataTable dttype = new DataTable();
  433. dttype.Columns.Add("单据类型");
  434. DataRow dr = dttype.NewRow();
  435. dr["单据类型"] = "普通";
  436. dttype.Rows.Add(dr);
  437. dr = dttype.NewRow();
  438. dr["单据类型"] = "研发支援";
  439. dttype.Rows.Add(dr);
  440. txtNCTPType.Properties.ValueMember = "单据类型";
  441. txtNCTPType.Properties.DisplayMember = "单据类型";
  442. txtNCTPType.Properties.DataSource = dttype;
  443. txtNCTPType.Properties.NullText = "";//空时的值
  444. txtNCTPType.Properties.ImmediatePopup = true;//输入值是否马上弹出窗体
  445. txtNCTPType.Properties.ValidateOnEnterKey = true;//回车确认
  446. txtNCTPType.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard;//要使用户可以输入,这里须设为Standard
  447. txtNCTPType.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.True; //可用Ctrl + Delete清空选择內容
  448. //自适应宽度
  449. txtNCTPType.Properties.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup;
  450. #endregion
  451. }
  452. #endregion
  453. private void txtEQPCODE_EditValueChanged(object sender, EventArgs e)
  454. {
  455. var o = txtEQPCODE.Properties.GetRowByKeyValue(txtEQPCODE.EditValue);
  456. if (o is DataRowView)
  457. {
  458. DataRowView RowView = o as DataRowView;
  459. txtEQPDESC.Text = RowView.Row["设备名称"].ToString();
  460. }
  461. }
  462. private void txtOPCODE_EditValueChanged(object sender, EventArgs e)
  463. {
  464. var o = txtOPCODE.Properties.GetRowByKeyValue(txtOPCODE.EditValue);
  465. if (o is DataRowView)
  466. {
  467. DataRowView RowView = o as DataRowView;
  468. txtOPDESC.Text = RowView.Row["工序"].ToString();
  469. }
  470. }
  471. private void label7_Click(object sender, EventArgs e)
  472. {
  473. }
  474. #region 生产订单号改变时
  475. private void txtProductMO_EditValueChanged(object sender, EventArgs e)
  476. {
  477. var o = txtProductMO.Properties.GetRowByKeyValue(txtProductMO.EditValue);
  478. if (o is DataRowView)
  479. {
  480. DataRowView RowView = o as DataRowView;
  481. gluItemCode.Text = RowView.Row["存货编码"].ToString();
  482. txtItemName.Text = RowView.Row["存货名称"].ToString();
  483. txtProjectCode.Text = RowView.Row["项目号"].ToString();
  484. }
  485. //init2();
  486. }
  487. #endregion
  488. private bool CheckMOWip(string MoCode,string OpCode)
  489. {
  490. string sql = @"select Count(*) as num From [dbo].[ICSLOTONWIP] wip where wip.MoCode = '" + MoCode + "' And wip.OpCode = '" + OpCode + "'";
  491. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  492. if (dt.Rows.Count > 0)
  493. {
  494. if ( int.Parse( dt.Rows[0]["num"].ToString()) > 0)
  495. {
  496. return true;
  497. }
  498. }
  499. return false;
  500. }
  501. private void panelControl1_Paint(object sender, PaintEventArgs e)
  502. {
  503. }
  504. }
  505. }