示例#1
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);
        }
示例#2
0
        private DataTable GetLotTitle()
        {
            DataTable dt = _LotData.CopyDataToTable("MES_WIP_LOT");

            dt.Columns.Add("DeviceCode");//料號的2,3碼
            dt.Columns.Add("LotTypeDescr");
            dt.Columns.Add("WOQuantity");
            dt.Columns.Add("DeviceDescr");
            dt.Columns.Add("DeviceBPNo");
            dt.Columns.Add("DeviceBPRev");
            dt.Columns.Add("ProductionDate");//預計生產日期

            dt.Rows[0]["DeviceCode"] = _LotData.DeviceName.Substring(1, 2);
            var lsLotType = WpcExClassItemInfo.GetExClassItemInfo("LotType", _LotData.LotType);

            dt.Rows[0]["LotTypeDescr"] = lsLotType.Count > 0 ? lsLotType[0].Remark02 : "";

            var WOData = WorkOrderInfo.GetWorkOrderByWorkOrder(_LotData.WorkOrder);

            dt.Rows[0]["WOQuantity"]     = WOData.Quantity;
            dt.Rows[0]["ProductionDate"] = WOData["ProductionDate"].ToCimesString();

            var DeviceData = DeviceVersionInfoEx.GetActiveDeviceVersion(_LotData.DeviceName).ChangeTo <DeviceVersionInfoEx>();

            dt.Rows[0]["DeviceDescr"] = DeviceData.Description;
            dt.Rows[0]["DeviceBPNo"]  = "0 無欄位";
            dt.Rows[0]["DeviceBPRev"] = "0 無欄位";

            return(dt);
        }
示例#3
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);
        }
示例#4
0
        private DataTable GetLotTitle()
        {
            DataTable dt = _LotData.CopyDataToTable("MES_WIP_LOT");

            dt.Columns.Add("DeviceCode");//料號的2,3碼
            dt.Columns.Add("LotTypeDescr");
            dt.Columns.Add("WOQuantity");
            dt.Columns.Add("DeviceDescr");
            dt.Columns.Add("DeviceBPNo");
            dt.Columns.Add("DeviceBPRev");
            dt.Columns.Add("ProductionDate"); //預計生產日期
            dt.Columns.Add("ScheduleDate");   //預計完成日期
            dt.Columns.Add("BOM_MATNR");      //投入料號
            dt.Columns.Add("Device_PLMNO");   //PLM 編號
            dt.Columns.Add("Device_PLMVR");   //PLM 版本

            if (cbxWO.Checked)
            {
                var woLot = CSTWorkOrderLotInfo.GetWorkOrderLotDataByWorkOrderLot(ttbWOLot.Text.Trim());

                dt.Rows[0]["WOLOT"]       = woLot.WOLOT;
                dt.Rows[0]["INVLOT"]      = woLot.INVLOT;
                dt.Rows[0]["MATERIALLOT"] = woLot.MATERIALLOT;
                dt.Rows[0]["Quantity"]    = woLot.Quantity;
                dt.Rows[0]["LOT"]         = woLot.WOLOT;

                var cstWOBOMInfo = CSTWPCWorkOrderBOMInfo.GetDataByWorkOrder(woLot.WorkOrder).Find(p => p["SORTF"].ToString() == "1");
                if (cstWOBOMInfo != null)
                {
                    dt.Rows[0]["BOM_MATNR"] = cstWOBOMInfo["MATNR"].ToString();
                }

                dt.Rows[0]["DeviceCode"] = _LotData.DeviceName.Substring(1, 2);

                var lsLotType = WpcExClassItemInfo.GetExClassItemInfo("LotType", _LotData.LotType);
                dt.Rows[0]["LotTypeDescr"] = lsLotType.Count > 0 ? lsLotType[0].Remark02 : "";

                var WOData = WorkOrderInfo.GetWorkOrderByWorkOrder(woLot.WorkOrder);
                dt.Rows[0]["WOQuantity"]     = WOData.Quantity;
                dt.Rows[0]["ProductionDate"] = WOData["ProductionDate"].ToCimesString();
                dt.Rows[0]["ScheduleDate"]   = WOData.ScheduleDate;

                var DeviceData = DeviceVersionInfoEx.GetActiveDeviceVersion(_LotData.DeviceName).ChangeTo <DeviceVersionInfoEx>();
                dt.Rows[0]["DeviceDescr"]  = DeviceData.Description;
                dt.Rows[0]["DeviceBPNo"]   = DeviceData["BPNO"].ToString();
                dt.Rows[0]["DeviceBPRev"]  = DeviceData["BPREV"].ToString();
                dt.Rows[0]["Device_PLMVR"] = DeviceData["PLMVR"].ToString();
                dt.Rows[0]["Device_PLMNO"] = DeviceData["PLMNO"].ToString();
            }
            if (cbxSN.Checked || cbxLot.Checked)
            {
                dt.Rows[0]["WOLOT"]       = _LotData.WorkOrderLot;
                dt.Rows[0]["INVLOT"]      = _LotData.InventoryLot;
                dt.Rows[0]["MATERIALLOT"] = _LotData.MaterialLot;
                dt.Rows[0]["Quantity"]    = _LotData.Quantity;
                dt.Rows[0]["LOT"]         = _LotData.Lot;

                dt.Rows[0]["DeviceCode"] = _LotData.DeviceName.Substring(1, 2);
                var lsLotType = WpcExClassItemInfo.GetExClassItemInfo("LotType", _LotData.LotType);
                dt.Rows[0]["LotTypeDescr"] = lsLotType.Count > 0 ? lsLotType[0].Remark02 : "";

                var WOData = WorkOrderInfo.GetWorkOrderByWorkOrder(_LotData.WorkOrder);
                dt.Rows[0]["WOQuantity"]     = WOData.Quantity;
                dt.Rows[0]["ProductionDate"] = WOData["ProductionDate"].ToCimesString();
                dt.Rows[0]["ScheduleDate"]   = WOData.ScheduleDate;

                var DeviceData = DeviceVersionInfoEx.GetActiveDeviceVersion(_LotData.DeviceName).ChangeTo <DeviceVersionInfoEx>();
                dt.Rows[0]["DeviceDescr"]  = DeviceData.Description;
                dt.Rows[0]["DeviceBPNo"]   = DeviceData["BPNO"].ToString();
                dt.Rows[0]["DeviceBPRev"]  = DeviceData["BPREV"].ToString();
                dt.Rows[0]["Device_PLMVR"] = DeviceData["PLMVR"].ToString();
                dt.Rows[0]["Device_PLMNO"] = DeviceData["PLMNO"].ToString();

                var cstWOBOMInfo = CSTWPCWorkOrderBOMInfo.GetDataByWorkOrder(WOData.WorkOrder).Find(p => p["SORTF"].ToString() == "1");
                if (cstWOBOMInfo != null)
                {
                    dt.Rows[0]["BOM_MATNR"] = cstWOBOMInfo["MATNR"].ToString();
                }
            }

            return(dt);
        }