Exemplo n.º 1
0
        private int Read2D(BarcodeScannerEventArgs e)
        {
            int nRet = AppC.RC_OK,
                nLev;
            string s;



            s = e.Data;

            if (xAllDef == null)
            {
                DirectoryInfo di = new DirectoryInfo(xPars.sDataPath);
                FileInfo[]    fi = di.GetFiles("*.def");
                Def2Data      xOneDef;

                xAllDef = new List <Def2Data>();

                for (int i = 0; i < fi.Length; i++)
                {
                    xOneDef = new Def2Data();
                    nRet    = Read2DDef(fi[i].FullName, Encoding.GetEncoding(1251), xOneDef);
                    if (nRet == AppC.RC_OK)
                    {
                        nLev         = 0;
                        xOneDef.lDef = CreateArrOp(lDoc, ref nLev, 0);
                        xAllDef.Add(xOneDef);
                    }
                    else
                    {
                        ServClass.ErrorMsg(fi[i].FullName + "-ошибка в описании!");
                    }
                }

                xSer2D = new Ser2DSym(xNSI);
            }

            nRet = New2D(e.BinData, e.LenBinData);
            s    = "";
            if (nRet == AppC.RC_OK)
            {
                switch (xSer2D.State)
                {
                case READ2D_STATE.R_WAIT_SER:
                    s = "Записан - <" + sLastDoc + ">";
                    break;

                case READ2D_STATE.R_WAIT_NEXT:
                    break;
                }
            }
            //Show2DResult(REG_2D_SHOW, s);
            return(nRet);
        }
Exemplo n.º 2
0
        private int New2D(byte[] b, int nLen)
        {
            int nRet = AppC.RC_OK;

            if (IsGood2D(b, nLen))
            {
                xSer2D.AddNew(b, nLen, xPars.b2DFull);
                if (xPars.b2DFull == false)
                {
                    xSer2D.State = READ2D_STATE.R_FULL_SER;
                }
                switch (xSer2D.State)
                {
                case READ2D_STATE.R_SAME_DOC:
                case READ2D_STATE.R_BAD_KEYS:
                    xSer2D = new Ser2DSym(xNSI);
                    break;

                case READ2D_STATE.R_FULL_SER:
                    if (xSer2D.bRewrite == false)
                    {    // создаем новый
                        xNSI.AddDocRec(xSer2D.xD, dgDoc);
                        StatAllDoc();
                    }
                    else
                    {
                        xNSI.UpdateDocRec(xSer2D.drRew, xSer2D.xD);
                    }
                    sLastDoc = xSer2D.xD.xDocP.sNomDoc;
                    xSer2D   = new Ser2DSym(xNSI);
                    break;
                }
            }
            else
            {
                nRet = AppC.RC_BADID;
            }

            return(nRet);
        }
Exemplo n.º 3
0
        // Обработка сканирования на панели Документов
        //private CurLoad TransDocCode(ref PSC_Types.ScDat s)
        //{
        //    bool ret = false;
        //    CurLoad xL = null;
        //    if (true)
        //    {
        //        string sS = s.s;
        //        int i, nLen;
        //        xL = new CurLoad(AppC.UPL_FLT);

        //        ret = true;
        //        try
        //        {
        //            if (s.ci == ScannerAll.BCId.Code128)
        //            {
        //                nLen = sS.Length;
        //                switch (nLen)
        //                {
        //                    case 14:                            // № накладной
        //                        ret = false;
        //                        if (sS.Substring(0, 3) == "821")
        //                        {// код формы - 821...
        //                            i = int.Parse(sS.Substring(7, 7));
        //                            if (i > 0)
        //                            {
        //                                xL.xLP.sNomDoc = i.ToString();
        //                                ret = true;
        //                            }
        //                            else
        //                                xL.xLP.sNomDoc = "";
        //                        }
        //                        xL.xLP.nTypD = AppC.TYPD_VPER;
        //                        break;
        //                    case 34:                            // Отгрузка по участкам и т.п.
        //                        // Структура кода на документе (длина - 34)
        //                        // Дата - ГГММДД (6)
        //                        // Смена - (4)
        //                        // Склад - (3)
        //                        // Участок - (3)
        //                        // Экспедитор - (4)
        //                        // Получатель - (4)
        //                        // тип документа - (2)
        //                        // № документа - (8)
        //                        xL.xLP.dDatDoc = DateTime.ParseExact(sS.Substring(0, 6), "yyMMdd", null);
        //                        // длина смены
        //                        i = int.Parse(sS.Substring(6, 1));
        //                        if (i > 0)
        //                            xL.xLP.sSmena = sS.Substring(7, i);
        //                        else
        //                            xL.xLP.sSmena = "";

        //                        i = int.Parse(sS.Substring(10, 3));
        //                        if (i > 0)
        //                            xL.xLP.nSklad = i;
        //                        else
        //                            xL.xLP.nSklad = AppC.EMPTY_INT;

        //                        i = int.Parse(sS.Substring(13, 3));
        //                        if (i > 0)
        //                            xL.xLP.nUch = i;
        //                        else
        //                            xL.xLP.nUch = AppC.EMPTY_INT;

        //                        i = int.Parse(sS.Substring(20, 4));
        //                        if (i > 0)
        //                            xL.xLP.nPol = i;
        //                        else
        //                            xL.xLP.nPol = AppC.EMPTY_INT;

        //                        i = int.Parse(sS.Substring(24, 2));
        //                        if (i > 0)
        //                            xL.xLP.nTypD = i;
        //                        else
        //                            xL.xLP.nTypD = AppC.EMPTY_INT;

        //                        i = int.Parse(sS.Substring(26, 8));
        //                        if (i > 0)
        //                        {
        //                            xL.xLP.sNomDoc = i.ToString();
        //                            ret = true;
        //                        }
        //                        else
        //                            xL.xLP.sNomDoc = "";
        //                        break;
        //                    default:
        //                        ret = false;
        //                        break;
        //                }
        //            }
        //        }
        //        catch
        //        {
        //            ret = false;
        //        }

        //    }
        //    if (ret == false)
        //    {
        //        xL = null;
        //    }
        //    return (xL);
        //}



        // обработка функций и клавиш на панели
        private bool Doc_KeyDown(int nFunc, KeyEventArgs e)
        {
            bool ret = false;

            if (nFunc > 0)
            {
                switch (nFunc)
                {
                case AppC.F_UPLD_DOC:
                    GetAvtInf(AppC.COM_ZCONTR);
                    break;
                }



                if (bEditMode == false)
                {
                    switch (nFunc)
                    {
                    case PDA.Service.AppC.F_ADD_REC:                // добавление новой
                        AddOrChangeDoc(PDA.Service.AppC.F_ADD_REC);
                        ret = true;
                        break;

                    case AppC.F_CHG_REC:                // корректировка
                        if (xCDoc.drCurRow != null)
                        {
                            AddOrChangeDoc(AppC.F_CHG_REC);
                        }
                        ret = true;
                        break;

                    case AppC.F_DEL_ALLREC:             // удаление всех
                    case AppC.F_DEL_REC:                // или одного
                        DelDoc(nFunc);
                        StatAllDoc();
                        ret = true;
                        break;
                        //case AppC.F_CHG_GSTYLE:           // смена стиля, режима
                        //    //ChgDocGridStyle(1);
                        //    ret = true;
                        //    break;
                        //case AppC.F_TOT_MEST:
                        //    // всего мест по накладная/заявка
                        //    //ShowTotMest();
                        //    ret = true;
                        //    break;
                        //case AppC.F_CTRLDOC:
                        //    // контроль текущего документа
                        //    //ControlDocs(AppC.F_INITREG, null);
                        //    ret = true;
                        //    break;
                        //case AppC.F_CHGSCR:
                        //    // смена экрана
                        //    //xScrDoc.NextReg();
                        //    ret = true;
                        //    break;
                    }
                }
            }
            else
            {
                switch (e.KeyValue)
                {
                case W32.VK_ESC:
                    Show2DResult(REG_2D_CLOSE, "");
                    xSer2D = new Ser2DSym(xNSI);
                    dgDoc.Focus();
                    ret = true;
                    break;

                case W32.VK_ENTER:
                    break;
                }
            }
            e.Handled |= ret;
            return(ret);
        }