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); }
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); }
// Обработка сканирования на панели Документов //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); }