Exemplo n.º 1
0
        private void ReflashData()
        {
            string s检验工位 = lookUpEdit检验工位.Text.Trim();

            if (s检验工位 == "")
            {
                return;
            }

            if (dateEdit单据日期.Text.Trim() == "" || dateEdit单据日期.DateTime < BaseFunction.ReturnDate("2018-10-01"))
            {
                return;
            }

            SqlConnection conn = new SqlConnection(DbHelperSQL.connectionString);

            conn.Open();
            SqlTransaction tran = conn.BeginTransaction();

            try
            {
                string sSQL = @"
select * 
from [dbo].[检验值] a
	left join [dbo].[检验标准档案] b on a.发射器编号 = b.发射器ID
where isnull(a.已取值,0) = 0
	and a.dtmCreate >= '{0}'
	and a.发射器编号 in (select 发射器ID from [dbo].[发射器档案设置] where [检验工位] = '{1}')
order by a.iID
";
                sSQL = string.Format(sSQL, dateEdit单据日期.DateTime.ToString("yyyy-MM-dd HH:mm:ss"), s检验工位);
                DataTable dt = DbHelperSQL.ExecuteDataset(tran, CommandType.Text, sSQL).Tables[0];


                if (dt != null && dt.Rows.Count > 0)
                {
                    txt发射器ID.EditValue  = dt.Rows[0]["发射器编号"].ToString().Trim();
                    txt量具品名.EditValue   = dt.Rows[0]["量具品名"].ToString().Trim();
                    txt测定项目.EditValue   = dt.Rows[0]["测定项目"].ToString().Trim();
                    txt测定项目日文.EditValue = dt.Rows[0]["测定项目日文"].ToString().Trim();
                    txt尺寸公差.EditValue   = dt.Rows[0]["尺寸公差"].ToString().Trim();

                    decimal d上限 = 9999999999999;
                    if (dt.Rows[0]["上限"].ToString().Trim() != "")
                    {
                        d上限 = BaseFunction.ReturnDecimal(dt.Rows[0]["上限"]);

                        txt上限.EditValue = d上限;
                    }
                    else
                    {
                        txt上限.EditValue = "MAX";
                    }
                    decimal d下限 = 0;
                    if (dt.Rows[0]["下限"].ToString().Trim() != "")
                    {
                        d下限             = BaseFunction.ReturnDecimal(dt.Rows[0]["下限"]);
                        txt下限.EditValue = d下限;
                    }

                    decimal d测量值 = BaseFunction.ReturnDecimal(dt.Rows[0]["测量数值"]);
                    txt测量值.EditValue = d测量值;

                    if (d测量值 <= d上限 && d测量值 >= d下限)
                    {
                        txtStatus.Text      = "OK";
                        txtStatus.ForeColor = Color.Black;
                    }
                    else
                    {
                        txtStatus.Text      = "NG";
                        txtStatus.ForeColor = Color.Red;
                    }

                    Model.工作台测量 mod = new 业务.Model.工作台测量();
                    mod.发射器ID  = BaseFunction.ReturnInt(dt.Rows[0]["发射器编号"]);
                    mod.工作台    = s检验工位;
                    mod.量具品名   = dt.Rows[0]["量具品名"].ToString().Trim();
                    mod.测定项目   = dt.Rows[0]["测定项目"].ToString().Trim();
                    mod.测定项目日文 = dt.Rows[0]["测定项目日文"].ToString().Trim();
                    mod.规格     = dt.Rows[0]["规格"].ToString().Trim();
                    mod.尺寸公差   = dt.Rows[0]["尺寸公差"].ToString().Trim();
                    if (dt.Rows[0]["下限"].ToString().Trim() != "")
                    {
                        mod.限 = BaseFunction.ReturnDecimal(dt.Rows[0]["下限"]);
                    }
                    if (dt.Rows[0]["上限"].ToString().Trim() != "")
                    {
                        mod.限 = BaseFunction.ReturnDecimal(dt.Rows[0]["上限"]);
                    }
                    mod.测量值      = BaseFunction.ReturnDecimal(dt.Rows[0]["测量数值"]);
                    mod.原始值      = BaseFunction.ReturnDecimal(dt.Rows[0]["测量数值"]);
                    mod.备注       = dt.Rows[0]["备注"].ToString().Trim();
                    mod.检验员      = txt检验员.Text.Trim();
                    mod.检验时间     = BaseFunction.ReturnDate(dt.Rows[0]["dtmCreate"]);
                    mod.操作员      = sUserName;
                    mod.SourceID = BaseFunction.ReturnLong(dt.Rows[0]["iID"]);
                    DAL.工作台测量 dal = new 业务.DAL.工作台测量();
                    sSQL = dal.Add(mod);
                    DbHelperSQL.ExecuteNonQuery(tran, CommandType.Text, sSQL);

                    sSQL = @"
update [dbo].[检验值] set [已取值] = 1 where iID = {0}
";
                    sSQL = string.Format(sSQL, mod.SourceID);
                    DbHelperSQL.ExecuteNonQuery(tran, CommandType.Text, sSQL);

                    sSQL = @"
select top 20 * 
from  工作台测量 
where 工作台 = '{0}' and dtmCreate >= dateadd(hour,-2,getdate()) and isnull(删除人,'') = ''
order by iID desc
";
                    sSQL = string.Format(sSQL, s检验工位);
                    dt   = DbHelperSQL.ExecuteDataset(tran, CommandType.Text, sSQL).Tables[0];
                    gridControl1.DataSource    = dt;
                    gridView1.FocusedRowHandle = 0;


                    txt序号.EditValue = dt.Rows[0]["iID"].ToString().Trim();

                    SetTxtEnable(false);
                }

                tran.Commit();
            }
            catch (Exception ee)
            {
                tran.Rollback();
            }
            finally
            {
                if (conn.State == ConnectionState.Open)
                {
                    conn.Close();
                }
            }
        }