Example #1
0
        // разбор параметров от главной формы
        private void AfterConstruct(object xx)
        {
            object[]
            x = (object[])xx;

            try
            {
                xMF       = (MainF)(x[0]);
                bAutoMark = (bool)(x[1]);
            }
            catch { }

            xNSI = xMF.xNSI;

            //ehOldScan = new BarcodeScanner.BarcodeScanEventHandler(OnScanPL);
            ehOldScan = new BarcodeScanner.BarcodeScanEventHandler(OnScan);
            xMF.xBCScanner.BarcodeScan += ehOldScan;
            xHelpS  = new Srv.HelpShow(this);
            lstHelp = new List <string>(new string[] {
                xMF.xFuncs.TryGetFuncKeys(AppC.F_UPLD_DOC).PadRight(CMD_SIGHN) + " - выгрузка сведений",
                xMF.xFuncs.TryGetFuncKeys(AppC.F_CHG_REC).PadRight(CMD_SIGHN) + " - новая паллетта",
                "->,<-".PadRight(CMD_SIGHN) + " - смена емкости",
                xMF.xFuncs.TryGetFuncKeys(AppC.F_EASYEDIT).PadRight(CMD_SIGHN) + " - новый документ",
                xMF.xFuncs.TryGetFuncKeys(AppC.F_LOAD_DOC).PadRight(CMD_SIGHN) + " - стрейчевание",
                xMF.xFuncs.TryGetFuncKeys(AppC.F_A4MOVE).PadRight(CMD_SIGHN) + " - режим стрейч",
                xMF.xFuncs.TryGetFuncKeys(AppC.F_KMCINF).PadRight(CMD_SIGHN) + " - без WMS",
                xMF.xFuncs.TryGetFuncKeys(AppC.F_QUIT).PadRight(CMD_SIGHN) + " - выход",
                xMF.xFuncs.TryGetFuncKeys(AppC.F_MARKWMS).PadRight(CMD_SIGHN) + " - возврат в главную"
            });
            //System.Reflection.AssemblyName xAN = System.Reflection.Assembly.GetExecutingAssembly().GetName();
            //string sV = xAN.Version.ToString();
            //int nPoint = sV.LastIndexOf(".");
            //lHelp.Text = String.Format("<F1> - помощь           v{0}", sV.Substring(nPoint));
            xMF.CheckNSIState(false);

            this.Tag = null;

            // номер ID-точки
            tDevID.Text = sDevID = Smena.EnterPointID;

            chNewDoc.Checked = (sDevID.Length > 0)?false:true;

            enWrapMode = xMF.xPars.WrapMode;
            SetWrapp();

            if (xMF.xPars.CanEditIDNum)
            {
                tDevID.Focus();
            }
            else
            {
                tDevID.Enabled = false;
                if (sDevID.Length > 0)
                {
                    MainCycleStart(sDevID, false);
                }
            }
        }
Example #2
0
        /// подготовить и отобразить содержимое SSCC
        private void ShowSSCCContent(DataTable dtZ, string sSSCC, ServerExchange xSE, AddrInfo xA, ref Srv.CurrFuncKeyHandler ehKeybHdl)
        {
            const int NP_LEN = 5;
            int
                nTotMest,
                nM;
            string
                sNP,
                sUser = "",
                sFIO  = "";
            char
                cExCh = '=';
            DataRow
                xd;
            DateTime
                dVyr;
            List <string>
            lKMC     = new List <string>(),
                lCur = new List <string>();
            FRACT
                fTotEd,
                fE;

            nTotMest = 0;
            fTotEd   = 0;
            try
            {
                string sA = "";
                try
                {
                    sA = xA.AddrShow;
                }
                catch { }

                try
                {
                    sUser = xSE.AnswerPars["USER"];
                    if ((sUser == AppC.SUSER) || (sUser == AppC.GUEST))
                    {
                        sFIO = (sUser == AppC.SUSER) ? "Admin" : "Работник склада";
                    }
                    else
                    {
                        NSI.RezSrch zS = xNSI.GetNameSPR(NSI.NS_USER, new object[] { sUser }, "NMP");
                        if (zS.bFind)
                        {
                            sFIO = sUser + '-' + zS.sName;
                        }
                        else
                        {
                            sFIO = sUser;
                        }
                    }
                }
                catch
                {
                    sFIO = "";
                }

                xInf = aKMCName(String.Format("{0} ({1}) {2}", sSSCC.Substring(2), sA, sFIO), false);
                xInf.Add(aKMCName("", true, cExCh)[0]);

                if (dtZ.Rows.Count > 0)
                {
                    DataView
                        dv = new DataView(dtZ, "", "KMC", DataViewRowState.CurrentRows);

                    foreach (DataRowView dva in dv)
                    {
                        xd = dva.Row;
                        try
                        {
                            nM = (int)xd["KOLM"];
                        }
                        catch { nM = 0; }
                        try
                        {
                            fE = (FRACT)xd["KOLE"];
                        }
                        catch { fE = 0; }

                        try
                        {
                            dVyr = DateTime.ParseExact((string)xd["DVR"], "yyyyMMdd", null);
                        }
                        catch { dVyr = DateTime.MinValue; }
                        nTotMest += nM;
                        fTotEd   += fE;

                        if (!lKMC.Contains((string)xd["KMC"]))
                        {
                            lKMC.Add((string)xd["KMC"]);
                        }

                        lCur.Add(String.Format("{0,4} {1}", xd["KRKMC"], xd["SNM"]));
                        //lCur.Add(String.Format("{0} {1,6} {2,5:F1} {3,6} {4,7}", dVyr.ToString("dd.MM"), xd["NP"], xd["EMK"], nM, fE));
                        sNP = xd["NP"].ToString();
                        if (sNP.Length > NP_LEN)
                        {
                            sNP = sNP.Substring(sNP.Length - NP_LEN, NP_LEN);
                        }
                        else
                        {
                            sNP = sNP.PadLeft(NP_LEN);
                        }
                        lCur.Add(String.Format("{0} {1,5} {2,5:F1} {3,6} {4,7}", dVyr.ToString("dd.MM"), sNP, xd["EMK"], nM, fE));
                        lCur.Add(aKMCName("", true)[0]);
                    }
                    xInf.Add(String.Format("Всего SKU: {0}  Мест:{1}  Ед.:{2}", lKMC.Count, nTotMest, fTotEd));
                    xInf.Add(aKMCName("", true, cExCh)[0]);
                    xInf.Add(" Двыр   №пт  Емк    Мест     Ед.");
                    xInf.Add(aKMCName("", true, cExCh)[0]);
                    xInf.AddRange(lCur);
                }
                else
                {
                    xInf.Add("Нет сведений!");
                    Srv.PlayMelody(W32.MB_3GONG_EXCLAM);
                }
                //xHelpS.ShowInfo(xInf, ref ehKeybHdl);
                Srv.HelpShow
                    xSSCCCont = new Srv.HelpShow(this);
                //xSSCCCont.ShowInfo(xInf, ref ehKeybHdl);
                xSSCCCont.ShowInfo(null,
                                   (tcMain.SelectedIndex == PG_DOC) ? dgDoc :
                                   (tcMain.SelectedIndex == PG_SCAN) ? dgDet : null,
                                   xInf, ref ehKeybHdl);
            }
            catch (Exception ex)
            {
                int ggg = 999;
            }
        }
Example #3
0
        private int AdrResult(ScanVarGP xSc, ref PSC_Types.ScDat scD, AddrInfo xA)
        {
            int
                nRec,
                nRet = AppC.RC_OK;
            DataRow
                dr;
            DialogResult
                dRez;

            nRet = ConvertAdr2Lst(xA, AppC.COM_ADR2CNT, "ROW", false, NSI.SRCDET.FROMADR);
            if (nRet == AppC.RC_OK)
            {
                nRec = xCLoad.dtZ.Rows.Count;
                if (nRec == 1)
                {
                    scD = new PSC_Types.ScDat(new ScannerAll.BarcodeScannerEventArgs(ScannerAll.BCId.NoData, ""));
                    //SetVirtScan(xCLoad.dtZ.Rows[0], ref scD, true, false);
                    SetVirtScan(xCLoad.dtZ.Rows[0], ref scD, true, true);
                    scD.nRecSrc      = (int)NSI.SRCDET.FROMADR;
                    xCDoc.xOper.SSCC = scD.sSSCC;

                    // Если пришел адрес назначения
                    if ((scD.xOp.xAdrDst != null) && (scD.xOp.xAdrDst.Addr.Length > 0))
                    {
                        xCDoc.xOper.xAdrDst_Srv = scD.xOp.xAdrDst;          // сохранить рекомендации сервера
                        if (xDestInfo == null)
                        {
                            int
                                FontS         = 28,
                                INFWIN_WIDTH  = 230,
                                INFWIN_HEIGHT = 90;
                            System.Drawing.Rectangle
                                recInf,
                                screen = Screen.PrimaryScreen.Bounds;

                            recInf    = new System.Drawing.Rectangle((screen.Width - INFWIN_WIDTH) / 2, 200, INFWIN_WIDTH, INFWIN_HEIGHT);
                            xDestInfo = new Srv.HelpShow(this, recInf, 1, FontS, 0);
                        }
                        xDestInfo.ShowInfo(new string[] { scD.xOp.xAdrDst.AddrShow }, ref ehCurrFunc);
                    }
                    scD.xOp = (xCDoc.xOper == null) ? new CurOper(false) : xCDoc.xOper;


                    if ((xCDoc.xDocP.TypOper == AppC.TYPOP_DOCUM) ||
                        (xCDoc.xDocP.TypOper == AppC.TYPOP_KMPL) ||
                        (xCDoc.xDocP.TypOper == AppC.TYPOP_KMSN))
                    {// будет редактирование количества "отсканированной" продукции
                        return(AppC.RC_CONTINUE);
                    }

                    // далее выполняется только для операций

                    if (xCDoc.xDocP.TypOper == AppC.TYPOP_MOVE)
                    {
                        if (scD.tTyp == AppC.TYP_TARA.TARA_PODDON)
                        {// для поддонов редактирования не будет
                            scCur = scD;
                            if (AddDet1(ref scD, out dr))
                            {
                                //xCDoc.xOper.bObjOperScanned = true;
                                xCDoc.xOper.SetOperObj(dr, xCDoc.xDocP.nTypD, false);
                                //SetDetFields(false);
                                if (dr != null)
                                {
                                    drDet = dr;
                                    //dr["SSCC"] = scD.sSSCC;
                                    //xCDoc.xOper.SSCC = scD.sSSCC;
                                }
                            }
                        }
                    }
                    //IsOperReady(false);
                }
                else if (nRec > 1)
                {// ROW - добавление группы
                    if (xCDoc.xDocP.TypOper == AppC.TYPOP_DOCUM)
                    {
                        dRez = MessageBox.Show(
                            String.Format("Новых строк {0}\nДобавить (Enter)?\n(ESC)- вывод на экран", xCLoad.dtZ.Rows.Count),
                            "Добавление продукции", MessageBoxButtons.OKCancel,
                            MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
                    }
                    else
                    {
                        dRez = DialogResult.Cancel;
                    }
                    if (dRez == DialogResult.OK)
                    {
                        //nRet = AddGroupDet(AppC.RC_MANYEAN, (int)NSI.SRCDET.FROMADR, xA.AddrShow);
                        nRet = AddGroupDet(AppC.RC_MANYEAN, (int)NSI.SRCDET.FROMADR, "");
                    }
                    else
                    {
                        if (AppC.RC_OK == ConvertAdr2Lst(xA, "TXT"))
                        {
                            // справочная информация, просто выводится
                            xHelpS.ShowInfo(xInf, ref ehCurrFunc);
                        }
                    }
                }
            }
            return(nRet);
        }