Exemple #1
0
        public bool InsertStationShopfloorData(string ApolloTRID, string StationName, StationTestResult StationResult, string ApplicationPath, out string ErrorMessage)
        {
            bool CheckFlag = true;

            ErrorMessage = "";

            string MOCODE        = "";
            string RCARD         = "";
            string RCARDSEQ      = "";
            string TCARD         = "";
            string MODELCODE     = "";
            string ITEMCODE      = "";
            string ROUTECODE     = "";
            string OPCODE        = "";
            string SEGCODE       = "";
            string SSCODE        = "";
            string RESCODE       = "";
            string SHIFTTYPECODE = "";
            string SHIFTCODE     = "";
            string TPCODE        = "";
            string SHIFTDAY      = "";
            string ECODE         = "";
            string ACTION        = "";
            string ACTIONRESULT  = "";
            string CARTONCODE    = "";
            string PALLETCODE    = "";
            string MUSER         = "";
            string MDATE         = "";
            string MTIME         = "";
            string FLAG          = "";
            string EMESSAGE      = "";
            string EATTRIBUTE1   = "";


            ProductInfo tmpParoduct = new ProductInfo(ApolloTRID);
            Timecode    tmpTimeCode = new Timecode();


            if (CheckTRID(ApolloTRID, ref tmpParoduct, out ErrorMessage) == false)
            {
                ErrorMessage = ErrorMessage + "\n 故無法插入過站資料至MES資料庫!!!";
                return(false);
            }

            if (GetRoute(tmpParoduct, out ErrorMessage) == false)
            {
                ErrorMessage = ErrorMessage + "\n 故無法插入過站資料至MES資料庫!!!";
                return(false);
            }

            if (GetTimeCode(ref tmpTimeCode, out ErrorMessage) == false)
            {
                ErrorMessage = ErrorMessage + "\n 故無法插入過站資料至MES資料庫!!!";
                return(false);
            }

            if (File.Exists(ApplicationPath) == false)
            {
                ErrorMessage = "外部檔不存在!!!\n路徑 : " + ApplicationPath;
                return(false);
            }

            string tmpLineName = Ini.IniReadValue("MesLineCode", "LineName", ApplicationPath);

            if (tmpLineName == "")
            {
                ErrorMessage = "外部檔 : " + ApplicationPath + "\n Section: [MesLineCode]  \n Key : LineName \n 內容為空!!!";
                return(false);
            }

            string tmpSegment = SelectTableValue("PICS.dbo.picslne", "Segment", "MESLINE", tmpLineName, out ErrorMessage);

            MOCODE        = tmpParoduct.SoNo.Substring(tmpParoduct.SoNo.Length - 6);
            RCARD         = tmpParoduct.TRID;
            RCARDSEQ      = "0";
            TCARD         = "";
            MODELCODE     = tmpParoduct.ModelName;
            ITEMCODE      = tmpParoduct.PartNo;
            ROUTECODE     = tmpParoduct.Routecode;
            OPCODE        = StationName.ToUpper();
            SEGCODE       = tmpSegment;
            SSCODE        = tmpLineName;
            RESCODE       = SSCODE + "-" + OPCODE;
            SHIFTTYPECODE = tmpTimeCode.SHIFTTYPECODE;
            SHIFTCODE     = tmpTimeCode.SHIFTCODE;
            TPCODE        = tmpTimeCode.TPCODE;
            SHIFTDAY      = tmpTimeCode.NowDate;

            switch ((int)StationResult)
            {
            case (int)StationTestResult.GOOD:
                ECODE        = "";
                ACTION       = "GOOD";
                ACTIONRESULT = "GOOD";
                break;

            case (int)StationTestResult.NG:
                ECODE        = StationName.ToUpper().Trim();
                ACTION       = "NG";
                ACTIONRESULT = "NG";
                break;
            }

            CARTONCODE  = "";
            PALLETCODE  = "";
            MUSER       = "******";
            MDATE       = tmpTimeCode.NowDate;
            MTIME       = tmpTimeCode.NowTime;
            FLAG        = "Q";
            EMESSAGE    = "";
            EATTRIBUTE1 = "";

            using (SqlConnection cn = new SqlConnection())
            {
                cn.ConnectionString = "server=" + dbHost + ";uid=" + dbUser + ";pwd=" + dbPass + ";database=" + dbName;

                try
                {
                    cn.Open();
                }
                catch (SqlException ex)
                {
                    ErrorMessage = ex.Message;
                    return(false);
                }

                if (cn.State == ConnectionState.Open)
                {
                    string InsertToTBLERPONWIP = "INSERT INTO ShopFloor.dbo.TBLERPONWIP(";
                    string VALUES = ") VALUES(";

                    SQL_TBLIERPONWIP sql_TBLERPONWIP = new SQL_TBLIERPONWIP();

                    SqlTransaction tran = cn.BeginTransaction();
                    try
                    {
                        string sqlstr = InsertToTBLERPONWIP
                                        + sql_TBLERPONWIP.MOCODE + "," + sql_TBLERPONWIP.RCARD + ","
                                        + sql_TBLERPONWIP.RCARDSEQ + ","
                                        + sql_TBLERPONWIP.TCARD + ","
                                        + sql_TBLERPONWIP.MODELCODE + "," + sql_TBLERPONWIP.ITEMCODE + ","
                                        + sql_TBLERPONWIP.ROUTECODE + ","
                                        + sql_TBLERPONWIP.OPCODE + ","
                                        + sql_TBLERPONWIP.SEGCODE + ","
                                        + sql_TBLERPONWIP.SSCODE + ","
                                        + sql_TBLERPONWIP.RESCODE + ","
                                        + sql_TBLERPONWIP.SHIFTTYPECODE + ","
                                        + sql_TBLERPONWIP.SHIFTCODE + ","
                                        + sql_TBLERPONWIP.TPCODE + ","
                                        + sql_TBLERPONWIP.SHIFTDAY + ","
                                        + sql_TBLERPONWIP.ECODE + ","
                                        + sql_TBLERPONWIP.ACTION + ","
                                        + sql_TBLERPONWIP.ACTIONRESULT + ","
                                        + sql_TBLERPONWIP.CARTONCODE + ","
                                        + sql_TBLERPONWIP.PALLETCODE + ","
                                        + sql_TBLERPONWIP.MUSER + ","
                                        + sql_TBLERPONWIP.MDATE + ","
                                        + sql_TBLERPONWIP.MTIME + ","
                                        + sql_TBLERPONWIP.FLAG + ","
                                        + sql_TBLERPONWIP.EMESSAGE + ","
                                        + sql_TBLERPONWIP.EATTRIBUTE1

                                        + VALUES
                                        + "'" + MOCODE + "'" + "," + "'" + RCARD + "'" + ","
                                        + "'" + RCARDSEQ + "'" + ","
                                        + "'" + TCARD + "'" + ","
                                        + "'" + MODELCODE + "'" + "," + "'" + ITEMCODE + "'" + ","
                                        + "'" + ROUTECODE + "'" + ","
                                        + "'" + OPCODE + "'" + ","
                                        + "'" + SEGCODE + "'" + ","
                                        + "'" + SSCODE + "'" + ","
                                        + "'" + RESCODE + "'" + ","
                                        + "'" + SHIFTTYPECODE + "'" + ","
                                        + "'" + SHIFTCODE + "'" + ","
                                        + "'" + TPCODE + "'" + ","
                                        + "'" + SHIFTDAY + "'" + ","
                                        + "'" + ECODE + "'" + ","
                                        + "'" + ACTION + "'" + ","
                                        + "'" + ACTIONRESULT + "'" + ","
                                        + "'" + CARTONCODE + "'" + ","
                                        + "'" + PALLETCODE + "'" + ","
                                        + "'" + MUSER + "'" + ","
                                        + "'" + MDATE + "'" + ","
                                        + "'" + MTIME + "'" + ","
                                        + "'" + FLAG + "'" + ","
                                        + "'" + EMESSAGE + "'" + ","
                                        + "'" + EATTRIBUTE1 + "'"
                                        + ")";

                        SqlCommand cmd = new SqlCommand(sqlstr, cn, tran);

                        cmd.ExecuteNonQuery();
                        tran.Commit();

                        return(true);
                    }
                    catch (SqlException ex)
                    {
                        tran.Rollback();
                        ErrorMessage = ex.Message;
                        return(false);
                    }
                }
                else
                {
                    return(false);
                }
            }
        }
Exemple #2
0
        //----------------------------------------------------------------------------------------------
        private bool GetRoute(ProductInfo NowProductInfo, out string ErrorMessage)
        {
            bool CheckFlag = false;

            ErrorMessage = "";

            using (SqlConnection cn = new SqlConnection())
            {
                cn.ConnectionString = "server=" + dbHost + ";uid=" + dbUser + ";pwd=" + dbPass + ";database=" + dbName;
                try
                {
                    cn.Open();
                }
                catch (SqlException ex)
                {
                    ErrorMessage = ex.Message;
                    CheckFlag    = false;
                    return(CheckFlag);
                }


                if (cn.State == ConnectionState.Open)
                {
                    SQL_TBLITEM2ROUTE sql_Tblitem2routeTable = new SQL_TBLITEM2ROUTE();

                    string SelectColum = sql_Tblitem2routeTable.ROUTECODE;

                    string sqlstr = "SELECT top 1 " + SelectColum + " From Shopfloor.dbo.tblitem2route WHERE " + sql_Tblitem2routeTable.ITEMCODE + " =  @PartNo order by MDATE desc,MTIME desc";

                    SqlCommand cmd = new SqlCommand(sqlstr, cn);
                    cmd.Parameters.AddWithValue("@PartNo", NowProductInfo.PartNo);

                    SqlDataReader dr = cmd.ExecuteReader();
                    try
                    {
                        if (dr.Read() == true)
                        {
                            if (!dr.Equals(DBNull.Value))
                            {
                                NowProductInfo.Routecode = dr[sql_Tblitem2routeTable.ROUTECODE].ToString().Trim();
                                CheckFlag = true;
                            }
                        }
                        else
                        {
                            ErrorMessage = "查無此PN : " + NowProductInfo.PartNo + " RouteCode資料!!!";
                            CheckFlag    = false;
                        }
                    }
                    catch
                    {
                        ErrorMessage = "資料庫查詢錯誤!!!!(Shopfloor.dbo.tblitem2route : " + NowProductInfo.PartNo + ")";
                        CheckFlag    = false;
                    }
                    finally
                    {
                        dr.Close();
                    }
                }
                else
                {
                    ErrorMessage = "資料庫連接錯誤!!!!(Shopfloor.dbo.tblitem2route)";
                    CheckFlag    = false;
                }
            }
            return(CheckFlag);
        }
Exemple #3
0
        /// <summary>
        /// 將檢測資料插入資料庫中
        /// </summary>
        /// <param name="NowProductInfo">當前機台資料物件</param>
        /// <param name="Station">當站站名</param>
        /// <param name="TestItem">測試項目</param>
        /// <param name="TestResult">測試結果 PASS,NG</param>
        /// <param name="MeasureValue">測試數值</param>
        /// <param name="NowDate">測試日期YYYYMMDD</param>
        /// <param name="NowTime">測試時間HHMMSS</param>
        /// <param name="ErrorMessage">錯誤訊息</param>
        /// <returns></returns>
        public bool InsertTestResultRecord(ProductInfo NowProductInfo, string Station, string TestItem, string TestResult, string MeasureValue,
                                           string HwVersion, string SwVersion, string ToolVersion,
                                           string NowDate, string NowTime, out string ErrorMessage)
        {
            ErrorMessage = "";


            ///抓取機台產品訊息(將剛刷入的TRID進資料庫抓取相對應的機台資訊(包含ModelName,料號,工廠流線ID號碼))
            CheckTRID(NowProductInfo.TRID, ref NowProductInfo, out ErrorMessage);

            using (SqlConnection cn = new SqlConnection())
            {
                cn.ConnectionString = "server=" + dbHost + ";uid=" + dbUser + ";pwd=" + dbPass + ";database=" + dbName;

                try
                {
                    cn.Open();
                }
                catch (SqlException ex)
                {
                    ErrorMessage = ex.Message;
                    return(false);
                }

                if (cn.State == ConnectionState.Open)
                {
                    string InsertToUsbTestRecord = "INSERT INTO PICS.dbo.HCS_UsbTestRecode(";
                    string VALUES = ") VALUES(";

                    SQL_HcsUsbTestRecordTable sql_TestRecord = new SQL_HcsUsbTestRecordTable();

                    SqlTransaction tran = cn.BeginTransaction();
                    try
                    {
                        string sqlstr = InsertToUsbTestRecord
                                        + sql_TestRecord.TRID + "," + sql_TestRecord.ID + ","
                                        + sql_TestRecord.PN + ","
                                        + sql_TestRecord.Model + ","
                                        + sql_TestRecord.Datein + "," + sql_TestRecord.Timein + ","
                                        + sql_TestRecord.TestItem + ","
                                        + sql_TestRecord.TestResult + ","
                                        + sql_TestRecord.SO + ","
                                        + sql_TestRecord.Station + ","
                                        + sql_TestRecord.MeasureValue + ","
                                        + sql_TestRecord.HwVersion + ","
                                        + sql_TestRecord.SwVersion + ","
                                        + sql_TestRecord.ToolVersion

                                        + VALUES
                                        + "'" + NowProductInfo.TRID + "'" + "," + "'" + NowProductInfo.ID + "'" + ","
                                        + "'" + NowProductInfo.PartNo + "'" + ","
                                        + "'" + NowProductInfo.ModelName + "'" + ","
                                        + "'" + NowDate + "'" + "," + "'" + NowTime + "'" + ","
                                        + "'" + TestItem + "'" + ","
                                        + "'" + TestResult + "'" + ","
                                        + "'" + NowProductInfo.SoNo + "'" + ","
                                        + "'" + Station + "'" + ","
                                        + "'" + MeasureValue + "'" + ","
                                        + "'" + HwVersion + "'" + ","
                                        + "'" + SwVersion + "'" + ","
                                        + "'" + ToolVersion + "'"
                                        + ")";

                        SqlCommand cmd = new SqlCommand(sqlstr, cn, tran);

                        cmd.ExecuteNonQuery();
                        tran.Commit();

                        return(true);
                    }
                    catch (SqlException ex)
                    {
                        tran.Rollback();
                        ErrorMessage = ex.Message;
                        return(false);
                    }
                }
                else
                {
                    return(false);
                }
            }
        }
Exemple #4
0
        public bool GetPCBAIDandSN(string ApolloTRID, ref List <PCBAInfo> PCBAInfoList, string ApplicationPath, out string ErrorMessage)
        {
            bool CheckFlag = true;

            ErrorMessage = "";
            PCBAInfoList.Clear();
            FindInfoList.Clear();

            string SQL          = "";
            string ReadFindInfo = "";


            ProductInfo tmpParoduct = new ProductInfo(ApolloTRID);

            if (CheckTRID(ApolloTRID, ref tmpParoduct, out ErrorMessage) == false)
            {
                ErrorMessage = ErrorMessage + "\n 故無法取得PCBA資料!!!";
                return(false);
            }

            if (File.Exists(ApplicationPath) == false)
            {
                ErrorMessage = "外部檔不存在!!!\n路徑 : " + ApplicationPath;
                CheckFlag    = false;
                return(CheckFlag);
            }

            ReadFindInfo = Ini.IniReadValue("BoardIDGet", tmpParoduct.PartNo.ToUpper(), ApplicationPath);

            if (ReadFindInfo == "")
            {
                ErrorMessage = "外部檔 : " + ApplicationPath + "\n Section: [BoardIDGet]  \n Key : " + tmpParoduct.PartNo.ToUpper() + "\n 內容為空!!!";
                CheckFlag    = false;
                return(CheckFlag);
            }

            string[] tmpSplit = new string[] { "," };
            string[] tmp      = ReadFindInfo.Split(tmpSplit, StringSplitOptions.RemoveEmptyEntries);

            string[] SubtmpSplit = new string[] { "#" };

            //將外部檔設定解碼看物件需要搜索幾層
            for (int i = 0; i < tmp.Count(); i++)
            {
                string[] Subtmp = tmp[i].Split(SubtmpSplit, StringSplitOptions.RemoveEmptyEntries);

                FindPCBAInfo tmpFindInfo = new FindPCBAInfo();

                if (Subtmp.Count() == 2)
                {
                    tmpFindInfo.MainAssy = Subtmp[0];
                    tmpFindInfo.SubAssy  = Subtmp[1];

                    FindInfoList.Add(tmpFindInfo);

                    PCBAInfo tmpPCBAInfo = new PCBAInfo();

                    if (GetMainAssySubAssyPCBInfo(ApolloTRID, tmpFindInfo.MainAssy, tmpFindInfo.SubAssy, out tmpPCBAInfo, out ErrorMessage) == false)
                    {
                        CheckFlag = false;
                        return(CheckFlag);
                    }
                    PCBAInfoList.Add(tmpPCBAInfo);
                }
                else
                {
                    tmpFindInfo.MainAssy = Subtmp[0];
                    tmpFindInfo.SubAssy  = "";
                    FindInfoList.Add(tmpFindInfo);

                    PCBAInfo tmpPCBAInfo = new PCBAInfo();

                    if (GetMainAssyPCBAInfo(ApolloTRID, tmpFindInfo.MainAssy, out tmpPCBAInfo, out ErrorMessage) == false)
                    {
                        CheckFlag = false;
                        return(CheckFlag);
                    }

                    PCBAInfoList.Add(tmpPCBAInfo);
                }
            }

            GC.Collect();
            return(CheckFlag);
        }
Exemple #5
0
        private bool ProductInfoSearch(string TRID, ProductInfo NowProductInfo, out string ErrorMessage)
        {
            bool CheckFlag = false;

            ErrorMessage = "";

            using (SqlConnection cn = new SqlConnection())
            {
                cn.ConnectionString = "server=" + dbHost + ";uid=" + dbUser + ";pwd=" + dbPass + ";database=" + dbName;
                try
                {
                    cn.Open();
                }
                catch (SqlException ex)
                {
                    ErrorMessage = ex.Message;
                    CheckFlag    = false;
                    return(CheckFlag);
                }

                if (cn.State == ConnectionState.Open)
                {
                    SQL_PCBIDTable sql_PCBIDTable = new SQL_PCBIDTable();

                    string SelectColum = sql_PCBIDTable.SO + "," + sql_PCBIDTable.ID + "," + sql_PCBIDTable.Part_No + "," + sql_PCBIDTable.Model;

                    string sqlstr = "SELECT " + SelectColum + " From WIP.dbo.PCBID WHERE " + sql_PCBIDTable.TRID + " = " + "'" + TRID + "'";

                    SqlCommand    cmd = new SqlCommand(sqlstr, cn);
                    SqlDataReader dr  = cmd.ExecuteReader();
                    try
                    {
                        if (dr.Read() == true)
                        {
                            if (!dr.Equals(DBNull.Value))
                            {
                                NowProductInfo.SoNo      = dr[sql_PCBIDTable.SO].ToString().Trim();
                                NowProductInfo.PartNo    = dr[sql_PCBIDTable.Part_No].ToString().Trim();
                                NowProductInfo.ModelName = dr[sql_PCBIDTable.Model].ToString().Trim();
                                NowProductInfo.ID        = dr[sql_PCBIDTable.ID].ToString().Trim();
                                NowProductInfo.TRID      = TRID;
                                CheckFlag = true;
                            }
                        }
                        else
                        {
                            ErrorMessage = "查無此TRID : " + TRID + "資料!!!";
                            CheckFlag    = false;
                        }
                    }
                    catch
                    {
                        ErrorMessage = "資料庫查詢錯誤!!!!(WIP.dbo.PCBID,TRID : " + TRID + ")";
                        CheckFlag    = false;
                    }
                    finally
                    {
                        dr.Close();
                    }
                }
                else
                {
                    ErrorMessage = "資料庫連接錯誤!!!!(WIP.dbo.TRID)";
                    CheckFlag    = false;
                }
            }
            return(CheckFlag);
        }