// ожидание сканирования для спецрежимов private void WaitScan4Func(int nWaitMode, string sMsg, string sHeader, ScanVarGP xSc) { nSpecAdrWait = nWaitMode; tbPanP2G.Visible = false; xFPan.IFaceReset(true); if ((nWaitMode == AppC.F_GENSCAN) || (nWaitMode == AppC.F_SIMSCAN)) { xFPan.InfoHeightUp(true, 2); } xFPan.ShowP(6, 28, sMsg, sHeader); if (nWaitMode == AppC.F_SIMSCAN) { tbPanP1G.Focus(); } ehCurrFunc += new Srv.CurrFuncKeyHandler(Keys4FixAddr); if (xSc != null) { SpecScan(xSc); W32.keybd_event(W32.VK_ENTER, W32.VK_ENTER, 0, 0); W32.keybd_event(W32.VK_ENTER, W32.VK_ENTER, W32.KEYEVENTF_KEYUP, 0); } }
// вход в режим ввода/корректировки параметров public void EditPars(int nReg, DocPars x, CTRL1ST FirstEd, AppC.VerifyEditFields dgVer, EditParsOver dgEnd) { bool bEnField = true; xDP = x; if (x != null) { //bQuitEdPars = false; nCurFunc = nReg; //bWorkWithDocPars = true; //ServClass.dgVerEd = new AppC.VerifyEditFields(dgVer); dgOver = new EditParsOver(dgEnd); SetParFields(xDP); oldKeyH = ehCurrFunc; ehCurrFunc = new Srv.CurrFuncKeyHandler(PPars_KeyDown); //xBCScanner.BarcodeScan -= ehScan; ehParScan = new BarcodeScanner.BarcodeScanEventHandler(OnScanPar); xBCScanner.BarcodeScan += ehParScan; //BeginEditPars(FirstEd, dgVer); aEdVvod = new AppC.EditListC(dgVer); if (nReg == AppC.F_LOAD_DOC) { if (xDP.sBC_Doc.Length > 0) { bEnField = false; } } aEdVvod.AddC(tKT_p, bEnField); aEdVvod.AddC(tNom_p, bEnField); aEdVvod.AddC(tBCDoc); if (FirstEd == CTRL1ST.START_EMPTY) { aEdVvod.SetCur(0); } else { aEdVvod.SetCur(tBCDoc); } SetEditMode(true); } }
// обработка функций и клавиш на панели private bool PPars_KeyDown(object nF, KeyEventArgs e, ref Srv.CurrFuncKeyHandler kh) { int nFunc = (int)nF; bool ret = true; if (nFunc > 0) { ret = false; } else { switch (e.KeyValue) { case W32.VK_ESC: EndEditPars(e.KeyValue); break; case W32.VK_UP: case W32.VK_DOWN: aEdVvod.TryNext((e.KeyValue == W32.VK_UP) ? AppC.CC_PREV : AppC.CC_NEXT); break; case W32.VK_ENTER: bSkipChar = true; if (aEdVvod.TryNext(AppC.CC_NEXTOVER) == AppC.RC_CANCELB) { //if (bQuitEdPars == true) EndEditPars(e.KeyValue); } break; case W32.VK_TAB: aEdVvod.TryNext((e.Shift) ? AppC.CC_PREV : AppC.CC_NEXT); ret = false; break; default: ret = false; break; } } e.Handled |= ret; return(ret); }
// вход в режим ввода/корректировки параметров public void EditPars(int nReg, DocPars x, CTRL1ST FirstEd, AppC.VerifyEditFields dgVer, EditParsOver dgEnd) { xDP = x; if (x != null) { //bQuitEdPars = false; nCurFunc = nReg; bWorkWithDocPars = true; //ServClass.dgVerEd = new AppC.VerifyEditFields(dgVer); dgOver = new EditParsOver(dgEnd); SetParFields(xDP); oldKeyH = ehCurrFunc; ehCurrFunc = new Srv.CurrFuncKeyHandler(PPars_KeyDown); ehParScan = new BarcodeScanner.BarcodeScanEventHandler(OnScanPar); xBCScanner.BarcodeScan -= ehScan; xBCScanner.BarcodeScan += ehParScan; BeginEditPars(FirstEd, dgVer); } }
/// подготовить и отобразить содержимое 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; } }