using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Lskj.Control; using DevExpress.XtraEditors; using Lskj.Business.Impl; using Lskj.Core; using Lskj.Model; using Lskj.Util; using Lskj.Control.Model; namespace Lskj.layang { public partial class FormMain : BaseForm { SimpleButton[] qsButton = new SimpleButton[12]; SimpleButton[] qsldButton = new SimpleButton[10]; SimpleButton[] jtldButton = new SimpleButton[10]; MemoEdit[] mem = new MemoEdit[12]; string[] tmqz = new string[] { "QS", "QSLD", "JTLD" }; #region 公共常量 /// /// public DataTable dt; public DataTable qsDt; public DataTable qslDt; public DataTable jtDt; #endregion #region 私有变量 /// /// 工单号 /// private String gdbillid; /// /// 拉样模型 /// public DynamicLaYangModel SysModel; /// /// QS=确色拉样,QSLD=确色拉大,JTLD=机台拉大 /// private String TmQzTag; /// /// 次数 /// private int qsCount; /// /// 用料数量 /// private decimal qsAmount; /// /// 操作员id /// private int operatorid; /// /// 操作员名 /// private String operatorname; /// /// 班组 /// private String bz = "1班"; /// /// 班次 /// private String bc = "白班"; /// /// 机台id /// private int jtid = 56; /// /// 当前点击次数 /// int cutCount; /// ///计算sqlValue /// string sqlValue; /// ///执行SQL /// string ExecParam; List CalSqlValue = new List(); #endregion public FormMain() { InitializeComponent(); } protected override void OnLoad(EventArgs e) { try { FormLoad(); foreach (string item in tmqz) { btnRefresh(item); } TotalData(); } catch (Exception ex) { LogHelper.Instance.WriteError(ex); string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message,ex.Message); } finally { Lskj.Control.Model.AutoSizeChange.ControllInitializeSize(this); WaitForm.HideForm(); } } /// /// 说明:动态加载界面 /// private void FormLoad() { gdbillid = this.SysModel.gdbillid; sqlValue = this.SysModel.sqlValue; ExecParam = this.SysModel.execParam; operatorname = ERPInfo.Instance.UserName; CalSqlValue = sqlValue.Split(';').Where(s => !string.IsNullOrEmpty(s)).ToList(); //bc = ERPInfo.Instance.WorkBZ; //bz = ERPInfo.Instance.ClassName; //jtid = ERPInfo.Instance.WorkJT; if (DBConfig.Instance.CreateConnection()) { //执行SQL语句查询表格数据 dt = SqlHelper.ExecuteDataTable(string.Format("select operatordate,qscount,amount,TmQz from view_BillOutExpendTab where gdbillid='{0}'", gdbillid)); queryDataTable(); //换行后的宽度 int newWidth = 0; //动态添加按钮 for (int i = 0; i < qsButton.Length; i++) { qsButton[i] = new SimpleButton(); int width = i * 77; if (width < 770) { qsButton[i].Text = (i + 1).ToString(); qsButton[i].Location = new Point(width + 67, 9); qsButton[i].Size = new Size(72, 72); qsButton[i].Parent = this.qs_panel; qsButton[i].Enabled = false; qsButton[i].Appearance.BackColor = Color.Gainsboro; qsButton[i].ButtonStyle = DevExpress.XtraEditors.Controls.BorderStyles.HotFlat; qsButton[i].Appearance.Options.UseBackColor = true; qsButton[i].LookAndFeel.Style = DevExpress.LookAndFeel.LookAndFeelStyle.UltraFlat; qsButton[i].LookAndFeel.UseDefaultLookAndFeel = false; qsButton[i].Click += new EventHandler(this.QsButton_Click); } else { qsButton[i].Text = (i + 1).ToString(); qsButton[i].Location = new Point(newWidth + 67, 88); qsButton[i].Size = new Size(72, 72); qsButton[i].Parent = this.qs_panel; qsButton[i].Enabled = false; qsButton[i].Appearance.BackColor = Color.Gainsboro; qsButton[i].ButtonStyle = DevExpress.XtraEditors.Controls.BorderStyles.HotFlat; qsButton[i].Appearance.Options.UseBackColor = true; qsButton[i].LookAndFeel.Style = DevExpress.LookAndFeel.LookAndFeelStyle.UltraFlat; qsButton[i].LookAndFeel.UseDefaultLookAndFeel = false; qsButton[i].Click += new EventHandler(this.QsButton_Click); newWidth += 77; } LyAttributes ly = new LyAttributes(); ly.TmQzTag = "QS"; ly.qsCount = i + 1; DataTable newdt = dt.Select("TmQz='QS'") != null && dt.Select("TmQz='QS'").Length > 0 ? dt.Select("TmQz='QS'").CopyToDataTable() : null; if (newdt != null && newdt.Rows.Count > 0) { DataRow[] newdr = newdt.Select(string.Format("qscount='{0}'", i + 1)); if (newdr.Length > 0) { ly.qsAmount = Convert.ToDecimal(newdr[0]["amount"]); ly.qsCount = Convert.ToInt32(newdr[0]["qscount"]); } } ly.mem = mem[i]; qsButton[i].Tag = ly; this.qs_panel.Controls.Add(qsButton[i]); } //动态添加确色大张按钮和编辑框 for (int i = 0; i < qsldButton.Length; i++) { qsldButton[i] = new SimpleButton(); mem[i] = new MemoEdit(); qsldButton[i].Text = (i + 1).ToString(); qsldButton[i].Location = new Point((i + 1) * 77 + 67, 7); mem[i].Location = new Point((i + 1) * 77 + 67, 79); mem[i].Enabled = false; qsldButton[i].Parent = this.qsld_panel; qsldButton[i].Size = new Size(72, 72); qsldButton[i].Enabled = false; qsldButton[i].Appearance.BackColor = Color.Gainsboro; qsldButton[i].ButtonStyle = DevExpress.XtraEditors.Controls.BorderStyles.HotFlat; qsldButton[i].Appearance.Options.UseBackColor = true; qsldButton[i].LookAndFeel.Style = DevExpress.LookAndFeel.LookAndFeelStyle.UltraFlat; qsldButton[i].LookAndFeel.UseDefaultLookAndFeel = false; mem[i].Size = new Size(72, 72); mem[i].BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.HotFlat; mem[i].Properties.ScrollBars = System.Windows.Forms.ScrollBars.None; mem[i].Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; mem[i].Properties.Appearance.TextOptions.WordWrap = DevExpress.Utils.WordWrap.Wrap; qsldButton[i].TabIndex = i + 1; qsldButton[i].Click += new EventHandler(this.QsdzButton_Click); LyAttributes ly = new LyAttributes(); ly.TmQzTag = "QSLD"; ly.qsCount = i + 1; DataTable newdt = dt.Select("TmQz='QSLD'") != null && dt.Select("TmQz='QSLD'").Length > 0 ? dt.Select("TmQz='QSLD'").CopyToDataTable() : null; if (newdt != null && newdt.Rows.Count > 0) { DataRow[] newdr = newdt.Select(string.Format("qscount='{0}'", i + 1)); if (newdr.Length > 0) { ly.qsAmount = Convert.ToDecimal(newdr[0]["amount"]); ly.qsCount = Convert.ToInt32(newdr[0]["qscount"]); } } ly.mem = mem[i]; qsldButton[i].Tag = ly; mem[i].Text = ly.qsAmount.ToString("0.##"); this.qsld_panel.Controls.Add(qsldButton[i]); this.qsld_panel.Controls.Add(mem[i]); } //动态添加机台大张按钮和编辑框 for (int i = 0; i < jtldButton.Length; i++) { jtldButton[i] = new SimpleButton(); mem[i] = new MemoEdit(); jtldButton[i].Text = (i + 1).ToString(); jtldButton[i].Location = new Point((i + 1) * 77 + 67, 7); mem[i].Location = new Point((i + 1) * 77 + 67, 79); mem[i].Enabled = false; jtldButton[i].Parent = this.jtld_panel; jtldButton[i].Size = new Size(72, 72); jtldButton[i].Enabled = false; jtldButton[i].Appearance.BackColor = Color.Gainsboro; jtldButton[i].ButtonStyle = DevExpress.XtraEditors.Controls.BorderStyles.HotFlat; jtldButton[i].Appearance.Options.UseBackColor = true; jtldButton[i].LookAndFeel.Style = DevExpress.LookAndFeel.LookAndFeelStyle.UltraFlat; jtldButton[i].LookAndFeel.UseDefaultLookAndFeel = false; mem[i].Size = new Size(72, 72); mem[i].BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.HotFlat; mem[i].Properties.ScrollBars = System.Windows.Forms.ScrollBars.None; mem[i].Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; mem[i].Properties.Appearance.TextOptions.WordWrap = DevExpress.Utils.WordWrap.Wrap; mem[i].TabIndex = i + 1; jtldButton[i].Click += new EventHandler(this.JtdzButton_Click); LyAttributes ly = new LyAttributes(); ly.TmQzTag = "JTLD"; ly.qsCount = i + 1; DataTable newdt = dt.Select("TmQz='JTLD'") != null && dt.Select("TmQz='JTLD'").Length > 0 ? dt.Select("TmQz='JTLD'").CopyToDataTable() : null; if (newdt != null && newdt.Rows.Count > 0) { DataRow[] newdr = newdt.Select(string.Format("qscount='{0}'", i + 1)); if (newdr.Length > 0) { ly.qsAmount = Convert.ToDecimal(newdr[0]["amount"]); ly.qsCount = Convert.ToInt32(newdr[0]["qsCount"]); } } ly.mem = mem[i]; jtldButton[i].Tag = ly; mem[i].Text = ly.qsAmount.ToString("0.##"); this.jtld_panel.Controls.Add(jtldButton[i]); this.jtld_panel.Controls.Add(mem[i]); } } } /// /// 查询表格数据 /// private void queryDataTable() { qsDt = SqlHelper.ExecuteDataTable(string.Format("select qscount,amount,operatordate from view_BillOutExpendTab where gdbillid='{0}'AND TmQz='QS' order by qscount desc", gdbillid)); qslDt = SqlHelper.ExecuteDataTable(string.Format("select qscount,amount,operatordate from view_BillOutExpendTab where gdbillid='{0}'AND TmQz='QSLD' order by qscount desc", gdbillid)); jtDt = SqlHelper.ExecuteDataTable(string.Format("select qscount,amount,operatordate from view_BillOutExpendTab where gdbillid='{0}'AND TmQz='JTLD' order by qscount desc", gdbillid)); } #region 事件相关 /// /// 按钮刷新事件 /// private void btnRefresh(string flag) { try { int allAmount = 0; DateTime clickTime; if ("QS".Equals(flag + "")) { if (qsDt != null) { if (qsDt.Rows.Count == 0) { qsButton[0].Enabled = true; } else { cutCount = Convert.ToInt32(qsDt.Rows[0]["qscount"]); if (cutCount < qsButton.Length) { int j = cutCount; qsButton[cutCount].Enabled = true; for (int i = 0; i < cutCount; i++) { j -= 1; qsButton[i].Appearance.BackColor = Color.LightSteelBlue; clickTime = Convert.ToDateTime(qsDt.Rows[j]["operatordate"].ToString()); qsButton[i].Text = (i + 1) + "\n" + clickTime.ToShortDateString() + "\n" + clickTime.ToShortTimeString(); } } this.qs_count.Text = "总次数(次)" + "\n" + cutCount; this.qs_amount.Text = "总重量(KG)" + "\n" + 3; } } } if ("QSLD".Equals(flag + "")) { if (qslDt != null) { if (qslDt.Rows.Count == 0) { qsldButton[0].Enabled = true; } else { cutCount = Convert.ToInt32(qslDt.Rows[0]["qscount"]); if (cutCount < qsldButton.Length) { int j = cutCount; qsldButton[cutCount].Enabled = true; for (int i = 0; i < cutCount; i++) { j -= 1; qsAmount = Convert.ToInt32(qslDt.Rows[i]["amount"]); qsldButton[i].Appearance.BackColor = Color.LightSteelBlue; allAmount += Convert.ToInt32(qsAmount); clickTime = Convert.ToDateTime(qslDt.Rows[j]["operatordate"].ToString()); qsldButton[i].Text = (i + 1) + "\n" + clickTime.ToShortDateString() + "\n" + clickTime.ToShortTimeString(); } } this.qsdz_count.Text = "总次数(次)" + "\n" + cutCount; this.qsdz_amount.Text = "总重量(KG)" + "\n" + allAmount; } } } if ("JTLD".Equals(flag + "")) { if (jtDt != null) { if (jtDt.Rows.Count == 0) { jtldButton[0].Enabled = true; } else { cutCount = Convert.ToInt32(jtDt.Rows[0]["qscount"]); if (cutCount < jtldButton.Length) { int j = cutCount; jtldButton[cutCount].Enabled = true; for (int i = 0; i < cutCount; i++) { j -= 1; jtldButton[i].Appearance.BackColor = Color.LightSteelBlue; qsAmount = Convert.ToInt32(jtDt.Rows[i]["amount"]); allAmount += Convert.ToInt32(qsAmount); clickTime = Convert.ToDateTime(jtDt.Rows[j]["operatordate"].ToString()); jtldButton[i].Text = (i + 1) + "\n" + clickTime.ToShortDateString() + "\n" + clickTime.ToShortTimeString(); } } this.jtdz_count.Text = "总次数(次)" + "\n" + cutCount; this.jtdz_amount.Text = "总重量(KG)" + "\n" + allAmount; } } } } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message,ex.Message); } } /// /// 确色拉样按钮点击事件 /// private void QsButton_Click(object sender, EventArgs e) { try { SimpleButton button = (SimpleButton)sender; LyAttributes ly = button.Tag as LyAttributes; qsCount = Convert.ToInt32(button.Text); qsAmount = ly.qsAmount; TmQzTag = ly.TmQzTag; // 验证拉样存储过程 string tipMsg = string.Empty; if (PullSampleImpl.Pullsample(gdbillid, TmQzTag, qsCount, qsAmount, operatorid, operatorname, bz, bc, jtid, out tipMsg) == 1) { queryDataTable(); button.Enabled = false; btnRefresh(TmQzTag); TotalData(); MessageUtil.Show("执行成功!"); } else { //返回错误信息 MessageUtil.Show(tipMsg); } } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message,ex.Message); } } /// /// 确色大张按钮点击事件 /// private void QsdzButton_Click(object sender, EventArgs e) { try { SimpleButton button = (SimpleButton)sender; LyAttributes ly = button.Tag as LyAttributes; if (button.Text != "保存") { button.Text = "保存"; ly.mem.Enabled = true; } else { qsAmount = Convert.ToDecimal(ly.mem.Text); qsCount = ly.qsCount; TmQzTag = ly.TmQzTag; if (qsAmount > 45) { MessageBox.Show("数量不能超过45kg"); } else { // 验证拉样存储过程 string tipMsg = string.Empty; if (PullSampleImpl.Pullsample(gdbillid, TmQzTag, qsCount, qsAmount, operatorid, operatorname, bz, bc, jtid, out tipMsg) == 1) { queryDataTable(); button.Enabled = false; button.BackColor = Color.Silver; ly.mem.Enabled = false; btnRefresh(TmQzTag); TotalData(); MessageUtil.Show("执行成功!"); } else { //返回错误信息 MessageUtil.Show(tipMsg); } } } } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message,ex.Message); } } /// /// 机台大张按钮点击事件 /// private void JtdzButton_Click(object sender, EventArgs e) { try { SimpleButton button = (SimpleButton)sender; LyAttributes ly = button.Tag as LyAttributes; if (button.Text != "保存") { button.Text = "保存"; ly.mem.Enabled = true; } else { qsAmount = Convert.ToDecimal(ly.mem.Text); qsCount = ly.qsCount; TmQzTag = ly.TmQzTag; if (qsAmount > 45) { MessageBox.Show("数量不能超过45kg"); } else { // 验证拉样存储过程 string tipMsg = string.Empty; if (PullSampleImpl.Pullsample(gdbillid, TmQzTag, qsCount, qsAmount, operatorid, operatorname, bz, bc, jtid, out tipMsg) == 1) { queryDataTable(); button.Enabled = false; button.BackColor = Color.Silver; ly.mem.Enabled = false; btnRefresh(TmQzTag); TotalData(); MessageUtil.Show("执行成功!"); } else { //返回错误信息 MessageUtil.Show(tipMsg); } } } } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message,ex.Message); } } /// /// 拉样完工点击按钮点击事件 /// private void OnFinishClick(object sender, EventArgs e) { DialogResult result = MessageUtil.Show(("是否确认拉样完工?"), MessageBoxButtons.YesNo); if (result == DialogResult.Yes) { string sqlValue = string.Format("update Mrp_WorkOrderTab set qswgtig=1 where GdBillid='{0}'", gdbillid); try { if (SqlHelper.ExecuteNonQuery(sqlValue) > 0) { SqlHelper.ExecuteNonQuery(ExecParam); } } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message,ex.Message); } } } #endregion /// /// 数据合计 /// private void TotalData() { //总次数 if (SqlHelper.ExecuteDataTable(CalSqlValue[0]).Rows.Count > 0) { this.all_count.Text = "总次数(次)\n" + SqlHelper.ExecuteDataTable(CalSqlValue[0]).Rows[0]["cs"]; } //总用时 if (SqlHelper.ExecuteDataTable(CalSqlValue[1]).Rows.Count > 0) { this.all_time.Text = "总用时(分)\n" + SqlHelper.ExecuteDataTable(CalSqlValue[1]).Rows[0]["zdate"]; } //总重量 if (SqlHelper.ExecuteDataTable(CalSqlValue[2]).Rows.Count > 0) { this.all_amount.Text = "总重量(KG)\n" + SqlHelper.ExecuteDataTable(CalSqlValue[2]).Rows[0]["zamount"]; } //平均用时 if (SqlHelper.ExecuteDataTable(CalSqlValue[3]).Rows.Count > 0) { this.average_time.Text = "平均每次用时(分)\n" + SqlHelper.ExecuteDataTable(CalSqlValue[3]).Rows[0]["pdate"]; } //截止用时 if (SqlHelper.ExecuteDataTable(CalSqlValue[4]).Rows.Count > 0) { this.Cutoff_time.Text = "截至当前用时(分)\n" + SqlHelper.ExecuteDataTable(CalSqlValue[4]).Rows[0]["ddate"]; } //版辊上机时间 if (SqlHelper.ExecuteDataTable(CalSqlValue[5]).Rows.Count > 0) { this.bk_boardtime.Text = "版辊上机时间\n" + SqlHelper.ExecuteDataTable(CalSqlValue[5]).Rows[0]["BGStartDt"]; } //挑战申请时间 if (SqlHelper.ExecuteDataTable(CalSqlValue[6]).Rows.Count > 0) { this.Challenge_time.Text = "挑战申请时间\n" + SqlHelper.ExecuteDataTable(CalSqlValue[6]).Rows[0]["tdsqdt"]; } //印刷开工时间 if (SqlHelper.ExecuteDataTable(CalSqlValue[7]).Rows.Count > 0) { this.Printing_time.Text = "印刷开工时间\n" + SqlHelper.ExecuteDataTable(CalSqlValue[7]).Rows[0]["Kgdate"]; } } /// /// 说明:拉样属性类 /// class LyAttributes { //标志 public string TmQzTag { get; set; } //用料数量 public decimal qsAmount { get; set; } //次数 public int qsCount { get; set; } public MemoEdit mem { get; set; } public LabelControl qs_countLab { get; set; } public LabelControl qs_amountLab { get; set; } } } }