// изменение типа, вывод нименования private void tKT_p_TextChanged(object sender, EventArgs e) { if (bWorkWithDocPars == true) {// при просмотре не проверяется int nTD = AppC.EMPTY_INT; string s = ""; try { nTD = int.Parse(tKT_p.Text); s = DocPars.TypDName(nTD); } catch { s = ""; } if (s.Length == 0) { xDP.nTypD = AppC.EMPTY_INT; s = "<Неизвестный>"; } else { xDP.nTypD = nTD; } tNT_p.Text = s; } }
// вход в режим ввода/корректировки параметров 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 void tKPol_p_Validating(object sender, CancelEventArgs e) { NSI.RezSrch zS; string sT = ((TextBox)sender).Text.Trim(), sN = ""; if (sT.Length > 0) { try { int nK = int.Parse(sT); if (xDP.nTypD == AppC.TYPD_OPR) { sN = DocPars.OPRName(ref nK); xDP.TypOper = nK; } else if (xDP.TypOper != AppC.TYPOP_KMPL) { zS = xNSI.GetNameSPR((xDP.nTypD == AppC.TYPD_VPER) ? NSI.NS_SKLAD : NSI.NS_PP, new object[] { nK }, "NAME"); sN = zS.sName; } else { } tNPol_p.Text = sN; tKPol_p.Text = sT; xDP.nPol = nK; xDP.sPol = sN; } catch { e.Cancel = true; } } else { xDP.nPol = AppC.EMPTY_INT; xDP.sPol = ""; } //if (e.Cancel != true) // e.Cancel = !ServClass.TryEditNextFiled((Control)sender, nCurEditCommand, aEdVvod); }
// вход в режим ввода/корректировки параметров 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); } }
private byte[] SetCommand2Srv(string nComCode, string sP, string sMD5) { string //sCom = "COM=" + nComCode, sCom = String.Format("COM={0};KSK={1}", nComCode, xMF.xSm.nSklad), sUserCode = ";KP=" + xMF.xSm.sUser, sR = ",", sRet = "", sPar = ";"; DocPars xP = xMF.xCDoc.xDocP; //if (sP.Length > 0) // sPar = ";PAR=" + sP + ";"; if (FullCOM2Srv.Length > 0) { return(Encoding.UTF8.GetBytes(FullCOM2Srv + Encoding.UTF8.GetString(AppC.baTermCom, 0, AppC.baTermCom.Length))); } switch (nComCode) { case AppC.COM_ZSPR: //sPar = ";PAR=" + sP + ";" + sMD5; sPar = String.Format(";PAR=(KSK={0},BLANK={1});", xP.nSklad, sP) + sMD5; break; case AppC.COM_UNLDZKZ: case AppC.COM_VKMPL: sRet = "NUCH=" + xMF.xCDoc.sLstUchNoms.Replace(',', '/'); sRet = "PAR=(" + sRet + ")"; sPar = ";" + sRet + ";"; break; case AppC.COM_PRNDOC: //sPar = ";PRN=" + sP + ";"; sPar = String.Format(";PRN={0};{1}", sP, sMD5); //if (sMD5.Length > 0) // sPar += sMD5 + ";"; break; case AppC.COM_GENFUNC: case AppC.COM_PRNBLK: sPar = String.Format(";{0};", sP); break; case AppC.COM_UNKBC: sPar = String.Format(";{0};", sP); break; case AppC.COM_VINV: case AppC.COM_VTTN: case AppC.COM_VVPER: case AppC.COM_VOPR: case AppC.COM_VMRK: case AppC.COM_GETPRN: case AppC.COM_CHKSCAN: case AppC.COM_CKCELL: break; case AppC.COM_ZKMPLST: case AppC.COM_ZKMPD: case AppC.COM_ZZVK: case AppC.COM_ZSC2LST: xP = (xMF.xCLoad.ilLoad.CurReg == AppC.UPL_CUR) ? xMF.xCDoc.xDocP : xMF.xCLoad.xLP; sRet = "KSK=" + xP.nSklad.ToString(); sRet += sR + "DT=" + xP.dDatDoc.ToString("yyyyMMdd"); if (nComCode == AppC.COM_ZZVK) { if ((xP.nUch != AppC.EMPTY_INT) && (xP.nUch > 0)) { sRet += sR + "NUCH=" + xP.nUch.ToString(); } sRet += sR + "TD=" + xP.nTypD.ToString(); if (xP.sSmena != "") { sRet += sR + "KSMEN=" + xP.sSmena; } if ((xP.nEks != AppC.EMPTY_INT) && (xP.nEks > 0)) { sRet += sR + "KEKS=" + xP.nEks.ToString(); } if ((xP.nPol != AppC.EMPTY_INT) && (xP.nPol > 0)) { sRet += sR + "KPP=" + xP.nPol.ToString(); } if (xP.sNomDoc != "") { sRet += sR + "ND=" + xP.sNomDoc; } } if (nComCode == AppC.COM_ZKMPLST) { sRet += sR + "TYPOP=" + ((xMF.xCLoad.nCommand == AppC.F_LOADKPL) ? "KMPL" : "OTGR"); } if (nComCode == AppC.COM_ZKMPD) { if (xMF.xCLoad.sSSCC != "") { sRet += sR + "SSCC=" + xMF.xCLoad.sSSCC; } else { if (xP.lSysN != 0) { sRet += sR + "SYSN=" + xP.lSysN.ToString(); } if (xMF.xSm.LstUchKompl.Length > 0) { string sx = xMF.xSm.LstUchKompl.Replace(',', '/'); sRet += sR + "NUCH=" + sx; } if ((xP.nEks != AppC.EMPTY_INT) && (xP.nEks > 0)) { sRet += sR + "KEKS=" + xP.nEks.ToString(); } if ((xP.nPol != AppC.EMPTY_INT) && (xP.nPol > 0)) { sRet += sR + "KPP=" + xP.nPol.ToString(); } sRet += sR + "KSMEN=" + xP.sSmena; if (xP.sNomDoc != "") { sRet += sR + "ND=" + xP.sNomDoc; } } } if (nComCode == AppC.COM_ZSC2LST) { if (xMF.xCLoad.sSSCC != "") { sRet += sR + "SSCC=" + xMF.xCLoad.sSSCC; } } if (xMF.xCLoad.ilLoad.CurReg == AppC.UPL_CUR) { sRet += sR + "CD=1"; } xMF.xCLoad.sFilt = sRet; sRet = "PAR=(" + sRet + ")"; sPar = ";" + sRet + ";"; break; case AppC.COM_VOTG: case AppC.COM_ZOTG: case AppC.COM_ZPRP: case AppC.COM_CCELL: case AppC.COM_CELLI: case AppC.COM_KMCI: case AppC.COM_A4MOVE: case AppC.COM_ADR2CNT: sPar = ";PAR=" + sP + ";"; break; case AppC.COM_LOGON: sUserCode = ";KP=" + sMD5; sPar = ";PAR=" + sP + ";"; break; default: //sCom = "ERR"; //throw new SystemException("Неизвестная команда"); break; } sCom += ";MAC=" + xMF.xSm.MACAdr + sUserCode + sPar + Encoding.UTF8.GetString(AppC.baTermCom, 0, AppC.baTermCom.Length); byte[] baCom = Encoding.UTF8.GetBytes(sCom); return(baCom); }
// сброс/установка полей ввода/вывода private void SetParFields(DocPars xDP) { int n = xDP.nNumTypD; tNT_p.Text = TName(xDP.nNumTypD); if (tNT_p.Text.Length == 0) { tNT_p.Text = "<Неизвестный>"; tKT_p.Text = ""; xDP.nNumTypD = AppC.EMPTY_INT; } else { tKT_p.Text = xDP.nNumTypD.ToString(); } //xDP.sTypD = tNT_p.Text; tNom_p.Text = xDP.sNomDoc; tBCDoc.Text = xDP.sBC_Doc; tBCML.Text = xDP.sBC_ML; tDateD_p.Text = DateTime.Now.ToString("dd.MM.yy"); if (xDP.dDatDoc != DateTime.MinValue) { tDateD_p.Text = xDP.dDatDoc.ToString("dd.MM.yy"); } tKSkl_p.Text = ""; tNSkl_p.Text = ""; if (xDP.nSklad != AppC.EMPTY_INT) { tKSkl_p.Text = xDP.nSklad.ToString(); NSI.RezSrch zS = xNSI.GetNameSPR(NSI.NS_SKLAD, new object[] { xDP.nSklad }, "NAME"); if (zS.bFind == true) { tNSkl_p.Text = zS.sName; xDP.sSklad = zS.sName; } } //tKUch_p.Text = ""; //if ((xDP.nUch != AppC.EMPTY_INT) && (xDP.nUch != 0)) //{ // tKUch_p.Text = xDP.nUch.ToString(); //} //tSm_p.Text = xDP.sSmena; //tKEks_p.Text = ""; //tNEks_p.Text = ""; //if (xDP.nEks != AppC.EMPTY_INT) //{ // tKEks_p.Text = xDP.nEks.ToString(); // NSI.RezSrch zS = xNSI.GetNameSPR(NSI.NS_EKS, new object[] { xDP.nEks }, "FIO"); // if (zS.bFind == true) // { // tNEks_p.Text = zS.sName; // xDP.sEks = zS.sName; // } //} //else // xDP.sEks = ""; //tKPol_p.Text = ""; //tNPol_p.Text = ""; //if (xDP.nPol != AppC.EMPTY_INT) //{ // tKPol_p.Text = xDP.nPol.ToString(); // if (xDP.nTypD == AppC.TYPD_RASHNKLD) // { // sIS = DocPars.OPRName(ref xDP.nPol); // } // else // { // NSI.RezSrch zS = xNSI.GetNameSPR((xDP.nTypD == AppC.TYPD_PERMGP ) ? // NSI.NS_SKLAD : NSI.NS_PP, new object[] { xDP.nPol }, "NAME"); // sIS = zS.sName; // } // tNPol_p.Text = sIS; // xDP.sPol = sIS; //} //else // xDP.sPol = ""; }
private byte[] SetCommand2Srv(string nComCode, string sP, string sMD5) { string sCom = "COM=" + nComCode, sUserCode = ";KP=" + xMF.xSm.sUserTabNom, sCurDoc = "", sR = ",", sRet = "", sPar = ";"; DocPars xP = xMF.xCDoc.xDocP; if (FullCOM2Srv.Length > 0) { return(Encoding.UTF8.GetBytes(FullCOM2Srv + Encoding.UTF8.GetString(AppC.baTermCom, 0, AppC.baTermCom.Length))); } switch (nComCode) { case AppC.COM_VTTN: case AppC.COM_VVPER: nComCode = AppC.COM_VDOC; if (xMF.xCUpLoad.ilUpLoad.CurReg == AppC.UPL_CUR) { sCurDoc = ",CD=1"; xP = xMF.xCDoc.xDocP; } else { xP = xMF.xCUpLoad.xLP; } break; } switch (nComCode) { case AppC.COM_GETPRN: case AppC.COM_CHKSCAN: case AppC.COM_VOPR: break; case AppC.COM_ZSPR: sPar = ";PAR=" + sP + ";" + sMD5; break; case AppC.COM_VDOC: case AppC.COM_ZDOC: if (nComCode == AppC.COM_ZDOC) { if (xMF.xCLoad.ilLoad.CurReg == AppC.UPL_CUR) { sCurDoc = ",CD=1"; xP = xMF.xCDoc.xDocP; } else { xP = xMF.xCLoad.xLP; } } sRet = "TD=" + xP.nNumTypD.ToString(); sRet += sR + "KSK=" + xP.nSklad.ToString(); if (xP.dDatDoc != DateTime.MinValue) { sRet += sR + "DT=" + xP.dDatDoc.ToString("yyyyMMdd"); } if ((xP.nUch != AppC.EMPTY_INT) && (xP.nUch > 0)) { sRet += sR + "NUCH=" + xP.nUch.ToString(); } if (xP.sSmena != "") { sRet += sR + "KSMEN=" + xP.sSmena; } if ((xP.nEks != AppC.EMPTY_INT) && (xP.nEks > 0)) { sRet += sR + "KEKS=" + xP.nEks.ToString(); } if ((xP.nPol != AppC.EMPTY_INT) && (xP.nPol > 0)) { sRet += sR + "KPP=" + xP.nPol.ToString(); } if (xP.sNomDoc != "") { sRet += sR + "ND=" + xP.sNomDoc; } if (xP.sBC_Doc != "") { sRet += sR + "IDLOAD=" + xP.sBC_Doc; } if (nComCode == AppC.COM_ZDOC) { if (xP.nNumTypD != AppC.TYPD_MOVINT) { sRet += sR + "ADRKMC=FULL"; } //sRet += sR + "ADRKMC=LIMIT"; } sRet += sCurDoc; //xMF.xCLoad.sFilt = sRet; sRet = "PAR=(" + sRet + ")"; sPar = ";" + sRet + ";"; sCom = "COM=" + nComCode; break; case AppC.COM_CELLI: case AppC.COM_ADR2CNT: sPar = ";PAR=" + sP + ";"; break; case AppC.COM_LST2SSCC: sPar = String.Format(";{0}", sMD5); break; case AppC.COM_GENFUNC: case AppC.COM_PRNBLK: sPar = String.Format(";{0};", sP); break; case AppC.COM_UNKBC: sPar = String.Format(";{0};", sP); break; default: sPar = (sP.Length > 0) ? String.Format(";PAR={0};", sP) : ";"; break; } sCom += ";MAC=" + xMF.xPars.MACAdr + sUserCode + ";NUMT=" + xMF.xPars.NomTerm.ToString() + sPar + Encoding.UTF8.GetString(AppC.baTermCom, 0, AppC.baTermCom.Length); byte[] baCom = Encoding.UTF8.GetBytes(sCom); return(baCom); }
// сброс/установка полей ввода/вывода private void SetParFields(DocPars xDP) { int n = xDP.nTypD; string sIS; DocPars.tKTyp.Text = (n == AppC.EMPTY_INT) ? "" : xDP.nTypD.ToString(); sIS = DocPars.TypDName(n); DocPars.tNTyp.Text = (sIS.Length > 0) ? sIS : "<Неизвестный>"; xDP.sTypD = DocPars.tNTyp.Text; tSm_p.Text = xDP.sSmena; tDateD_p.Text = DateTime.Now.ToString("dd.MM.yy"); if (xDP.dDatDoc != DateTime.MinValue) { tDateD_p.Text = xDP.dDatDoc.ToString("dd.MM.yy"); } tKSkl_p.Text = ""; tNSkl_p.Text = ""; if (xDP.nSklad != AppC.EMPTY_INT) { tKSkl_p.Text = xDP.nSklad.ToString(); NSI.RezSrch zS = xNSI.GetNameSPR(NSI.NS_SKLAD, new object[] { xDP.nSklad }, "NAME"); if (zS.bFind == true) { tNSkl_p.Text = zS.sName; xDP.sSklad = zS.sName; } } tKUch_p.Text = ""; if ((xDP.nUch != AppC.EMPTY_INT) && (xDP.nUch != 0)) { tKUch_p.Text = xDP.nUch.ToString(); } tNom_p.Text = xDP.sNomDoc; tKEks_p.Text = ""; tNEks_p.Text = ""; if (xDP.nEks != AppC.EMPTY_INT) { tKEks_p.Text = xDP.nEks.ToString(); if (xDP.TypOper != AppC.TYPOP_KMPL) { NSI.RezSrch zS = xNSI.GetNameSPR(NSI.NS_EKS, new object[] { xDP.nEks }, "FIO"); if (zS.bFind == true) { tNEks_p.Text = zS.sName; xDP.sEks = zS.sName; } } else { tNEks_p.Text = xDP.sEks; } } else { xDP.sEks = ""; } tKPol_p.Text = ""; tNPol_p.Text = ""; if (xDP.nPol != AppC.EMPTY_INT) { tKPol_p.Text = xDP.nPol.ToString(); if (xDP.nTypD == AppC.TYPD_OPR) { sIS = DocPars.OPRName(ref xDP.nPol); } else if (xDP.TypOper != AppC.TYPOP_KMPL) { NSI.RezSrch zS = xNSI.GetNameSPR((xDP.nTypD == AppC.TYPD_VPER) ? NSI.NS_SKLAD : NSI.NS_PP, new object[] { xDP.nPol }, "NAME"); sIS = zS.sName; } else { sIS = xDP.sPol; } tNPol_p.Text = sIS; xDP.sPol = sIS; } else { xDP.sPol = ""; } SetTime2Load(); }
// проверка параметров перед записью private bool VerifyPars(DocPars xP, int nF, ref object xErr) { bool ret = false; string sE = ""; // для всех типов документов if ((xP.nTypD != AppC.EMPTY_INT) && (xP.dDatDoc != DateTime.MinValue)) { // смотрим дальше if (xP.nSklad != AppC.EMPTY_INT) { // склад имеется switch (nF) { case AppC.F_ADD_REC: case AppC.F_CHG_REC: if (Math.Abs((Smena.DateDef - xP.dDatDoc).Days) > xPars.Days2Save) { DialogResult drQ = MessageBox.Show("Изменить (Enter)?\n(ESC) - оставить", "Ошибочная дата!", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1); if (drQ == DialogResult.OK) { ret = false; sE = "Измените дату или параметры смены"; xErr = DocPars.tDate; break; } } if (xP.nTypD != AppC.TYPD_INV) { // если не инвентаризация - проверяем дальше switch (xP.nTypD) { case AppC.TYPD_BRK: // для актов забраковки if (xP.sNomDoc.Length > 0) { ret = true; } else { sE = "Номер акта не указан!"; xErr = tNom_p; } break; case AppC.TYPD_OPR: // внутрискладское перемещение //if (xP.nPol != AppC.EMPTY_INT) // ret = true; //else //{ // sE = "Тип перемещения не указан!"; // xErr = DocPars.tKPol; // ret = true; //} if (xP.TypOper > 0) { ret = true; } else { sE = "Тип перемещения не указан!"; xErr = DocPars.tKPol; ret = true; } break; case AppC.TYPD_SVOD: // для сводов if (xP.nEks != AppC.EMPTY_INT) { ret = true; } else { sE = "Экспедитор не указан!"; xErr = DocPars.tKEks; } break; case AppC.TYPD_CVYV: // центровывоз //if ((xP.nEks != AppC.EMPTY_INT) && (xP.nPol != AppC.EMPTY_INT)) // ret = true; //else //{ // sE = "Экспедитор или получатель не указан!"; // xErr = DocPars.tKEks; //} if (xP.nEks != AppC.EMPTY_INT) { ret = true; if (xP.nPol == AppC.EMPTY_INT) { sE = "Получатель не указан!"; } } else { sE = "Экспедитор не указан!"; xErr = DocPars.tKEks; } break; case AppC.TYPD_SAM: // самовывоз case AppC.TYPD_VPER: // внутреннее перемещение if (xP.nPol != AppC.EMPTY_INT) { if (xP.nTypD == AppC.TYPD_SAM) { ret = true; } else { // внутреннее перемещение if (xP.sNomDoc != "") { ret = true; } else { sE = "№ документа не указан!"; xErr = tNom_p; } } } else { ret = true; sE = "Получатель не указан!"; } break; case AppC.TYPD_PRIH: // приходный ордер ret = true; if (xP.sSmena == "") { if (IsControlByNSI(xP.nTypD, "", NSI.NS_SMEN) > AppC.VALNSI.ANY_AVAIL) { ret = false; sE = "Смена не указана!"; xErr = tSm_p; } } else if (xP.sNomDoc == "") { ret = false; sE = "№ документа не указан!"; xErr = tNom_p; } break; default: ret = true; break; } } else { //для инвентаризации ret = true; if (xP.sSmena == "") { if (IsControlByNSI(xP.nTypD, "", NSI.NS_SMEN) > AppC.VALNSI.ANY_AVAIL) { sE = "Смена не указана!"; xErr = tSm_p; } } } break; case AppC.F_UPLD_DOC: case AppC.F_LOAD_DOC: if (xP.sSmena != "") { ret = true; } else { if (IsControlByNSI(xP.nTypD, "", NSI.NS_SMEN) > AppC.VALNSI.ANY_AVAIL) { // пустое - нельзя! if (xP.nTypD == AppC.TYPD_VPER) { // внутреннее перемещение if (xP.sNomDoc.Length > 0) { ret = true; break; } } sE = "Смена не указана!"; xErr = tSm_p; } else { ret = true; } } break; } } else { sE = "Склад не указан!"; //xErr = DocPars.tKSkl; xErr = tKSkl_p; } } else { sE = "Ошибочный тип или дата!"; xErr = DocPars.tDate; } if ((ret == false) || (sE.Length > 0)) { Srv.ErrorMsg(sE); } return(ret); }
// проверка параметров перед записью private bool VerifyPars(DocPars xP, int nF, ref object xErr) { bool ret = false; string sE = ""; // для всех типов документов do { if (nF == AppC.F_LOAD_DOC) { if (xP.sBC_Doc.Length > 0) { ret = true; break; } } if (xP.nNumTypD == AppC.EMPTY_INT) { sE = "Ошибочный тип!"; xErr = tKT_p; } if (xP.dDatDoc == DateTime.MinValue) { sE = "Ошибочная дата!"; break; } if (xP.nSklad == AppC.EMPTY_INT) { sE = "Склад не указан!"; xErr = tKSkl_p; } ret = true; } while (false); //if ((xP.nTypD != AppC.EMPTY_INT) && (xP.dDatDoc != DateTime.MinValue)) //{// смотрим дальше // if (xP.nSklad != AppC.EMPTY_INT) // {// склад имеется // ret = true; // } // else // { // sE = "Склад не указан!"; // xErr = tKSkl_p; // } //} //else //{ // if (nF == AppC.F_LOAD_DOC) // { // if (xP.sBC_Doc.Length == 0) // { // } // else // { // ret = true; // } // } // else // { // } //} if ((ret == false) || (sE.Length > 0)) { Srv.ErrorMsg(sE); } xErr = null; return(ret); }