// обработка выполненного сканирования private void OnScan(object sender, BarcodeScannerEventArgs e) { if (e.nID != BCId.NoData) { PSC_Types.ScDat sc = new PSC_Types.ScDat(e); if (bGoodAvtor == false) {// попытка авторизации через штрихкод if ((e.nID == BCId.Code128) && (e.Data.Length == 10) && (e.Data.Substring(0, 2) == "99") && (e.Data.Substring(2, 2) == "10")) { fAv.SetUserID(e.Data.Substring(4, 6)); } } else { if (e.nID == BCId.Code128) { ProceedScan128(e); } if (e.nID == BCId.DataMatrix) { //if (tcMain.SelectedIndex != PG_DOC) // tcMain.SelectedIndex = PG_DOC; if (Read2D(e) == AppC.RC_OK) { NewTTNScanned(sLastDoc, 2); } } } } }
//private string SP_GLN = "4810268"; private void OnScanPL(object sender, BarcodeScannerEventArgs e) { if (e.nID != BCId.NoData) { xScan = new ScanVarRM(e, xNSI.DT["NS_AI"].dt); //if ((xScan.bcFlags == ScanVarGP.BCTyp.SP_SSCC_EXT) || // (xScan.bcFlags == ScanVarGP.BCTyp.SP_SSCC_INT)) if ((xScan.bcFlags & ScanVarRM.BCTyp.SP_SSCC) > 0) { tSSCC.Text = xScan.Dat; if (bDocIsKMPL) { // для комплектации if (xMF.StoreSSCC(xScan, nNomPodd, false, out dv) == AppC.RC_OKB) { // предложенный SSCC может быть проставлен bMaySetSSCC = true; } else { bMaySetSSCC = false; } } else {// для всего остального tSSCC.Text = xScan.Dat; } } } }
protected virtual void OnBarcodeScan(BarcodeScannerEventArgs e) { if (BarcodeScan != null) { BarcodeScan(this, e); } }
/// <summary> /// 内部公开方法 /// </summary> /// <param name="e"></param> protected virtual void OnCodeFound(BarcodeScannerEventArgs e) { if (CodeFound != null) { CodeFound(this, e); } }
private void OnScanPar(object sender, BarcodeScannerEventArgs e) { if ((e.nID != BCId.NoData) && (bEditMode == true)) { if ((e.nID == BCId.Code128) && (e.Data.Length == 14)) {// Путевой лист или ТТН //if (tNom_p.Enabled) // tNom_p.Text = e.Data.Substring(7); } } }
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 void ScanMessage(object sender) { int nR, nMaxLen; // Maximum length of a 1-D Barcode string sSymID, sBarCode = string.Empty; Scanner.CODE_ID scID; BCId nCodeID = BCId.NoData; BarcodeScannerEventArgs ba; try { //--- Was the Decode Attempt Successful? --- if (HX2Scan.GetStatus() == ManagedLXEAPI.Scanner.SCAN_COMPLETE) { nMaxLen = 128; sBarCode = HX2Scan.GetData(ref nMaxLen); //nR = HX2Scan.PutData(sBarCode, nMaxLen); //scID = HX2Scan.GetCodeID(); if (nMaxLen > 1) { if (Char.IsLetter(sBarCode, 0)) { sSymID = sBarCode.Substring(0, 1); sBarCode = sBarCode.Substring(1); nCodeID = SetBarcodeType(sSymID); } else { nCodeID = (nMaxLen > 13) ? BCId.Code128 : BCId.EAN13; } ba = new BarcodeScannerEventArgs(nCodeID, sBarCode); OnBarcodeScan(ba); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } return; }
//Обработка сканирования Code128 private void ProceedScan128(BarcodeScannerEventArgs e) { string sNomDoc; if (e.Data.Length == 14) {// Путевой лист или ТТН sNomDoc = e.Data.Substring(7); if (bEditMode == false) {// ввод обычно с путевого if (tcMain.SelectedIndex != PG_DIR) { tcMain.SelectedIndex = PG_DIR; } xAvt.Putev = sNomDoc; BeginEditAvt(tPutList, sNomDoc); } else {// поля уже редактируются if (tPutList.Focused == true) { if (tcMain.SelectedIndex != PG_DIR) { tcMain.SelectedIndex = PG_DIR; } xAvt.Putev = sNomDoc; tPutList.DataBindings[0].ReadValue(); //ServClass.TryEditNextFiled(tPutList, AppC.CC_NEXT, aEdVvod); aEdVvod.TryNext(AppC.CC_NEXT); } else { NewTTNScanned(sNomDoc, 1); } } } else if (e.Data.Length == 12) {// Возможно, Пропуск if (e.Data.Substring(0, 3) == "778") { //tPropusk.Text = e.Data.Substring(3); tPropusk.Text = e.Data.Substring(3); } } }
void xEng_DecodeEvent(object sender, DecodeBase.DecodeEventArgs e) { BCId nCodeID = BCId.NoData; string sBarCode = string.Empty; BarcodeScannerEventArgs ba; // Obtain the string and code id. try { if ((e.DecodeResults.nLength > 0) && (e.DecodeResults.rResult == Result.RESULT_SUCCESS)) { //switch (e.DecodeResults.chCodeID) //{ // case "d": // case "D": // nCodeID = BCId.EAN13; // break; // case "e": // nCodeID = BCId.Interleaved25; // break; // case "I": // case "j": // nCodeID = BCId.Code128; // break; // case "w": // nCodeID = BCId.DataMatrix; // break; // default: // break; //} nCodeID = SetBarcodeType(e.DecodeResults.chCodeID); sBarCode = e.DecodeResults.pchMessage; } } catch (Exception) { //MessageBox.Show("Error reading string!"); } ba = new BarcodeScannerEventArgs(nCodeID, e.DecodeResults.pchMessage, e.DecodeResults.binaryData, e.DecodeResults.nLength); OnBarcodeScan(ba); return; }
/// <summary> /// Event that fires when a Symbol scanner has performed a scan. /// </summary> private void symbolReader_ReadNotify(object sender,EventArgs e) { ReaderData readerData = symbolReader.GetNextReaderData(); // If it is a successful scan (as opposed to a failed one) if (readerData.Result == Results.SUCCESS) { BCId nType = BCId.NoData; // Преобразовать Symbol-тип штрихкода к моему switch (readerData.Type) { case DecoderTypes.EAN128: case DecoderTypes.CODE128: nType = BCId.Code128; break; case DecoderTypes.EAN13: nType = BCId.EAN13; break; case DecoderTypes.EAN8: nType = BCId.EAN8; break; case DecoderTypes.I2OF5: case DecoderTypes.D2OF5: case DecoderTypes.IATA2OF5: case DecoderTypes.CHINESE_2OF5: nType = BCId.Interleaved25; break; case DecoderTypes.IMAGE: nType = BCId.Image; break; case DecoderTypes.CODE11: nType = BCId.Code11; break; case DecoderTypes.CODE39: nType = BCId.Code39; break; case DecoderTypes.RSS14: case DecoderTypes.RSSEXP: case DecoderTypes.RSSLIM: nType = BCId.GS1DataBar; break; default: nType = BCId.Unknown; break; } // Raise scan event to caller (with data) BarcodeScannerEventArgs xBCA = new BarcodeScannerEventArgs(nType,readerData.Text); OnBarcodeScan(xBCA); // Start the next scan Start(); } }
// обработка выполненного сканирования private void OnScan(object sender, BarcodeScannerEventArgs e) { bool bRet = true, bDupScan; int t1, t2, nRet = AppC.RC_CANCEL; string sP, sP1, sErr = ""; // началась обработка сканирования bInScanProceed = true; if (e.nID != BCId.NoData) { try { PSC_Types.ScDat sc = new PSC_Types.ScDat(e); xScan = new ScanVarGP(e, xNSI.DT["NS_AI"].dt); bDupScan = ((xScanPrev != null) && (xScanPrev.Dat == xScan.Dat)) ? true : false; sc.sN = e.Data + "-???"; #region Обработка скана do { if (xScan.Dat.StartsWith("91E")) {// адрес ID-точки MainCycleStart(xScan.Dat.Substring(4), true); break; } if (sDevID.Length == 0) { Srv.ErrorMsg("Введите или\nотсканируйте № точки!", "Ошибка", true); break; } xMark.NumberOfScans++; xMark.SrcInfo = NSI.SRCDET.SCAN; //if (((xScan.bcFlags & ScanVarGP.BCTyp.SP_SSCC_EXT) == ScanVarGP.BCTyp.SP_SSCC_EXT) || // ((xScan.bcFlags & ScanVarGP.BCTyp.SP_SSCC_PRT) == ScanVarGP.BCTyp.SP_SSCC_PRT) || // ((xScan.bcFlags & ScanVarGP.BCTyp.SP_SSCC_INT) == ScanVarGP.BCTyp.SP_SSCC_INT)) if (((xScan.bcFlags & ScanVarGP.BCTyp.SP_SSCC) > 0) || ((xScan.bcFlags & ScanVarGP.BCTyp.SP_SSCC_PRT) > 0)) { int nRetSSCC = ProceedSSCC(xScan, ref sc, aEd.Current); if (nRetSSCC == AppC.RC_QUIT) {// SSCC привязан, новый поддон xScan = null; break; } if (nRetSSCC != AppC.RC_HALFOK) {// не было удачной трансляции SSCC xScan = null; break; } // далее будет вывод удачной трансляции SSCC if ((xScan.bcFlags & ScanVarGP.BCTyp.SP_SSCC_PRT) > 0) { // SSCC для ящиков bRet = (ProceedProd(xScan, ref sc, bDupScan, false) == AppC.RC_OK) ? true : false; } } else {// должна быть продукция if (((xScan.bcFlags & ScanVarGP.BCTyp.SP_OLD_ETIK) == ScanVarGP.BCTyp.SP_OLD_ETIK) || (xScan.Id != BCId.Code128)) {// старая этикетка или EAN13 bRet = xMF.TranslSCode(ref sc, ref sErr); if ((sc.ci == BCId.EAN13) || (sc.ci == BCId.Interleaved25) || ((sc.s.Length >= 13) && (sc.s.Length <= 14))) { sc.tTyp = AppC.TYP_TARA.TARA_POTREB; } } else {// новая этикетка if (((xScan.bcFlags & ScanVarGP.BCTyp.SP_MT_PRDV) == ScanVarGP.BCTyp.SP_MT_PRDV)) { bRet = xMF.TranslMT(ref sc); } else if (((xScan.bcFlags & ScanVarGP.BCTyp.SP_MT_PRDVN) == ScanVarGP.BCTyp.SP_MT_PRDVN)) { bRet = xMF.TranslMTNew(ref sc); } else { // разбор этикетки стандартным способом по AI t1 = Environment.TickCount; bRet = xMF.NewTranslSCode(ref sc, xScan); t2 = Environment.TickCount; sP = Srv.TimeDiff(t1, t2, 3); } } if (bRet) { t1 = Environment.TickCount; // возможно, контрольное сканирование if ((xMark.ScanFirst.ci != BCId.Unknown) && (xMark.ScanFirst.s is string)) { if (xMark.ScanFirst.sEAN == sc.sEAN) { break; } // не совпали коды Srv.ErrorMsg(xMark.ScanFirst.sEAN + "\n" + sc.sEAN, "Разные EAN!", true); } bRet = (ProceedProd(xScan, ref sc, bDupScan, false) == AppC.RC_OK) ? true : false; t2 = Environment.TickCount; sP1 = Srv.TimeDiff(t1, t2, 3); } //aEd.SetCur( (sc.tTyp == AppC.TYP_TARA.TARA_PODDON) ? tSSCC : tMest ); //tMest.Enabled = true; } if (!bRet) { throw new Exception("Ошибка сканирования!"); } //aEd.SetCur((sc.tTyp == AppC.TYP_TARA.TARA_PODDON) ? tSSCC : tMest); aEd.SetCur(tSSCC); tMest.Enabled = true; tKrKMC.Enabled = false; if (xMark.ScanFirst.bVes) { tVes.Visible = true; tVsego.Enabled = true; } if (xMark.ScanFirst.tTyp != AppC.TYP_TARA.TARA_PODDON) { if (xMark.ScanFirst.bVes) { tVes.Enabled = true; } if (xMark.ScanFirst.tTyp == AppC.TYP_TARA.TARA_POTREB) { tParty.Enabled = tDTV.Enabled = true; aEd.SetCur(tParty); } } SetDetFields(ref xMark.ScanFirst, false); if (enWrapMode.CurMode == AppC.WRAP_MODES.WRP_BY_NSI) { chWrapp.Checked = WrappSet(xNSI.DT[NSI.NS_MC].dt, xMark.ScanFirst, 0); } xScanPrev = xScan; } while (false); #endregion } catch (Exception ex) { string sE = String.Format("{0}({1}){2}", xScan.Id.ToString(), xScan.Dat.Length, xScan.Dat); Srv.ErrorMsg(sE + "\n" + ex.Message, "Ошибка сканирования", true); } } // обработка сканирования окончена bInScanProceed = false; }
private void OnScanPL(object sender, BarcodeScannerEventArgs e) { string s; ScanVarGP xScan; if (e.nID != BCId.NoData) { xScan = new ScanVarGP(e, xNSI.DT["NS_AI"].dt); if (e.nID == BCId.Code128) { if (((xScan.bcFlags & ScanVarGP.BCTyp.SP_ADR_OBJ) > 0)) {// похоже на адрес (№ шлюза) s = e.Data.Substring(2); xPark.ShlAdr = s; xPark.xA = new MainF.AddrInfo(xScan, xMainF.xSm.nSklad); tShlAddr.Text = s; lShlName.Text = xPark.xA.AddrShow; TryFixAvto(); } else { switch (e.Data.Length) { case 14: // похоже на № путевого tNDoc.Text = e.Data.Substring(7); xPark.NPtvList = int.Parse(tNDoc.Text); if ((bEditMode == true) && (xPark.NShl > 0)) { EndEditP(); if ((bsSh.Count == 0) || (xPark.IsChangePars())) { LoadAvtoList(); } } break; case 12: if (e.Data.Substring(0, 3) == "778") { // похоже на № пропуска xPark.Propusk = e.Data.Substring(3); tPropusk.Text = e.Data.Substring(3); TryFixAvto(); } //else if (e.Data.Substring(0, 2) == "99") //{// похоже на адрес (№ шлюза) // s = e.Data.Substring(2); // xPark.ShlAdr = s; // tShlAddr.Text = s; // TryFixAvto(); //} break; } } } } }
void xEng_DecodeEvent(object sender, DecodeAssembly.DecodeEventArgs e) { BCId nCodeID = BCId.NoData; string sBarCode = string.Empty; BarcodeScannerEventArgs ba; try { RightLEDOff(); //--- Was the Decode Attempt Successful? --- if (e.ResultCode == DecodeAssembly.ResultCodes.Success) { xEng.Device.SetLEDs(Device.LedSelect.RightGreen, Device.LedState.On, 0, 0); //sBarCode = e.CodeId; //switch (sBarCode) //{ // case "d": // case "D": // nCodeID = BCId.EAN13; // break; // case "j": // nCodeID = BCId.Code128; // break; // case "w": // nCodeID = BCId.DataMatrix; // break; // default: // break; //} nCodeID = base.SetBarcodeType(e.CodeId); sBarCode = e.Message; //--- Play an SDK Provided Audible Sound --- xEng.Sound.Play(Sound.SoundTypes.Success); } else { if (e.DecodeException != null) { //--- Async Decode Exception --- switch (e.DecodeException.ResultCode) { case DecodeAssembly.ResultCodes.Cancel: // Async Decode was Canceled return; case DecodeAssembly.ResultCodes.NoDecode: // Scan Timeout //MessageBox.Show("Scan Timeout Exceeded"); break; default: //MessageBox.Show(e.DecodeException.Message); break; } } else { //--- Generic Async Exception --- //MessageBox.Show(e.Exception.Message); } //xEng.Sound.Play(Sound.SoundTypes.Failure); } } catch (Exception ex) { //MessageBox.Show(ex.Message); } ba = new BarcodeScannerEventArgs(nCodeID, sBarCode, e.RawData, e.Length); OnBarcodeScan(ba); return; }
private void OnScanPL(object sender, BarcodeScannerEventArgs e) { if (e.nID != BCId.NoData) { } }
private void OnScanBage(object sender, BarcodeScannerEventArgs e) { bool bGoodPass; int i, nSklad, nTab = 0; string sSklad, sLogin, sP; bScanProceed = true; if (e.nID == BCId.Code128) { if ((e.Data.Length == 10) && (e.Data.Substring(0, 3) == "777")) {// бэджик ОАО Савушкин try { nTab = int.Parse(e.Data.Substring(3)); if (nTab > 0) { if (nCurReg != AppC.AVT_TOUT) { DataView dv = new DataView(xNSI.DT[NSI.NS_USER].dt, String.Format("TABN='{0}'", nTab), "", DataViewRowState.CurrentRows); if (dv.Count > 0) { sP = (string)dv[0].Row["PP"]; if (ValidUserPass((string)dv[0].Row["KP"], (string)dv[0].Row["PP"], (string)dv[0].Row["TABN"], (string)dv[0].Row["NMP"])) { bUserChanged = false; aEd.SetAvail(tPass, false); tPass.Text = sP; aEd.SetAvail(tUser, false); tUser.Text = xSm.sUName; aEd.SetCur(tDefKSKL); } else { bUserChanged = true; aEd.SetAvail(tPass, true); tPass.Text = ""; aEd.SetAvail(tUser, true); tUser.Text = ""; aEd.SetCur(tUser); } } } else { if (nTab.ToString() == xSm.sUserTabNom) { EndEditAvt(true); } else { Srv.ErrorMsg("Другой пользователь!", true); } } } } catch { nTab = 0; } } else if (e.Data.IndexOf('#') >= 0) {// возможно, Русское море try { int nPassStart = e.Data.IndexOf('#'); sLogin = e.Data.Substring(0, nPassStart); sP = e.Data.Substring(nPassStart + 1); if (sLogin.Length > 0) { if (nCurReg != AppC.AVT_TOUT) { DataView dv = new DataView(xNSI.DT[NSI.NS_USER].dt, String.Format("KP='{0}'", sLogin), "", DataViewRowState.CurrentRows); if (dv.Count > 0) { //sP = (string)dv[0].Row["PP"]; if ((sP == (string)dv[0].Row["PP"]) || (sP == (string)dv[0].Row["TABN"])) { bGoodPass = ValidUserPass(sLogin, (string)dv[0].Row["PP"], (string)dv[0].Row["TABN"], (string)dv[0].Row["NMP"]); } else { bGoodPass = false; } if (bGoodPass) { bUserChanged = false; aEd.SetAvail(tPass, false); tPass.Text = sP; aEd.SetAvail(tUser, false); tUser.Text = xSm.sUName; nSklad = (dv[0].Row["KSK"] == System.DBNull.Value)?0:(int)(dv[0].Row["KSK"]); if (nSklad > 0) { tDefKSKL.Text = nSklad.ToString(); tDefKSKL_Validating(tDefKSKL, new CancelEventArgs()); //tDefKSKL.DataBindings[0].WriteValue(); //tDefNameSkl.Text = ""; //xSm.nSklad = nSklad; //aEd.SetAvail(tDefKSKL, false); aEd.SetCur(tDefDateDoc); } else { aEd.SetAvail(tDefKSKL, true); aEd.SetCur(tDefKSKL); } } else { bUserChanged = true; aEd.SetAvail(tPass, true); tPass.Text = ""; aEd.SetAvail(tUser, true); tUser.Text = ""; aEd.SetCur(tUser); } } } else { if (sLogin == xSm.sUser) { EndEditAvt(true); } else { Srv.ErrorMsg("Другой пользователь!", true); } } } } catch { nTab = 0; } } } bScanProceed = false; }
void xEng_DecodeEvent(object sender, DecodeBase.DecodeEventArgs e) { BCId nCodeID = BCId.NoData; string sBarCode = string.Empty; BarcodeScannerEventArgs ba; try { //RightLEDOff(); //--- Was the Decode Attempt Successful? --- if (e.DecodeResults.rResult == Result.RESULT_SUCCESS) { //xEng.Device.SetLEDs(Device.LedSelect.RightGreen, Device.LedState.On, 0, 0); //sBarCode = e.DecodeResults.chCodeID; //switch (sBarCode) //{ // case "d": // case "D": // nCodeID = BCId.EAN13; // break; // case "j": // nCodeID = BCId.Code128; // break; // case "w": // nCodeID = BCId.DataMatrix; // break; // default: // break; //} nCodeID = base.SetBarcodeType(e.DecodeResults.chCodeID); sBarCode = e.DecodeResults.pchMessage; //--- Play an SDK Provided Audible Sound --- //xEng.so..Sound.Play(Sound.SoundTypes.Success); ba = new BarcodeScannerEventArgs(nCodeID, sBarCode, e.DecodeResults.binaryData, e.DecodeResults.binaryData.Length); OnBarcodeScan(ba); } else { //--- Async Decode Exception --- switch (e.DecodeResults.rResult) { case Result.RESULT_ERR_CANCEL: // Async Decode was Canceled return; case Result.RESULT_ERR_NODECODE: // Scan Timeout //MessageBox.Show("Scan Timeout Exceeded"); break; default: //MessageBox.Show(e.DecodeException.Message); break; } //if (e.DecodeResults.rResult..DecodeException != null) //{ //} //else //{ // //--- Generic Async Exception --- // //MessageBox.Show(e.Exception.Message); //} //xEng.Sound.Play(Sound.SoundTypes.Failure); } } catch (Exception ex) { //MessageBox.Show(ex.Message); } return; }
private void OnScanBage(object sender, BarcodeScannerEventArgs e) { int nTab = 0; string sP; bScanProceed = true; if ((e.nID == BCId.Code128) && (e.Data.Length == 10)) { if (e.Data.Substring(0, 3) == "777") { try { nTab = int.Parse(e.Data.Substring(3)); if (nTab > 0) { if (nCurReg != AppC.AVT_TOUT) { DataView dv = new DataView(xNSI.DT[NSI.NS_USER].dt, String.Format("TABN='{0}'", nTab), "", DataViewRowState.CurrentRows); if (dv.Count > 0) { sP = (string)dv[0].Row["PP"]; if (ValidUserPass((string)dv[0].Row["KP"], (string)dv[0].Row["PP"], (string)dv[0].Row["TABN"], (string)dv[0].Row["NMP"])) { bUserChanged = false; aEd.SetAvail(tPass, false); tPass.Text = sP; aEd.SetAvail(tUser, false); tUser.Text = xSm.sUName; aEd.SetCur(tDefKSKL); } else { bUserChanged = true; aEd.SetAvail(tPass, true); tPass.Text = ""; aEd.SetAvail(tUser, true); tUser.Text = ""; aEd.SetCur(tUser); } } } else { if (nTab.ToString() == xSm.sUserTabNom) { EndEditAvt(true); } else { Srv.ErrorMsg("Другой пользователь!", true); } } } } catch { nTab = 0; } } } bScanProceed = false; }