Files
lserp_cs_6.0/插件库/Lskj.Layang/FormMain.cs
T
cyf ab56a9bcf7 基线 SVN r240
SVN-Revision: r240
2025-02-06 06:46:06 +00:00

645 lines
27 KiB
C#

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 公共常量
/// <summary>
/// </summary>
public DataTable dt;
public DataTable qsDt;
public DataTable qslDt;
public DataTable jtDt;
#endregion
#region 私有变量
/// <summary>
/// 工单号
/// </summary>
private String gdbillid;
/// <summary>
/// 拉样模型
/// </summary>
public DynamicLaYangModel SysModel;
/// <summary>
/// QS=确色拉样,QSLD=确色拉大,JTLD=机台拉大
/// </summary>
private String TmQzTag;
/// <summary>
/// 次数
/// </summary>
private int qsCount;
/// <summary>
/// 用料数量
/// </summary>
private decimal qsAmount;
/// <summary>
/// 操作员id
/// </summary>
private int operatorid;
/// <summary>
/// 操作员名
/// </summary>
private String operatorname;
/// <summary>
/// 班组
/// </summary>
private String bz = "1班";
/// <summary>
/// 班次
/// </summary>
private String bc = "白班";
/// <summary>
/// 机台id
/// </summary>
private int jtid = 56;
/// <summary>
/// 当前点击次数
/// </summary>
int cutCount;
/// </summary>
///计算sqlValue
/// </summary>
string sqlValue;
/// </summary>
///执行SQL
/// </summary>
string ExecParam;
List<string> CalSqlValue = new List<string>();
#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();
}
}
/// <summary>
/// <para>说明:动态加载界面</para>
/// </summary>
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]);
}
}
}
/// <summary>
/// 查询表格数据
/// </summary>
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 事件相关
/// <summary>
/// 按钮刷新事件
/// </summary>
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);
}
}
/// <summary>
/// 确色拉样按钮点击事件
/// </summary>
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);
}
}
/// <summary>
/// 确色大张按钮点击事件
/// </summary>
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);
}
}
/// <summary>
/// 机台大张按钮点击事件
/// </summary>
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);
}
}
/// <summary>
/// 拉样完工点击按钮点击事件
/// </summary>
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
/// <summary>
/// 数据合计
/// </summary>
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"];
}
}
/// <summary>
/// <para>说明:拉样属性类</para>
/// </summary>
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; }
}
}
}