Exemplo n.º 1
0
        /// <summary>
        /// 设置货位列表
        /// </summary>
        /// <param name="id"></param>
        /// <param name="name"></param>
        /// <param name="single"></param>
        /// <param name="standerd"></param>
        public void setList(string id, string name)
        {
            try
            {
                DataTable dt = bll.getListByIN(id, name, placeArea, inOutType);

                if (inOutType.Equals(InOutType.KNIFE_IN))
                {//新刀具入库时,要去掉已选中的货位
                    List <int> listToDel = new List <int>();

                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        for (int j = 0; j < dtPar.Rows.Count; j++)
                        {
                            if (dt.Rows[i][0].Equals(dtPar.Rows[j][4]))
                            {
                                listToDel.Add(i);
                            }
                        }
                    }

                    listToDel.Sort();
                    listToDel.Reverse();

                    listToDel.ForEach(i => dt.Rows.RemoveAt(i));
                }

                dgv_Data.DataSource            = dt;
                dgv_Data.Columns[0].HeaderText = "编码";
                dgv_Data.Columns[0].ReadOnly   = true;
                dgv_Data.Columns[0].Width      = 100;
                dgv_Data.Columns[1].HeaderText = "名称";
                dgv_Data.Columns[1].ReadOnly   = true;
                dgv_Data.Columns[1].Width      = 250;
                dgv_Data.Columns[2].HeaderText = "是否被占用";
                dgv_Data.Columns[2].ReadOnly   = true;
                dgv_Data.Columns[2].Width      = 150;
            }
            catch (Exception)
            {
                MessageBox.Show("与数据库连接失败,请查看网络连接是否正常。如不能解决请与网络管理员联系!", "严重错误:", MessageBoxButtons.OK, MessageBoxIcon.Error);
                this.Close();
                return;
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 根据id和名称获得货位(最小控制单元)
        /// </summary>
        /// <param name="tableName"></param>
        /// <returns></returns>
        public DataTable getListByIN(string id, string name, string placeArea, InOutType type)
        {
            string sql;

            if (type.Equals(InOutType.MATERIEL_IN))
            {
                sql = " SELECT [C_ID], [C_NAME], case when b.num > 0 then '是' else '否' end FROM [T_JB_Place] a " +
                      " left join (select C_PLACE, count(*) num from [T_OPERATE_STOCKS] group by C_PLACE) b on a.C_ID = b.C_PLACE where I_END=1 and I_INUSE = 1 " +
                      " and C_ID not in (select C_PLACE from T_RUNING_DOLIST) ";
            }
            else
            {
                sql = " SELECT [C_ID], [C_NAME], case when b.num > 0 then '是' else '否' end FROM [T_JB_Place] a " +
                      " left join (select C_PLACE, count(*) num from [T_OPERATE_STOCKS] group by C_PLACE) b on a.C_ID = b.C_PLACE where I_END=1 and I_INUSE = 1 " +
                      " and C_ID not in (select C_PLACE from T_RUNING_DOLIST) " +
                      " and C_ID not in (select C_PLACE from T_OPERATE_INOUT_SUB where I_FLAG = 1) " +
                      " and C_ID not in (select C_PLACE from T_OPERATE_STOCKS) ";
            }

            DataTable dt = new DataTable();

            try
            {
                if (id != null || name != null || placeArea != null)
                {
                    Hashtable table = new Hashtable();
                    if (id != null)
                    {
                        sql += " and C_ID like @id";
                        table.Add("id", id + "%");
                    }

                    if (name != null)
                    {
                        sql += " and C_NAME like @C_NAME";
                        table.Add("C_NAME", "%" + name + "%");
                    }

                    if (placeArea != null)
                    {
                        sql += " and C_AREA = @C_AREA";
                        table.Add("C_AREA", placeArea);
                    }

                    sql += " order by convert(numeric,c_id) asc";
                    DbParameter[] parms = dbHelper.getParams(table);
                    dt = dbHelper.GetDataSet(sql, parms);
                }
                else
                {
                    sql += " order by convert(numeric,c_id) asc";
                    dt   = dbHelper.GetDataSet(sql);
                }
            }
            catch (Exception ex)
            {
                Log.write(ex.Message + "\r\n" + ex.StackTrace);
                throw ex;
            }
            finally
            {
                dbHelper.getConnection().Close();
            }
            return(dt);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 联机任务
        /// </summary>
        /// <param name="dt"></param>
        /// <param name="meno"></param>
        /// <param name="station"></param>
        /// <returns></returns>
        public string SaveDolist(DataTable dt, string meno, InOutType type)
        {
            int result = 0;

            DbConnection conn = dbHelper.getConnection();

            try
            {
                conn.Open();
            }
            catch (Exception ex)
            {
                Log.write(ex.Message + "\r\n" + ex.StackTrace);
                conn.Close();
                throw ex;
            }
            DbTransaction tran = conn.BeginTransaction();
            DbCommand     com  = conn.CreateCommand();
            string        sql  = string.Empty;

            try
            {
                com.Transaction = tran;

                string   dh;
                DateTime dtNow  = DateTime.Now;
                long     dec_id = 0;
                string   c_id   = string.Empty;
                sql = "SELECT MAX(c_id) FROM T_OPERATE_INOUT_MAIN where datediff(day,[D_TIME],getdate()) = 0 AND C_CRK_LEIBIE = '" + (int)type + "'";

                com.CommandText = sql;
                object obj = com.ExecuteScalar();
                dec_id = Convert.IsDBNull(obj) ? 0 : Convert.ToInt64(obj.ToString().Substring(10));
                c_id   = Common.GetInOutCode(type) + dtNow.ToString("yyyyMMdd") + (dec_id + 1).ToString().PadLeft(6, '0');
                dh     = c_id;

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    sql             = @"INSERT INTO [T_Runing_Dolist]([Dec_ID], [C_DH],  [I_INOUT], [D_RQ], [C_MATERIEL], 
                            [C_PLACE], [DEC_COUNT],  [C_CZY], [I_RUN], [D_AddRQ], [C_MEMO], [I_FLAG], [C_MACHINE])
                            VALUES(@Dec_ID, @C_DH, @I_INOUT, @D_RQ, @C_MATERIEL, @C_PLACE, @DEC_COUNT, @C_CZY, @I_RUN, @D_AddRQ, @C_MEMO, @I_FLAG, @C_MACHINE)";
                    com.CommandText = sql;

                    Hashtable table2 = new Hashtable();
                    table2.Add("Dec_ID", i + 1);
                    table2.Add("C_DH", dh);
                    table2.Add("I_INOUT", (int)type);
                    table2.Add("D_RQ", Convert.ToDateTime(dt.Rows[i][5]).ToString("yyyy-MM-dd"));
                    table2.Add("C_MATERIEL", dt.Rows[i][0]);
                    table2.Add("C_PLACE", dt.Rows[i][4]);
                    table2.Add("DEC_COUNT", dt.Rows[i][3]);
                    table2.Add("C_CZY", dt.Rows[i][6]);
                    table2.Add("I_RUN", 0);
                    table2.Add("D_AddRQ", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"));
                    if (meno == null || string.Empty.Equals(meno.Trim()))
                    {
                        table2.Add("C_MEMO", DBNull.Value);
                    }
                    else
                    {
                        table2.Add("C_MEMO", meno);
                    }

                    if (type.Equals(InOutType.KNIFE_OUT_USE))
                    {
                        table2.Add("I_FLAG", 1);
                        table2.Add("C_MACHINE", dt.Rows[i][7]);
                    }
                    else
                    {
                        table2.Add("I_FLAG", 0);
                        table2.Add("C_MACHINE", DBNull.Value);
                    }

                    DbParameter[] parms2 = dbHelper.getParams(table2);
                    com.Parameters.Clear();
                    com.Parameters.AddRange(parms2);
                    result = com.ExecuteNonQuery();
                }

                tran.Commit();

                if (result > 0)
                {
                    return(dh);
                }
                else
                {
                    return(null);
                }
            }
            catch (Exception ex)
            {
                tran.Rollback();
                conn.Close();
                Log.write(ex.Message + "\r\n" + ex.StackTrace);
                throw ex;
            }
            finally
            {
                conn.Close();
            }
        }