Пример #1
0
        private void InfoFromPL(Stream stmX, Dictionary <string, string> aC, DataSet ds,
                                ref string sErr, int nRetSrv)
        {
            DataTable dt = xNSI.DT[NSI.TBD_TTN].dt;

            // время с сервера
            xAvt.SrvCTM = aC["CTM"].Trim();
            // сохранить параметры для разбора
            xAvt.SrvAns     = aC["PAR"].Trim();
            xAvt.SrvAns     = xAvt.SrvAns.Substring(1, xAvt.SrvAns.Length - 2);
            xAvt.KolTTN_EBD = 0;

            sErr = "Ошибка чтения XML";
            string sXMLFile  = "";
            int    nFileSize = ServClass.ReadXMLWrite2File(stmX, ref sXMLFile);

            sErr = "Ошибка загрузки XML";

            dt.BeginLoadData();
            dt.Clear();
            System.Xml.XmlReader xmlRd = System.Xml.XmlReader.Create(sXMLFile);
            dt.ReadXml(xmlRd);
            xmlRd.Close();
            xAvt.KolTTN_EBD = dt.Rows.Count;;

            dt.EndLoadData();
            sErr = "OK";
        }
Пример #2
0
        // проверка поля
        private void AvtFieldValidating(object sender, CancelEventArgs e)
        {
            if (bEditMode == true)
            {
                TextBox xF = ((TextBox)sender);
                string  sT = xF.Text.Trim().ToUpper();
                if (sT.Length > 0)
                {
                    if (xF == tPutList)
                    {
                    }
                    if (xF == tTyag)
                    {
                        if (sT.Length < 4)
                        {
                            ServClass.ErrorMsg("Не меньше 4 цифр!");
                            e.Cancel = true;
                        }
                    }
                }

                if (e.Cancel != true)
                {
                    //((TextBox)sender).Text = sT;
                    //TestOpenAvail(cbGruzType.SelectedIndex, sender, sT);
                    //e.Cancel = !ServClass.TryEditNextFiled((Control)sender, nCurEditCommand, aEdVvod);
                }
                // перед уходом
                if (e.Cancel == false)
                {
                    xCurEdit = (Control)sender;
                }
            }
        }
Пример #3
0
        // добавление новой записи в документы
        public bool AddDocRec(CurDoc xD, DataGrid dgDoc)
        {
            bool ret = true;

            try
            {
                DataRow dr = DT[NSI.TBD_DOC].dt.NewRow();
                dr["SOURCE"] = DOCSRC_CRTD;

                ret = UpdateDocRec(dr, xD);
                if (ret == true)
                {
                    DT[NSI.TBD_DOC].dt.Rows.Add(dr);
                    xD.nId      = (int)dr["ID"];
                    xD.drCurRow = dr;
                    if (dgDoc != null)
                    {
                        dgDoc.CurrentRowIndex = ((System.ComponentModel.IListSource)dgDoc.DataSource).GetList().Count - 1;
                    }
                }
            }
            catch (System.Data.ConstraintException)
            {
                ret = false;
                ServClass.ErrorMsg("Документ уже существует");
            }
            catch (Exception ex)
            {
                ret = false;
                object x = ex.GetType();
            }
            return(ret);
        }
Пример #4
0
        // Версия софтины
        private void MMenuClick_AppVer(object sender, EventArgs e)
        {
            AssemblyName xAN = Assembly.GetExecutingAssembly().GetName();

            //MessageBox.Show(String.Format("Версия ПО - {0}", xAN.Version.ToString()), "Информация");
            ServClass.ErrorMsg(String.Format("Версия ПО - {0}", xAN.Version.ToString()), "Информация", true);

            CreateMMenu();
        }
Пример #5
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);
        }
Пример #6
0
        private void ToPageHeader(TabPage pgT)
        {
            Control cTab0 = ServClass.GetPageControl(pgT, 0, null);

            cTab0.Focus();

            W32.keybd_event(W32.VK_SHIFT, W32.VK_SHIFT, W32.KEYEVENTF_SILENT, 0);
            W32.keybd_event(W32.VK_TAB, W32.VK_TAB, W32.KEYEVENTF_SILENT, 0);
            W32.keybd_event(W32.VK_TAB, W32.VK_TAB, W32.KEYEVENTF_KEYUP | W32.KEYEVENTF_SILENT, 0);
            W32.keybd_event(W32.VK_SHIFT, W32.VK_SHIFT, W32.KEYEVENTF_KEYUP | W32.KEYEVENTF_SILENT, 0);
        }
Пример #7
0
            //private void NsiFromSrv(Stream stmX, Dictionary<string, string> aC, DataSet ds,
            //    ref string sErr, int nRetSrv)
            //{
            //    string sMD5New = aC["MD5"];
            //    string sP = xNSI.sPathNSI + xNSI.DT[sTName].sXML;

            //    DataTable dtAdded = null;
            //    int nAddedCount = 0;

            //    if ((bMD_5 == true) && (sMD5New == sMD5Old))
            //        sErr = "OK-No Load";
            //    else
            //    {
            //        sErr = "Ошибка чтения XML";
            //        string sXMLFile = "";
            //        int nFileSize = ServClass.ReadXMLWrite2File(stmX, ref sXMLFile);
            //        switch (sTName)
            //        {
            //            case NSI.I_TMT:
            //                dtAdded = dt.Clone();
            //                dtAdded.BeginLoadData();

            //                foreach (DataRow dr in dt.Rows)
            //                {
            //                    if ( (System.DBNull.Value != dr["SOURCE"]) &&
            //                         (NSI.DOCSRC_ZVKLOAD == (int)dr["SOURCE"]) )
            //                    {// добавить в буфер для восстановления
            //                        dtAdded.ImportRow(dr);
            //                    }
            //                }
            //                dtAdded.EndLoadData();
            //                nAddedCount = dtAdded.Rows.Count;
            //                break;
            //        }

            //        sErr = "Ошибка загрузки XML";
            //        dt.BeginLoadData();
            //        dt.Clear();
            //        System.Xml.XmlReader xmlRd = System.Xml.XmlReader.Create(sXMLFile);
            //        dt.ReadXml(xmlRd);
            //        xmlRd.Close();
            //        if (nAddedCount > 0)
            //        {
            //            dt.Merge(dtAdded);
            //        }

            //        dt.EndLoadData();

            //        sErr = "Ошибка сохранения XML";
            //        //File.Delete( sP );
            //        //File.Move(sXMLFile, sP);
            //        dt.WriteXml(sP);

            //        xNSI.DT[NSI.BD_TINF].dt.Rows[sTName]["MD5"] = sMD5New;
            //        sErr = "OK";
            //    }
            //}

            private void NsiFromSrv(Stream stmX, Dictionary <string, string> aC, DataSet ds,
                                    ref string sErr, int nRetSrv)
            {
                string sMD5New = aC["MD5"];
                string sP      = xNSI.sPathNSI + xNSI.DT[sTName].sXML;

                //DataTable dtAdded = null;
                //int nAddedCount = 0;

                if ((bMD_5 == true) && (sMD5New == sMD5Old))
                {
                    sErr = "OK-No Load";
                }
                else
                {
                    sErr = "Ошибка чтения XML";
                    string sXMLFile  = "";
                    int    nFileSize = ServClass.ReadXMLWrite2File(stmX, ref sXMLFile);

                    sErr = "Ошибка загрузки XML";
                    dt.BeginLoadData();
                    dt.Clear();
                    System.Xml.XmlReader xmlRd = System.Xml.XmlReader.Create(sXMLFile);
                    dt.ReadXml(xmlRd);
                    xmlRd.Close();
                    //if (nAddedCount > 0)
                    //  dt.Merge(dtAdded);

                    dt.EndLoadData();

                    sErr = "Ошибка сохранения XML";
                    //File.Delete( sP );
                    //File.Move(sXMLFile, sP);
                    dt.WriteXml(sP);

                    if (drMD5 != null)
                    {
                        drMD5["MD5"] = sMD5New;
                    }
                    sErr = "OK";
                }
            }
Пример #8
0
        // обработка функций и клавиш на панели
        private bool AppPars_KeyDown(int nFunc, KeyEventArgs e)
        {
            bool ret = false;
            int  nR;

            if (nFunc > 0)
            {
                if (bEditMode == false)
                {
                }
                if (nFunc == AppC.F_UPLD_DOC)
                {// сохранение параметров
                    nR = AppPars.SavePars(xPars);
                    if (AppC.RC_OK == nR)
                    {
                        ServClass.PlayMelody(W32.MB_2PROBK_QUESTION);
                        MessageBox.Show("Параметры сохранены", "Сохранение");
                    }
                    else
                    {
                        ServClass.PlayMelody(W32.MB_3GONG_EXCLAM);
                        MessageBox.Show("Ошибка сохранения!", "Сохранение");
                    }
                    ret = true;
                }
            }
            else
            {
                if (bEditMode == false)
                {// только в режиме просмотра
                    switch (e.KeyValue)
                    {
                    case W32.VK_ENTER:
                        Control xC = ServClass.GetPageControl(tpParPaths, 1, null);
                        ret = true;
                        break;
                    }
                }
            }
            e.Handled |= ret;
            return(ret);
        }
Пример #9
0
        // обработка функций и клавиш на панели
        private bool Service_KeyDown(int nFunc, KeyEventArgs e)
        {
            bool ret = false;

            if (nFunc > 0)
            {
            }
            else
            {
                switch (e.KeyValue)
                {
                case W32.VK_ENTER:
                    Control xC = ServClass.GetPageControl(tpService, 1, null);
                    if (xC == btQuit)
                    {
                        W32.SimulMouseClick(btQuit.Left + 3, btQuit.Top + 3, this);
                    }
                    ret = true;
                    break;
                }
            }
            e.Handled |= ret;
            return(ret);
        }
Пример #10
0
        // разбор и установка параметров с сервера
        public void SetAvtFields()
        {
            int    i;
            FRACT  f;
            string s;

            Dictionary <string, string> aP = SrvCommParse(xAvt.SrvAns, new char[] { ',' });

            try{ i = int.Parse(aP["IO"]); }
            catch { i = 0; }
            if (i > 0)
            {
                //nDirMove = i;
                //xAvt.DirMove = i;
                //ShowDirection(i);
            }

            s = aP["PTVL"].Trim();
            if (s.Length > 0)
            {
                xAvt.Putev = s;
            }

            try { i = int.Parse(aP["TG"]); }
            catch { i = 0; }
            if (i > 0)
            {
                xAvt.GruzType = i;
            }

            try { i = int.Parse(aP["CEL"]); }
            catch { i = 0; }
            if (i > 0)
            {
                xAvt.Purp = i;
            }

            s = aP["AVT"].Trim();
            if (s.Length > 0)
            {
                xAvt.Avto = s;
            }

            try { f = FRACT.Parse(aP["MASSA"]); }
            catch { f = 0.0M; }
            if (f > 0)
            {
                xAvt.Massa = f;
            }

            try { f = FRACT.Parse(aP["SUMMA"]); }
            catch { f = 0.0M; }
            if (f > 0)
            {
                xAvt.Summa = f;
            }

            try { i = int.Parse(aP["MEST"]); }
            catch { i = 0; }
            if (i > 0)
            {
                xAvt.Mest = i;
            }

            if (xAvt.DirMove == AppC.DIR_OUT)
            {
                try { s = aP["PRPSK"]; }
                catch { s = ""; }

                //if (s.Length > 0)
                //    xAvt.Propusk = s;
            }

            //SrvTime2Str(xAvt.SrvCTM);

            // количество ТТН по базе
            lEBD.Text = "           ЭБД  " + xAvt.KolTTN_EBD.ToString();
            ServClass.RefreshAvtBind(aEdVvod);
            tPropusk.DataBindings[0].ReadValue();
        }
Пример #11
0
        public void BeginEditAvt(Control xFoc, string sInit)
        {
            bool bByScan = (xFoc == null) ? false : true;

            xAvt.ClearAvt(nDirMove, xFoc);
            lbTTN.Items.Clear();
            lTTNF.Text = "ТТН    ФАКТ 0";
            lEBD.Text  = "           ЭБД    0";
            xNSI.DT[NSI.TBD_TTN].dt.Rows.Clear();
            xNSI.DT[NSI.TBD_DOC].dt.Rows.Clear();
            //xAvt.bCanOpen = true;
            //lWrite2Base.Text = "Запись (F2)";
            ShowDirection(xAvt.DirMove);

            if (bByScan == false)
            {// вход по клавише
                // тип груза по умолчанию
                if (xAvt.DirMove == AppC.DIR_IN)
                {
                    xAvt.GruzType = AppC.GRUZ_EMPTY;
                }
                else
                {
                    xAvt.GruzType = AppC.GRUZ_MAIN;
                }
            }
            else
            {// вход по скану
                // тип груза пока неизвестен
                //cbGruzType.SelectedIndex = -1;
                cbPurp.SelectedIndex = -1;
                xAvt.GruzType        = 0;
            }

            TestOpenAvail(xAvt.GruzType, null, "");

/*
 *          tTyag.Text = "";
 *          tPutList.Text = "";
 *          tMassa.Text = "";
 *          tMestProd.Text = "";
 *          tSumma.Text = "";
 *          tTimeIO.Text = "";
 *          tTTN.Text = "";
 */
            lbTTN.Items.Clear();

            bQuitEdPars = false;

            // выход из редактирования - после выполнения команды "Открыть"
            //ServClass.dgVerEd = new VerifyEditFields(VerifyAvt);
            AvtForEdit(xAvt.GruzType, tPutList);

            ServClass.RefreshAvtBind(aEdVvod);
            tPropusk.DataBindings[0].ReadValue();
            SetEditMode(true);

            // какой активный?
            if (xFoc == null)
            {
                xFoc = tPutList;
            }

/*
 *          if (sInit != "")
 *              xFoc.Text = sInit;
 */
            xFoc.Focus();
            xFoc.DataBindings[0].ReadValue();
            if (bByScan == true)
            {
                //ServClass.TryEditNextFiled(xFoc, AppC.CC_NEXT, aEdVvod);
                aEdVvod.TryNext(AppC.CC_NEXT);
            }
        }
Пример #12
0
            // добавить полученный символ
            public int AddNew(byte[] b, int nL, bool b2DFull)
            {
                int nOfs,
                    nRet = AppC.RC_OK;

                xS     = new One2DSym();
                xS.buf = b;
                xS.nL  = nL;

                nOfs = 0;
                // достать служебную инфу из заголовка
                ParseLev(b, ref nOfs, xСDef2D.lDef[0], 0);
                switch (State)
                {
                case READ2D_STATE.R_WAIT_SER:
                    nID_Serial = xS.nID_Serial;
                    if (b2DFull == false)
                    {
                        xS.nMaxSer = 1;
                        xS.nInSer  = 1;
                    }

                    nMaxSer  = xS.nMaxSer;
                    nFileLen = AddFileLen(0);
                    nSaved2D = 1;
                    lSavedNs.Add(xS.nInSer);
                    lSym.Add(xS);
                    xD    = new CurDoc(AppC.F_ADD_REC);
                    State = TestIsSame();
                    switch (State)
                    {
                    case READ2D_STATE.R_SAME_DOC:
                        ServClass.PlayMelody(W32.MB_3GONG_EXCLAM);
                        DialogResult dr = MessageBox.Show("Отменить ввод(Enter)?\r\n(ESC) - переписать",
                                                          "Документ существует!",
                                                          MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
                        if (dr != DialogResult.OK)
                        {
                            bRewrite = true;
                            State    = READ2D_STATE.R_WAIT_NEXT;
                        }
                        break;

                    case READ2D_STATE.R_WAIT_NEXT:
                        break;
                    }
                    break;

                case READ2D_STATE.R_WAIT_NEXT:
                    if (nID_Serial == xS.nID_Serial)
                    {
                        if (!lSavedNs.Contains(xS.nInSer))
                        {
                            nSaved2D++;
                            lSavedNs.Add(xS.nInSer);
                            lSym.Add(xS);
                            nFileLen = AddFileLen(nFileLen);
                        }
                    }
                    break;
                }
                if (State == READ2D_STATE.R_WAIT_NEXT)
                {
                    if ((nSaved2D == nMaxSer) || (b2DFull == false))
                    {
                        State = READ2D_STATE.R_FULL_SER;
                        PrepBinDat(true, b2DFull);
                    }
                }

                return(nRet);
            }
Пример #13
0
        private int GetAvtInf(int nCom)
        {
            int i,
                nRet = AppC.RC_OK;
            string         sErr, sSys = "";
            List <DataRow> aDR = new List <DataRow>();
            DataView       dv  = null;
            LoadFromSrv    dgL = null;

            if (xCUpLoad == null)
            {
                xCUpLoad = new CurUpLoad();
                if (xCLoad != null)
                {
                    xCUpLoad.xLP = xCLoad.xLP;
                }
                xDP = xCUpLoad.xLP;
            }
            xCUpLoad.ilUpLoad.SetAllAvail(true);
            xCUpLoad.ilUpLoad.CurReg = AppC.UPL_ALL;

            switch (nCom)
            {
            case AppC.COM_ZOPEN:
                sErr = "";
                foreach (object s in lbTTN.Items)
                {
                    sErr += (string)s + " ";
                }
                sSys = String.Format("AVT={4},MASSA={0},SUMMA={1},MEST={2},TTN={3}",
                                     xAvt.Massa, xAvt.Summa, xAvt.Mest, sErr, xAvt.Avto);
                dgL = new LoadFromSrv(AvtFromSrv);
                break;

            case AppC.COM_ZPL:
                dgL = new LoadFromSrv(InfoFromPL);
                break;

            case AppC.COM_ZCONTR:
                // по всем невыгруженным документам
                dv = new DataView(xNSI.DT[NSI.TBD_DOC].dt,
                                  String.Format("SOURCE={0}", NSI.DOCSRC_CRTD), "", DataViewRowState.CurrentRows);
                if (dv.Count <= 0)
                {
                    ServClass.ErrorMsg("Нет данных !");
                    return(AppC.RC_OK);
                }
                for (i = 0; i < dv.Count; i++)
                {
                    if (i > 0)
                    {
                        sSys += ",";
                    }
                    sSys += dv[i].Row["IDSER2D"].ToString();
                    aDR.Add(dv[i].Row);
                }
                xCUpLoad.sComPar = sSys;
                dgL = new LoadFromSrv(AvtFromSrv);

                break;
            }

            xFPan.ShowP(6, 60, "Запрос данных", xCUpLoad.ilUpLoad.CurRegName);
            xFPan.UpdateHelp("Обмен с сервером...");

            Cursor crsOld = Cursor.Current;

            Cursor.Current = Cursors.WaitCursor;

            sErr = ExchgSrv(nCom, sSys, "", dgL, null, ref nRet);

            Cursor.Current = crsOld;
            xFPan.HideP();

            if (nRet == AppC.RC_OK)
            {
            }
            else
            {
                MessageBox.Show("Результат - " + sErr, "Код - " + nRet.ToString());
            }


            if (tcMain.SelectedIndex != PG_DIR)
            {
                tcMain.SelectedIndex = PG_DIR;
            }

            switch (nCom)
            {
            case AppC.COM_ZPL:
                break;

            case AppC.COM_ZCONTR:
                for (i = 0; i < dv.Count; i++)
                {
                    //aDR[i]["SOURCE"] = NSI.DOCSRC_UPLD;
                }
                break;
            }



            return(nRet);
        }
Пример #14
0
 private void btMem_Click(object sender, EventArgs e)
 {
     ServClass.MemInfo();
 }
Пример #15
0
 public static void ErrorMsg(string sE, string sH, bool bSound)
 {
     ServClass.PlayMelody(W32.MB_3GONG_EXCLAM);
     MessageBox.Show(sE, sH);
 }