Beispiel #1
0
        private void btnPrint_Click(object sender, EventArgs e)
        {
            if (edtMONumber.Text.Trim() == "")
            {
                XtraMessageBox.Show("请输入制造订单号!");
                edtMONumber.Focus();
                return;
            }
            if (edtMOLineNo.Text.Trim() == "")
            {
                XtraMessageBox.Show("请输入制造订单行号!");
                edtMOLineNo.Focus();
                return;
            }

            string strProcedureName =
                string.Format(
                    "{0}.{1}",
                    className,
                    MethodBase.GetCurrentMethod().Name);

            WriteLog.Instance.WriteBeginSplitter(strProcedureName);
            try
            {
                ReprintPWO pwoInfo = new ReprintPWO();
                int        errCode = 0;
                string     errText = "";

                IRAPSCESClient.Instance.mfn_GetInfo_PWOToReprint(
                    IRAPUser.Instance.CommunityID,
                    t173LeafID,
                    edtMONumber.Text.Trim(),
                    Tools.ConvertToInt32(edtMOLineNo.Text.Trim()),
                    IRAPUser.Instance.SysLogID,
                    ref pwoInfo,
                    out errCode,
                    out errText);
                WriteLog.Instance.Write(
                    string.Format("({0}){1}", errCode, errText),
                    strProcedureName);
                if (errCode != 0)
                {
                    XtraMessageBox.Show(
                        errText,
                        "提示",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Error);
                    return;
                }
                else
                {
                    #region 打印
                    Report report  = new Report();
                    Report report1 = new Report();
                    bool   printWIPProductInfoTrack = false;

                    MemoryStream ms;
                    switch (IRAPUser.Instance.CommunityID)
                    {
                    case 60023:
                        ms = new MemoryStream(Properties.Resources.WIPTransferTrackSheet_60023);
                        break;

                    default:
                        ms = new MemoryStream(Properties.Resources.WIPTransferTrackSheet);
                        if (ConfigurationManager.AppSettings["PrintProductInfoTrack"] != null)
                        {
                            printWIPProductInfoTrack =
                                ConfigurationManager.AppSettings["PrintProductInfoTrack"].ToUpper() == "TRUE";
                        }
                        break;
                    }
                    report.Load(ms);

                    if (printWIPProductInfoTrack)
                    {
                        switch (IRAPUser.Instance.CommunityID)
                        {
                        case 60010:
                            switch (pwoInfo.T173Code)
                            {
                            case "5160":
                                ms = new MemoryStream(Properties.Resources.WIPProductInfoTrack_60010_2155630);
                                break;

                            default:
                                ms = new MemoryStream(Properties.Resources.WIPProductInfoTrack);
                                break;
                            }
                            break;

                        case 60030:
                            if (IRAPUser.Instance.HostName == "RMS115301")
                            {
                                ms =
                                    new MemoryStream(
                                        Properties.Resources.WIPProductInfoTrack_60030_RMS115301);
                            }
                            else
                            {
                                ms =
                                    new MemoryStream(
                                        Properties.Resources.WIPProductInfoTrack_60030);
                            }
                            break;

                        default:
                            ms = new MemoryStream(Properties.Resources.WIPProductInfoTrack);
                            break;
                        }

                        if (ms != null)
                        {
                            report1.Load(ms);
                        }
                    }

                    try
                    {
                        switch (IRAPUser.Instance.CommunityID)
                        {
                        case 60010:        // 仪征打印的生产流转卡
                        case 60030:
                            report.Parameters.FindByName("BarCode").Value          = pwoInfo.PWONo;
                            report.Parameters.FindByName("DeliveryWorkshop").Value = "";
                            report.Parameters.FindByName("StorehouseCode").Value   =
                                string.Format(
                                    "{0}({1})",
                                    pwoInfo.T173Name,
                                    pwoInfo.T173Code);
                            report.Parameters.FindByName("T106Code").Value     = pwoInfo.AtStoreLocCode;
                            report.Parameters.FindByName("WorkshopName").Value =
                                string.Format(
                                    "{0}({1})",
                                    pwoInfo.DstWorkShopDesc,
                                    pwoInfo.DstWorkShopCode);
                            report.Parameters.FindByName("ProductLine").Value         = pwoInfo.T134Name;
                            report.Parameters.FindByName("AdvicedPickedQty").Value    = pwoInfo.SuggestedQuantityToPick;
                            report.Parameters.FindByName("StartingDate").Value        = pwoInfo.PlannedStartDate;
                            report.Parameters.FindByName("CompletingDate").Value      = pwoInfo.PlannedCloseDate;
                            report.Parameters.FindByName("PrintingDate").Value        = DateTime.Now.ToString("yyyy-MM-dd");
                            report.Parameters.FindByName("Unit").Value                = pwoInfo.UnitOfMeasure;
                            report.Parameters.FindByName("MONo").Value                = pwoInfo.MONumber;
                            report.Parameters.FindByName("LineNo").Value              = pwoInfo.MOLineNo;
                            report.Parameters.FindByName("LotNumber").Value           = pwoInfo.LotNumber;
                            report.Parameters.FindByName("MaterialTexture").Value     = pwoInfo.T131Code;
                            report.Parameters.FindByName("ActualPickedBars").Value    = pwoInfo.ActualQtyDecompose;
                            report.Parameters.FindByName("OrderQty").Value            = pwoInfo.PlannedQuantity;
                            report.Parameters.FindByName("MaterialCode").Value        = pwoInfo.MaterialCode;
                            report.Parameters.FindByName("MaterialDescription").Value = pwoInfo.MaterialDesc;
                            report.Parameters.FindByName("TransferringInDate").Value  = DateTime.Now.ToString("yyyy-MM-dd");
                            report.Parameters.FindByName("InQuantity").Value          = pwoInfo.ActualQuantityToDeliver;
                            report.Parameters.FindByName("FatherMaterialCode").Value  = pwoInfo.ProductNo;
                            report.Parameters.FindByName("FatherMaterialName").Value  = pwoInfo.ProductDesc;
                            report.Parameters.FindByName("DstT106Code").Value         = pwoInfo.DstT106Code;

                            if (printWIPProductInfoTrack)
                            {
                                switch (IRAPUser.Instance.CommunityID)
                                {
                                case 60010:
                                    DataSet   ds = new DataSet();
                                    DataTable dt = new DataTable();
                                    dt.TableName = "WIPProductInfoTrack";
                                    dt.Columns.Add("BarCode", typeof(string));
                                    dt.Columns.Add("DeliveryWorkShop", typeof(string));
                                    dt.Columns.Add("StorehouseCode", typeof(string));
                                    dt.Columns.Add("T106Code", typeof(string));
                                    dt.Columns.Add("WorkshopName", typeof(string));
                                    dt.Columns.Add("ProductLine", typeof(string));
                                    dt.Columns.Add("AdvicedPickedQty", typeof(string));
                                    dt.Columns.Add("StartingDate", typeof(string));
                                    dt.Columns.Add("CompletingDate", typeof(string));
                                    dt.Columns.Add("PrintingDate", typeof(string));
                                    dt.Columns.Add("Unit", typeof(string));
                                    dt.Columns.Add("MONo", typeof(string));
                                    dt.Columns.Add("MOLineNo", typeof(string));
                                    dt.Columns.Add("LotNumber", typeof(string));
                                    dt.Columns.Add("MaterialTexture", typeof(string));
                                    dt.Columns.Add("ActualPickedBars", typeof(string));
                                    dt.Columns.Add("OrderQty", typeof(int));
                                    dt.Columns.Add("MaterialCode", typeof(string));
                                    dt.Columns.Add("MaterialDescription", typeof(string));
                                    dt.Columns.Add("TransferringInDate", typeof(string));
                                    dt.Columns.Add("InQuantity", typeof(string));
                                    dt.Columns.Add("FatherMaterialCode", typeof(string));
                                    dt.Columns.Add("FatherMaterialName", typeof(string));
                                    dt.Columns.Add("DstT106Code", typeof(string));
                                    dt.Columns.Add("GateWayWC", typeof(string));
                                    dt.Columns.Add("PageNo", typeof(int));
                                    dt.Columns.Add("PageCount", typeof(int));

                                    #region 未设置镀铬车间的容器容量
                                    dt.Rows.Add(
                                        pwoInfo.PWONo,
                                        "",
                                        string.Format("{0}({1})", pwoInfo.T173Name, pwoInfo.T173Code),
                                        pwoInfo.AtStoreLocCode,
                                        pwoInfo.DstWorkShopCode,
                                        pwoInfo.T134Name,
                                        pwoInfo.SuggestedQuantityToPick.ToString(),
                                        pwoInfo.PlannedStartDate.Substring(5, 5),
                                        pwoInfo.PlannedCloseDate.Substring(5, 5),
                                        DateTime.Now.ToString("MM-dd HH:mm:ss"),
                                        pwoInfo.UnitOfMeasure,
                                        pwoInfo.MONumber,
                                        pwoInfo.MOLineNo,
                                        pwoInfo.LotNumber,
                                        pwoInfo.T131Code,
                                        pwoInfo.ActualQtyDecompose,
                                        pwoInfo.PlannedQuantity.ToString(),
                                        pwoInfo.MaterialCode,
                                        pwoInfo.MaterialDesc,
                                        DateTime.Now.ToString("yyyy-MM-dd"),
                                        pwoInfo.ActualQuantityToDeliver,
                                        pwoInfo.ProductNo,
                                        pwoInfo.ProductDesc,
                                        pwoInfo.DstT106Code,
                                        pwoInfo.GateWayWC,
                                        1,
                                        1);
                                    #endregion

                                    ds.Tables.Add(dt);

                                    report1.RegisterData(ds);
                                    report1.GetDataSource("WIPProductInfoTrack").Enabled = true;

                                    break;

                                case 60030:
                                    report1.Parameters.FindByName("BarCode").Value          = pwoInfo.PWONo;
                                    report1.Parameters.FindByName("DeliveryWorkshop").Value = "";
                                    report1.Parameters.FindByName("StorehouseCode").Value   =
                                        string.Format(
                                            "{0}({1})",
                                            pwoInfo.T173Name,
                                            pwoInfo.T173Code);
                                    report1.Parameters.FindByName("T106Code").Value            = pwoInfo.AtStoreLocCode;
                                    report1.Parameters.FindByName("WorkshopName").Value        = pwoInfo.DstWorkShopCode;
                                    report1.Parameters.FindByName("ProductLine").Value         = pwoInfo.T134Name;
                                    report1.Parameters.FindByName("AdvicedPickedQty").Value    = pwoInfo.SuggestedQuantityToPick;
                                    report1.Parameters.FindByName("StartingDate").Value        = pwoInfo.PlannedStartDate.Substring(5, 5);
                                    report1.Parameters.FindByName("CompletingDate").Value      = pwoInfo.PlannedCloseDate.Substring(5, 5);
                                    report1.Parameters.FindByName("PrintingDate").Value        = DateTime.Now.ToString("MM-dd HH:mm:ss");
                                    report1.Parameters.FindByName("Unit").Value                = pwoInfo.UnitOfMeasure;
                                    report1.Parameters.FindByName("MONo").Value                = pwoInfo.MONumber;
                                    report1.Parameters.FindByName("LineNo").Value              = pwoInfo.MOLineNo;
                                    report1.Parameters.FindByName("LotNumber").Value           = pwoInfo.LotNumber;
                                    report1.Parameters.FindByName("MaterialTexture").Value     = pwoInfo.T131Code;
                                    report1.Parameters.FindByName("ActualPickedBars").Value    = pwoInfo.ActualQtyDecompose;
                                    report1.Parameters.FindByName("OrderQty").Value            = pwoInfo.PlannedQuantity;
                                    report1.Parameters.FindByName("MaterialCode").Value        = pwoInfo.MaterialCode;
                                    report1.Parameters.FindByName("MaterialDescription").Value = pwoInfo.MaterialDesc;
                                    report1.Parameters.FindByName("TransferringInDate").Value  = DateTime.Now.ToString("yyyy-MM-dd");
                                    report1.Parameters.FindByName("InQuantity").Value          = pwoInfo.ActualQuantityToDeliver.ToString();
                                    report1.Parameters.FindByName("FatherMaterialCode").Value  = pwoInfo.ProductNo;
                                    report1.Parameters.FindByName("FatherMaterialName").Value  = pwoInfo.ProductDesc;
                                    report1.Parameters.FindByName("DstT106Code").Value         = pwoInfo.DstT106Code;

                                    if (IRAPUser.Instance.CommunityID == 60030)
                                    {
                                        report1.Parameters.FindByName("GateWayWC").Value = pwoInfo.GateWayWC;
                                    }
                                    break;
                                }
                            }

                            break;
                        }
                    }
                    catch (Exception error)
                    {
                        WriteLog.Instance.Write(error.Message, strProcedureName);
                        XtraMessageBox.Show(
                            error.Message,
                            "系统信息",
                            MessageBoxButtons.OK,
                            MessageBoxIcon.Error);
                        return;
                    }

                    System.Drawing.Printing.PrinterSettings prnSetting =
                        new System.Drawing.Printing.PrinterSettings();
                    if (report.Prepare())
                    {
                        bool rePrinter = false;
                        do
                        {
                            prnSetting.PrinterName = IRAPConst.Instance.CurrentPrinterName;
                            if (report.ShowPrintDialog(out prnSetting))
                            {
                                IRAPConst.Instance.CurrentPrinterName = prnSetting.PrinterName;
                                report.PrintPrepared(prnSetting);
                                rePrinter = (
                                    XtraMessageBox.Show(
                                        "物料配送流转卡已经打印完成,是否需要重新打印?",
                                        "系统信息",
                                        MessageBoxButtons.YesNo,
                                        MessageBoxIcon.Question,
                                        MessageBoxDefaultButton.Button2) == DialogResult.Yes);
                            }
                        } while (rePrinter);
                    }

                    if (printWIPProductInfoTrack &&
                        (IRAPUser.Instance.CommunityID == 60010 ||
                         IRAPUser.Instance.CommunityID == 60030))
                    {
                        IRAPMessageBox.Instance.ShowInformation(
                            "请将打印机中的打印纸更换为【产品信息跟踪卡】,更换完毕后点击确认开始打印");

                        if (report1.Prepare())
                        {
                            bool rePrint = false;
                            do
                            {
                                if (report1.ShowPrintDialog(out prnSetting))
                                {
                                    report1.PrintPrepared(prnSetting);
                                    rePrint =
                                        (
                                            XtraMessageBox.Show(
                                                "【产品信息跟踪卡】已经打印完成,是否需要重新打印?",
                                                "系统信息",
                                                MessageBoxButtons.YesNo,
                                                MessageBoxIcon.Question,
                                                MessageBoxDefaultButton.Button2) == DialogResult.Yes
                                        );
                                }
                            } while (rePrint);
                        }
                    }
                    btnClose.PerformClick();
                    #endregion
                }
            }
            catch (Exception error)
            {
                WriteLog.Instance.Write(error.Message, strProcedureName);
                XtraMessageBox.Show(
                    error.Message,
                    "提示",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Error);
            }
            finally
            {
                WriteLog.Instance.WriteEndSplitter(strProcedureName);
            }
        }
Beispiel #2
0
        /// <summary>
        /// 根据制造订单号和制造订单行号,获取工单信息
        /// </summary>
        /// <param name="communityID">社区标识</param>
        /// <param name="dstT173LeafID">目标仓储地点</param>
        /// <param name="moNumber">制造订单号</param>
        /// <param name="moLineNo">制造订单行号</param>
        /// <param name="sysLogID">系统登录标识</param>
        public void mfn_GetInfo_PWOToReprint(
            int communityID,
            int dstT173LeafID,
            string moNumber,
            int moLineNo,
            long sysLogID,
            ref ReprintPWO data,
            out int errCode,
            out string errText)
        {
            string strProcedureName =
                string.Format(
                    "{0}.{1}",
                    className,
                    MethodBase.GetCurrentMethod().Name);

            WriteLog.Instance.WriteBeginSplitter(strProcedureName);
            try
            {
                data = new ReprintPWO();

                #region 将函数调用参数加入 Hashtable 中
                Hashtable hashParams = new Hashtable();
                hashParams.Add("communityID", communityID);
                hashParams.Add("dstT173LeafID", dstT173LeafID);
                hashParams.Add("moNumber", moNumber);
                hashParams.Add("moLineNo", moLineNo);
                hashParams.Add("sysLogID", sysLogID);
                WriteLog.Instance.Write(
                    string.Format(
                        "调用 mfn_GetInfo_PWOToReprint,输入参数:" +
                        "CommunityID={0}|DstT173LeafID={1}|MONumber={2}|" +
                        "MOLineNo={3}|SysLogID={4}",
                        communityID, dstT173LeafID, moNumber, moLineNo, sysLogID),
                    strProcedureName);
                #endregion

                #region 执行存储过程或者函数
                using (WCFClient client = new WCFClient())
                {
                    object rlt =
                        client.WCFRESTFul(
                            "IRAP.BL.SCES.dll",
                            "IRAP.BL.SCES.IRAPSCES",
                            "mfn_GetInfo_PWOToReprint",
                            hashParams,
                            out errCode,
                            out errText);
                    WriteLog.Instance.Write(
                        string.Format("({0}){1}",
                                      errCode,
                                      errText),
                        strProcedureName);

                    if (errCode == 0)
                    {
                        data = rlt as ReprintPWO;
                    }
                }
                #endregion
            }
            catch (Exception error)
            {
                WriteLog.Instance.Write(error.Message, strProcedureName);
                errCode = -1001;
                errText = error.Message;
            }
            finally
            {
                WriteLog.Instance.WriteEndSplitter(strProcedureName);
            }
        }