public int ConvertSSCC2Lst(ServerExchange xSE, string sSSCC, ref PSC_Types.ScDat scD, bool bInfoOnEmk, DataTable dtResult) { int nRec, nRet = AppC.RC_OK; string sP; DataSet dsTrans = null; // вместе с командой отдаем заголовок документа xCUpLoad = new CurUpLoad(xPars); xCUpLoad.sCurUplCommand = AppC.COM_ZSC2LST; if (xCDoc.drCurRow is DataRow) { dsTrans = xNSI.MakeWorkDataSet(xNSI.DT[NSI.BD_DOCOUT].dt, dtResult, new DataRow[] { xCDoc.drCurRow }, null, xSm, xCUpLoad); } MakeTempDOUTD(dtResult); LoadFromSrv dgL = new LoadFromSrv(LstFromSSCC); xCLoad = new CurLoad(); xCLoad.sSSCC = sSSCC; xCLoad.xLP.lSysN = xCDoc.nId; xCLoad.dtZ = dtL; sP = String.Format("(SSCC={0},TYPE={1})", sSSCC, "ROW"); string sL = xSE.ExchgSrv(AppC.COM_ZSC2LST, sP, "", dgL, dsTrans, ref nRet, 20); if (dtL.Rows.Count > 0) { nRet = TestProdBySrv(xSE, nRet); if (nRet == AppC.RC_OK) { nRec = xCLoad.dtZ.Rows.Count; if (nRec == 1) {// будем изображивать сканирование SetVirtScan(xCLoad.dtZ.Rows[0], ref scD, true, bInfoOnEmk); scD.sSSCC = sSSCC; } else {// добавление группы ??? nRet = AppC.RC_MANYEAN; } } } else {// просто сохраним запись ??? - если была сетевая ошибка! при ошибке сервера ничего сохранять не надо! if (xSE.ServerRet != AppC.RC_OK) { Srv.ErrorMsg(sL); } } return(nRet); }
// Обработка сканирования на панели Документов private void ProceedScanDoc(ScanVarGP xSc, ref PSC_Types.ScDat s) { int nRet = AppC.RC_OK; string sH, sPar, sErr = ""; CurLoad ret; ServerExchange xSE = new ServerExchange(this); if ((xSc.bcFlags & ScanVarGP.BCTyp.SP_SSCC_INT) > 0) { xCLoad = new CurLoad(AppC.UPL_ALL); xCLoad.sSSCC = xSc.Dat; xCLoad.drPars4Load = xNSI.DT[NSI.BD_KMPL].dt.NewRow(); LoadKomplLst(xCLoad.drPars4Load, AppC.F_LOADKPL); } else { ret = TransDocCode(ref s, xSE); if (ret != null) { xCLoad = ret; if (xSE.FullCOM2Srv.Length == 0) { if (bInLoad == true) { W32.keybd_event(W32.VK_ESC, W32.VK_ESC, 0, 0); W32.keybd_event(W32.VK_ESC, W32.VK_ESC, 0, 0); W32.keybd_event(W32.VK_ESC, W32.VK_ESC, W32.KEYEVENTF_KEYUP, 0); W32.keybd_event(W32.VK_ESC, W32.VK_ESC, W32.KEYEVENTF_KEYUP, 0); } else { LoadDocFromServer(AppC.F_INITRUN, new KeyEventArgs(Keys.Enter), ref ehCurrFunc); } } else { AutoSaveDat(); LoadFromSrv dgL = new LoadFromSrv(DocFromSrv); xCLoad.nCommand = AppC.F_LOAD_DOC; xCLoad.sComLoad = AppC.COM_ZZVK; sErr = xSE.ExchgSrv(AppC.COM_ZZVK, "", "", dgL, null, ref nRet); MessageBox.Show("Загрузка окончена - " + sErr, "Код - " + nRet.ToString()); PosOnLoaded(nRet); Back2Main(); } } else { xCUpLoad = new CurUpLoad(); if (xSE.FullCOM2Srv.Length == 0) { sPar = String.Format("BC={0};BCT={1}", xSc.Dat, xSc.Id.ToString().ToUpper()); sErr = xSE.ExchgSrv(AppC.COM_UNKBC, sPar, "", null, null, ref nRet); } else { AutoSaveDat(); LoadFromSrv dgL = new LoadFromSrv(DocFromSrv); xCLoad.nCommand = AppC.F_LOAD_DOC; xCLoad.sComLoad = AppC.COM_ZZVK; sErr = xSE.ExchgSrv(AppC.COM_ZZVK, "", "", dgL, null, ref nRet); MessageBox.Show("Загрузка окончена - " + sErr, "Код - " + nRet.ToString()); PosOnLoaded(nRet); Back2Main(); } if (nRet != AppC.RC_OK) { nRet = xSE.ServerRet; if (nRet != AppC.RC_NEEDPARS) { } Srv.PlayMelody(W32.MB_4HIGH_FLY); sH = "Ошибка!"; } else { sH = "Код отправлен"; } Srv.ErrorMsg(sErr, sH, false); } } }
private int SetOverOPR(bool bAfterScan, DataRow drOpr, string sComm) { bool bNeedTrans; int nRet = AppC.RC_OK; ServerExchange xSE = new ServerExchange(this); if (drOpr != null) { bNeedTrans = (((AppC.OPR_STATE)drOpr["STATE"] != AppC.OPR_STATE.OPR_TRANSFERED) || (xCDoc.xDocP.nTypD != AppC.TYPD_OPR)); if (bNeedTrans) { if (bAfterScan) { if ((scCur.sKMC == (string)drDet["KMC"]) && (scCur.nParty == (string)drDet["NP"]) && (scCur.dDataIzg.ToString("yyyyMMdd") == (string)drDet["DVR"])) { bAfterScan = false; } } if (!bAfterScan) { // выгрузка по кнопочке //drOpr["STATE"] = AppC.OPR_STATE.OPR_READY; xCUpLoad = new CurUpLoad(xPars); xDP = xCUpLoad.xLP; xCUpLoad.bOnlyCurRow = true; xCUpLoad.drForUpl = drOpr; xCUpLoad.sCurUplCommand = sComm; if (xPars.OpAutoUpl) { // авто-выгрузка операций string sL = UpLoadDoc(xSE, ref nRet); if (xSE.ServerRet == AppC.RC_OK) { AddrInfo xA = xCDoc.xOper.xAdrSrc; xCDoc.xOper = new CurOper(false); if (IsAutoMark()) { xCDoc.xOper.SetOperSrc(xA, xCDoc.xDocP.nTypD, false); // Имитация вызова //W32.SimulKey(W32.VK_SHIFT, 0); //W32.SimulKey(W32.VK_D1, 2); } //return (nRet); } if (nRet != AppC.RC_OK) { if (nRet == AppC.RC_HALFOK) { Srv.PlayMelody(W32.MB_2PROBK_QUESTION); MessageBox.Show(sL, "Предупреждение!"); } else { Srv.ErrorMsg(sL, true); } } if ((xSE.ServerRet != AppC.EMPTY_INT) && (xSE.ServerRet != AppC.RC_OK)) { // операция выгрузки не прошла на сервере (содержательная ошибка) //if (xSE.ServerRet == 99) // CompareAddrs(xCDoc.xOper.xAdrDst.Addr, String.Format("---{0}-----------После выгрузки", xSE.ServerRet), true); xCDoc.xOper.SetOperDst(null, xCDoc.xDocP.nTypD, true); } } else { xCDoc.xOper = new CurOper(true); } xCUpLoad = null; } } } else { Srv.ErrorMsg("Продукция не определена!"); } return(nRet); }