/// <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); }
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); }
/// <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); }
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); }