Example #1
0
        private DataTable GetToolUseStatus(string equipment, string device)
        {
            return(DBCenter.GetDataTable(@"SELECT TOOLTYPE,
         SUM (NEEDQTY) AS NEEDQTY,
         SUM (EQPTOOLCOUNT) AS EQPTOOLCOUNT,
         OPERATION
    FROM (  SELECT MES_TOOL_MAST.TOOLTYPE,
                   0 AS NEEDQTY,
                   COUNT (1) AS EQPTOOLCOUNT,
                   USERDEFINECOL08 OPERATION
              FROM MES_EQP_TOOL
                   INNER JOIN MES_TOOL_MAST
                      ON (MES_EQP_TOOL.TOOLNAME = MES_TOOL_MAST.TOOLNAME)
             WHERE MES_EQP_TOOL.EQUIPMENT = #[STRING]
          GROUP BY MES_TOOL_MAST.TOOLTYPE, MES_TOOL_MAST.USERDEFINECOL08
          UNION ALL
            SELECT TOOLTYPE,
                   SUM (QUANTITY) AS NEEDQTY,
                   0 AS EQPTOOLCOUNT,
                   OPERATION
              FROM CST_TOOL_DEVICE_DETAIL
             WHERE EQP = #[STRING] AND DEVICE = #[STRING]
          GROUP BY TOOLTYPE, OPERATION)
GROUP BY TOOLTYPE, OPERATION", equipment, equipment, device));
        }
Example #2
0
        /// <summary>
        /// 取的runcard的資料來源
        /// </summary>
        /// <param name="LotDataList"></param>
        /// <returns></returns>
        private DataSet GetRunCardDataSource(LotInfoEx LotData)
        {
            string sql = @"SELECT * FROM MES_WIP_LOT_NONACTIVE WHERE INVNO = #[STRING]";

            sql = string.Format(sql);
            SqlAgent sa = SQLCenter.Parse(sql, LotData.InventoryNo);

            var lsInvLot = InfoCenter.GetList <LotInfoEx>(sa);

            if (lsInvLot.Count == 0)
            {
                throw new Exception(TextMessage.Error.T00060("InventoryNO:" + LotData.InventoryNo));
            }

            string sBoxInString = "";

            lsInvLot.ForEach(p => {
                sBoxInString += "'" + p.Lot + "',";
            });
            sBoxInString = sBoxInString.EndsWith(",") ? sBoxInString.Substring(0, sBoxInString.Length - 1) : sBoxInString;

            var dtInvData = DBCenter.GetDataTable(@"
                SELECT WO,INVLOT,SUM(QUANTITY) QUANTITY,DEVICE FROM MES_WIP_LOT_NONACTIVE WHERE LOT IN (
                SELECT CURRENTLOT FROM MES_WIP_COMP_NONACTIVE  WHERE COMPONENTID IN (
                SELECT COMPONENTID FROM CST_WIP_PACK 
                INNER JOIN CST_WIP_PACK_DATA ON (CST_WIP_PACK.WIP_PACK_SID = CST_WIP_PACK_DATA.WIP_PACK_SID) WHERE 
                BOXNO IN (" + sBoxInString + "))) GROUP BY WO,INVLOT,DEVICE");

            dtInvData.TableName = "INVData";

            #region 定義 LOTDATA 資料表
            //DataTable dtInvData = lsInvLot.CopyDataToTable("INVData");
            dtInvData.Columns.Add("INVDate");
            dtInvData.Columns.Add("ITEM");
            dtInvData.Columns.Add("DeviceDescr");
            dtInvData.Columns.Add("Remark");
            dtInvData.Columns.Add("Loaction");
            dtInvData.Columns.Add("Factory");
            #endregion

            for (int i = 0; i < dtInvData.Rows.Count; i++)
            {
                dtInvData.Rows[i]["INVDate"]  = lsInvLot[0]["USERDEFINECOL17"].ToCimesString();
                dtInvData.Rows[i]["ITEM"]     = (i + 1).ToCimesString();
                dtInvData.Rows[i]["Remark"]   = lsInvLot[0]["USERDEFINECOL18"].ToCimesString();
                dtInvData.Rows[i]["Loaction"] = lsInvLot[0]["LOCATION"].ToCimesString();
                dtInvData.Rows[i]["Factory"]  = lsInvLot[0]["FACTORY"].ToCimesString();

                var DeviceData = DeviceVersionInfoEx.GetActiveDeviceVersion(dtInvData.Rows[i]["DEVICE"].ToString()).ChangeTo <DeviceVersionInfoEx>();
                if (DeviceData != null)
                {
                    dtInvData.Rows[i]["DeviceDescr"] = DeviceData.Description;
                }
            }

            DataSet dsReportData = new DataSet();
            dsReportData.Tables.Add(dtInvData);

            return(dsReportData);
        }
Example #3
0
        private void InsertToolType(int rowIndex)
        {
            int         index     = gvQuery.Rows[rowIndex].DataItemIndex;
            ArrayList   SaveList  = new ArrayList();
            string      sToolType = ((TextBox)gvQuery.Rows[rowIndex].FindControl("ttbType")).Text;
            RadioButton rbtEnable = (RadioButton)gvQuery.Rows[rowIndex].FindControl("rbEnable");
            TextBox     ttbDescr  = (TextBox)gvQuery.Rows[rowIndex].FindControl("ttbDescription");

            //檢查是否有相同名稱存在的資料
            sql = "SELECT 1 FROM MES_TOOL_TYPE WHERE TYPE = #[STRING]";
            DataView dvCheck = DBCenter.GetDataTable(sql, sToolType).DefaultView;// Query.DoQuery(sql);

            if (dvCheck != null && dvCheck.Count > 0)
            {
                throw new Exception(TextMessage.Error.T00710(sToolType));
            }

            uscAttributeSetupGrid.ValidateCheck();
            //新增資料庫
            ToolTypeInfo toolTypeData = InfoCenter.Create <ToolTypeInfo>();

            toolTypeData.Type          = sToolType;
            toolTypeData.Description   = ttbDescr.Text;
            toolTypeData["TOOLCLASS"]  = "CUTTER";
            toolTypeData["UPDATETIME"] = DBCenter.GetSystemTime();
            toolTypeData["USERID"]     = this.User.Identity.Name;
            if (rbtEnable.Checked == true)
            {
                toolTypeData.Status     = "Enable";
                toolTypeData.ActiveFlag = "T";
            }
            else
            {
                toolTypeData.Status     = "Disable";
                toolTypeData.ActiveFlag = "F";
            }

            //儲存系統屬性
            _SystemAttribute.SaveSystemAttribute(toolTypeData);
            TransactionStamp txnStamp = new TransactionStamp(User.Identity.Name, ProgramRight, ProgramRight, this.ApplicationName);

            using (CimesTransactionScope cts = CimesTransactionScope.Create())
            {
                toolTypeData.InsertToDB();
                uscAttributeSetupGrid.ExcuteTransaction(toolTypeData.ID);

                //儲存刀壽
                SaveToolLife(sToolType, txnStamp.UserID, txnStamp.RecordTime);

                //儲存刀具圖檔
                SaveToolPicture(sToolType, txnStamp.UserID, txnStamp.RecordTime);

                cts.Complete();
            }

            _ProgramInformationBlock.ShowMessage(TextMessage.Hint.T00695(sToolType));
            ToolTypeList[index] = toolTypeData;
        }
Example #4
0
        /// <summary>
        /// 取的runcard的資料來源
        /// </summary>
        /// <param name="LotDataList"></param>
        /// <returns></returns>
        private DataSet GetRunCardDataSource(LotInfoEx LotData)
        {
            string sql        = "";
            string sTableName = "MES_WIP_COMP";

            if (LotData.Status == "Finished")
            {
                sTableName = "MES_WIP_COMP_NONACTIVE";
            }

            #region 定義 LOTDATA 資料表
            DataTable dtLotData = lotData.CopyDataToTable("LOTDATA");
            dtLotData.Columns.Add("CartonNo");
            dtLotData.Columns.Add("DeviceDescr1");
            dtLotData.Columns.Add("DeviceDescr2");
            dtLotData.Columns.Add("CustomerNo1");
            dtLotData.Columns.Add("CustomerNo2");
            dtLotData.Columns.Add("Device1");
            dtLotData.Columns.Add("Device2");
            dtLotData.Columns.Add("Quantity1");
            dtLotData.Columns.Add("Quantity2");
            dtLotData.Columns.Add("Remark");
            dtLotData.Columns.Add("Inspectors");
            dtLotData.Columns.Add("Packers");
            dtLotData.Columns.Add("InspectionDate");
            #endregion

            #region 定義 COMPDATA 資料表
            DataTable dtCompData = new DataTable("COMPDATA");
            dtCompData.Columns.Add("ComponentID1");
            dtCompData.Columns.Add("ComponentID2");
            dtCompData.Columns.Add("Quantity1");
            dtCompData.Columns.Add("Quantity2");
            #endregion

            dtLotData.Rows[0]["CartonNo"] = LotData.Lot;
            dtLotData.Rows[0]["Remark"]   = "";

            var packInfo = CSTWIPPackInfo.GetPackInfoByBoxNo(LotData.Lot);
            dtLotData.Rows[0]["Inspectors"]     = packInfo.INSPUSER;
            dtLotData.Rows[0]["Packers"]        = packInfo.UserID;
            dtLotData.Rows[0]["InspectionDate"] = packInfo.UpdateTime.Substring(0, 10).Replace("/", "-");

            sql = @"SELECT DEVICE,COUNT(*) QTY 
                      FROM CST_WIP_PACK 
                     INNER JOIN CST_WIP_PACK_DATA ON CST_WIP_PACK.WIP_PACK_SID = CST_WIP_PACK_DATA.WIP_PACK_SID
                     WHERE BOXNO = #[STRING]
                     GROUP BY DEVICE";

            DataTable dtData = DBCenter.GetDataTable(sql, LotData.Lot);
            int       iIndex = 1;
            for (int i = 0; i < dtData.Rows.Count; i++)
            {
                if (i >= 2)
                {
                    break;
                }

                iIndex = i + 1;
                dtLotData.Rows[0]["Quantity" + iIndex.ToCimesString()] = dtData.Rows[i]["QTY"].ToCimesString();

                var DeviceData = DeviceVersionInfoEx.GetActiveDeviceVersion(dtData.Rows[i]["DEVICE"].ToCimesString()).ChangeTo <DeviceVersionInfoEx>();
                if (DeviceData != null)
                {
                    dtLotData.Rows[0]["DeviceDescr" + iIndex.ToCimesString()] = DeviceData.Description;
                    dtLotData.Rows[0]["CustomerNo" + iIndex.ToCimesString()]  = DeviceData["CustomerNo"].ToCimesString();
                    dtLotData.Rows[0]["Device" + iIndex.ToCimesString()]      = DeviceData.DeviceName;
                }

                #region 入庫批號

                sql = @"SELECT DMC,COUNT(*) COMPONENTQTY 
                          FROM CST_WIP_PACK 
                         INNER JOIN CST_WIP_PACK_DATA ON CST_WIP_PACK.WIP_PACK_SID = CST_WIP_PACK_DATA.WIP_PACK_SID
                         WHERE BOXNO = #[STRING]
                           AND DEVICE = #[STRING]
                         GROUP BY DMC 
                         ORDER BY DMC ";

                var dt = DBCenter.GetDataTable(sql, LotData.Lot, DeviceData.DeviceName);
                if (dt.Rows.Count > dtCompData.Rows.Count)
                {
                    int iRowCount = dt.Rows.Count - dtCompData.Rows.Count;
                    for (int j = 0; j < iRowCount; j++)
                    {
                        DataRow dr = dtCompData.NewRow();
                        dtCompData.Rows.Add(dr);
                    }
                }
                for (int k = 0; k < dt.Rows.Count; k++)
                {
                    dtCompData.Rows[k]["ComponentID" + iIndex.ToCimesString()] = dt.Rows[k]["DMC"].ToString();
                    dtCompData.Rows[k]["Quantity" + iIndex.ToCimesString()]    = dt.Rows[k]["COMPONENTQTY"].ToString();
                }
                #endregion
            }

            dtCompData.AcceptChanges();
            DataSet dsReportData = new DataSet();
            dsReportData.Tables.Add(dtLotData);
            dsReportData.Tables.Add(dtCompData);

            return(dsReportData);
        }
Example #5
0
        /// <summary>
        /// 輸入生產編號
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ttbLot_TextChanged(object sender, EventArgs e)
        {
            try
            {
                //確認是否有輸入資料
                ttbLot.Must(lblLot);

                #region 取得檢驗資料(查詢機台、序號、機加批號及鍛造批號欄位是否有符合介面輸入的資料,資料狀態必須為FAI且判定結果為NULL)
                string sql = @"SELECT A.*, B.EQUIPMENT, B.PASSFLAG, B.BATCHID, B.DEVICE
                                  FROM MES_QC_INSP_OBJ A
                                       LEFT JOIN MES_QC_INSP B ON A.QC_INSP_SID = B.QC_INSP_SID
                                 WHERE (ITEM1 = #[STRING] OR ITEM2 = #[STRING] OR ITEM3 = #[STRING] OR EQUIPMENT = #[STRING]) 
                                    AND STATUS = 'FAI' 
                                    AND RESULT IS NULL";

                var lot = CustomizeFunction.ConvertDMCCode(ttbLot.Text.Trim());

                var table = DBCenter.GetDataTable(sql, lot, lot, lot, lot);

                if (table.Rows.Count == 0)
                {
                    //生產編號:{0} 查無檢驗資料!
                    throw new Exception(RuleMessage.Error.C10062(lot));
                }

                //清除檢驗清單資料
                _QCDataList.Clear();

                foreach (DataRow dr in table.Rows)
                {
                    _QCDataList.Add(new QCData()
                    {
                        ID                  = dr["QC_INSP_OBJ_SID"].ToString(),
                        EquipmentName       = dr["EQUIPMENT"].ToString(),
                        SecondEquipmentName = dr["ITEM5"].ToString(),
                        BatchID             = dr["BATCHID"].ToString(),
                        ComponentLot        = dr["ITEM1"].ToString(),
                        WorkOderLot         = dr["ITEM2"].ToString(),
                        MaterialLot         = dr["ITEM3"].ToString(),
                        ObjectSID           = dr["OBJECTSID"].ToString(),
                        PassFlag            = dr["PASSFLAG"].ToString(),
                        QCInspectionSID     = dr["QC_INSP_SID"].ToString(),
                        DeviceName          = dr["DEVICE"].ToString()
                    });
                }
                #endregion

                #region 清除介面資料

                ddlFAIReasonCode.Items.Clear();
                ddlSN.Items.Clear();
                ddlEquip.Items.Clear();

                ttbMaterialLot.Text  = "";
                ttbDescr.Text        = "";
                ttbWorkOrderLot.Text = "";

                btnOK.Enabled = false;

                rdbOK.Checked   = true;
                rdbNG.Checked   = false;
                rdbPASS.Checked = false;

                rdbOK.Enabled   = true;
                rdbNG.Enabled   = false;
                rdbPASS.Enabled = false;
                #endregion

                #region 設置機台資料

                //取得所有檢驗資料之不重複機台名稱
                foreach (var QCData in _QCDataList)
                {
                    ListItem newItem = new ListItem(QCData.EquipmentName, QCData.EquipmentName);

                    if (ddlEquip.Items.Contains(newItem) == false)
                    {
                        ddlEquip.Items.Add(newItem);
                    }
                }

                if (ddlEquip.Items.Count == 0)
                {
                    //生產編號:{0} 沒有機台可以選擇!
                    throw new Exception(RuleMessage.Error.C10063(lot));
                }

                if (ddlEquip.Items.Count != 1)
                {
                    ddlEquip.Items.Insert(0, "");
                }
                else
                {
                    ddlEquip.SelectedIndex = 0;
                    ddlEquip_SelectedIndexChanged(null, EventArgs.Empty);
                }
                #endregion
            }
            catch (Exception ex)
            {
                ClearField();
                AjaxFocus(ttbLot);
                HandleError(ex);
            }
        }
Example #6
0
        /// <summary>
        /// 確認
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnOK_Click(object sender, EventArgs e)
        {
            try
            {
                TransactionStamp txnStamp = new TransactionStamp(User.Identity.Name, ProgramRight, ProgramRight, ApplicationName);

                using (var cts = CimesTransactionScope.Create())
                {
                    if (_SelectLotDatas.Count > 0)
                    {
                        string sLotInString = "";
                        // 組出where in字串
                        _SelectLotDatas.ForEach(p =>
                        {
                            sLotInString += "'" + p.Lot + "',";
                        });
                        sLotInString = sLotInString.EndsWith(",") ? sLotInString.Substring(0, sLotInString.Length - 1) : sLotInString;

                        var    dtInvData = DBCenter.GetDataTable(@"SELECT WO,INVLOT,SUM(QUANTITY) QUANTITY,DEVICE,FACTORY FROM MES_WIP_LOT  WHERE LOT IN(" + sLotInString + ") GROUP BY WO,INVLOT,DEVICE,FACTORY ORDER BY WO");
                        string headerSID = "";
                        string date      = txnStamp.RecordTime.Substring(0, 10).Replace("/", "");
                        string time      = txnStamp.RecordTime.Substring(11).Replace(":", "");
                        string preWo     = string.Empty;
                        int    seq       = 1;
                        // SAI倉位對應表
                        var lstSAIWarehouse = WpcExClassItemInfo.GetInfoByClass("SAIWarehouse");

                        dtInvData.Rows.LoopDo <DataRow>((p, i) =>
                        {
                            string currentWO = p["WO"].ToString();
                            string device    = p["DEVICE"].ToString();
                            string factory   = p["FACTORY"].ToString();
                            string invLot    = p["INVLOT"].ToString();
                            string qty       = p["QUANTITY"].ToString();
                            if (preWo != currentWO)
                            {
                                seq       = 1;
                                headerSID = DBCenter.GetSystemID();
                                DBCenter.ExecuteParse(@"INSERT INTO PPFHK (SID, WDATE, WTIME, BUDAT, AUFNR, FLAG) 
                                    VALUES (#[STRING], #[STRING], #[STRING], #[STRING], #[STRING],'N')", headerSID, date, time, date, currentWO);
                            }
                            //寫入PPFHP
                            //WERKS:Factory
                            //LGORT:入庫倉位
                            //CHARG:INVLOT
                            //MATNR:Device
                            var lstDetail     = _SelectLotDatas.FindAll(select => select.InventoryLot == invLot);
                            var warehouseInfo = lstSAIWarehouse.Find(wpcItem => wpcItem.Remark01 == lstDetail[0].Process && wpcItem.Remark03 == "DEFECT");
                            if (warehouseInfo == null)
                            {
                                //T00555:查無資料,請至系統資料維護新增類別{0}、項目{1}!
                                throw new CimesException(TextMessage.Error.T00555("SAIWarehouse", lstDetail[0].Process + "Remark03:DEFECT"));
                            }
                            DBCenter.ExecuteParse(@"INSERT INTO PPFHP (SID, SEQNR, WDATE, WTIME, MATNR, WERKS, LGORT, CHARG, MENGE, MEINS, FLAG)
                                VALUES (#[STRING], #[DECIMAL], #[STRING], #[STRING], #[STRING], #[STRING], #[STRING], #[STRING], #[STRING], #[STRING], 'N')", headerSID, seq, date, time, device, factory, warehouseInfo.Remark02, invLot, qty, lstDetail[0].Unit);

                            int detailseq = 1;
                            lstDetail.ForEach(lot => {
                                var defectInfo      = CSTWIPDefectJudgementInfo.GetDataByLot(lot.Lot);
                                var reasonGroupInfo = WIPReasonGroupInfoEx.GetReasonGroupByCategory(defectInfo["REASONCATEGORY"].ToString());
                                var reasonGroup     = reasonGroupInfo == null ? "" : reasonGroupInfo.REASONGROUP;
                                //寫入PPBCH
                                DBCenter.ExecuteParse(@"INSERT INTO PPBCH (SID, MATNR, WERKS, CHARG, SEQNO, WDATE, WTIME, CLASS, ATINN, ATWRT, FLAG)
                                    Values (#[STRING], #[STRING], #[STRING], #[STRING], #[DECIMAL], #[STRING], #[STRING], #[STRING], #[STRING], #[STRING], 'N')", headerSID, device, factory, invLot, detailseq, date, time, reasonGroup, defectInfo["REASONCATEGORY"].ToString(), defectInfo.Reason);
                                detailseq += 1;
                            });

                            seq  += 1;
                            preWo = currentWO;
                        });

                        _SelectLotDatas.ForEach(lot =>
                        {
                            //寫入WMSMaster & Detail
                            var wmsMaster = CSTWMSMastInfo.GetMaterialLotDataByMaterialLot(lot.InventoryLot);
                            if (wmsMaster == null)
                            {
                                wmsMaster            = InfoCenter.Create <CSTWMSMastInfo>();
                                wmsMaster.Lot        = lot.InventoryLot;
                                wmsMaster.DeviceName = lot.DeviceName;
                                wmsMaster.RuleName   = txnStamp.RuleName;
                                wmsMaster.InsertToDB(txnStamp.UserID, txnStamp.RecordTime);
                            }
                            //理論上只會有一個Comp
                            lot.GetLotAllComponents().ForEach(comp => {
                                var wmsDetail         = InfoCenter.Create <CSTWMSDetailInfo>();
                                wmsDetail.Lot         = lot.InventoryLot;
                                wmsDetail.ComponentID = comp.ComponentID;
                                wmsDetail.Quantity    = comp.ComponentQuantity;
                                wmsDetail.InsertToDB(txnStamp.UserID, txnStamp.RecordTime);
                            });

                            //將入庫單號回寫到批號身上
                            WIPTransaction.ModifyLotSystemAttribute(lot, "INVNO", ttbDefectNo.Text, txnStamp);

                            //將勾選的批號結批
                            WIPTransaction.TerminateLot(lot, txnStamp);
                        });

                        #region 更新命名規則
                        if (_ExecuteNamingSQLList != null && _ExecuteNamingSQLList.Count > 0)
                        {
                            DBCenter.ExecuteSQL(_ExecuteNamingSQLList);
                        }
                        #endregion

                        cts.Complete();
                    }
                    else
                    {
                        //[00816]請至少選取一個{0}!
                        throw new Exception(TextMessage.Error.T00816(GetUIResource("WorkpieceLot")));
                    }
                }

                ClearField();

                _ProgramInformationBlock.ShowMessage(TextMessage.Hint.T00614(""));
            }
            catch (Exception ex)
            {
                HandleError(ex);
            }
        }
Example #7
0
        /// <summary>
        /// 依照檢驗計畫取得該物件的datatable
        /// </summary>
        /// <param name="QCTypeData"></param>
        /// <param name="objectName"></param>
        /// <returns></returns>
        public static DataTable GetInspectionData(QCTypeInfo QCTypeData, string objectName)
        {
            string    sql        = "";
            DataTable dtQCTarget = null;

            #region 依照檢驗計畫取得該物件的datatable
            switch (QCTypeData.QCTarget)
            {
            case "MES_WIP_LOT":
            {
                LotInfo lot = LotInfo.GetLotByLot(objectName);
                if (lot == null)
                {
                    throw new Exception(TextMessage.Error.T00378(objectName));
                }

                dtQCTarget = lot.CopyDataToTable(lot.ID);
            }
            break;

            case "MES_WIP_COMP":
            {
                //取得component資訊以及所在的工作站
                sql = @"SELECT L.OPERATION,C.* FROM MES_WIP_COMP C
                                 INNER JOIN MES_WIP_LOT L ON C.CURRENTLOT = L.LOT
                                 WHERE COMPONENTID = #[STRING]";

                ComponentInfo comp = InfoCenter.GetBySQL <ComponentInfo>(sql, objectName);
                if (comp == null)
                {
                    throw new Exception(TextMessage.Error.T00154(objectName));
                }

                dtQCTarget = comp.CopyDataToTable(comp.ID);
            }
            break;

            case "MES_CMS_CAR":
            {
                CarrierInfo carrier = CarrierInfo.GetCarrierByCarrierNo(objectName);
                if (carrier == null)
                {
                    throw new RuleCimesException(TextMessage.Error.T00725(objectName));
                }

                dtQCTarget = carrier.CopyDataToTable(carrier.ID);
            }
            break;

            case "MES_TOOL_MAST":
            {
                ToolInfo tool = ToolInfo.GetToolByName(objectName);
                if (tool == null)
                {
                    throw new Exception(TextMessage.Error.T00592(objectName));
                }
                dtQCTarget = tool.CopyDataToTable(tool.ID);
            }
            break;

            case "MES_MMS_MLOT":
            {
                MaterialLotInfo mlot = MaterialLotInfo.GetMaterialLotByMaterialLot(objectName);
                if (mlot == null)
                {
                    throw new Exception(TextMessage.Error.T00512(objectName));
                }

                dtQCTarget = mlot.CopyDataToTable(mlot.ID);
            }
            break;

            case "MES_EQP_EQP":
            {
                EquipmentInfo equipment = EquipmentInfo.GetEquipmentByName(objectName);
                if (equipment == null)
                {
                    throw new Exception(TextMessage.Error.T00885(objectName));
                }

                dtQCTarget = equipment.CopyDataToTable(equipment.ID);
            }
            break;

            default:
            {
                sql        = string.Format("SELECT * FROM {0} WHERE {1} = #[STRING]", QCTypeData.QCTarget, QCTypeData.IdentityColumn);
                dtQCTarget = DBCenter.GetDataTable(sql, objectName);
                if (dtQCTarget == null || dtQCTarget.Rows.Count == 0)
                {
                    throw new Exception(TextMessage.Error.T00030("InspectionTarget", objectName));
                }
            }
            break;
            }
            #endregion

            return(dtQCTarget);
        }