Ejemplo n.º 1
0
        // добавление новой записи в документы
        public bool AddDocRec(CurDoc xD, DataGrid dgDoc)
        {
            bool ret = true;

            try
            {
                DataRow dr = DT[NSI.TBD_DOC].dt.NewRow();
                dr["SOURCE"] = DOCSRC_CRTD;

                ret = UpdateDocRec(dr, xD);
                if (ret == true)
                {
                    DT[NSI.TBD_DOC].dt.Rows.Add(dr);
                    xD.nId      = (int)dr["ID"];
                    xD.drCurRow = dr;
                    if (dgDoc != null)
                    {
                        dgDoc.CurrentRowIndex = ((System.ComponentModel.IListSource)dgDoc.DataSource).GetList().Count - 1;
                    }
                }
            }
            catch (System.Data.ConstraintException)
            {
                ret = false;
                ServClass.ErrorMsg("Документ уже существует");
            }
            catch (Exception ex)
            {
                ret = false;
                object x = ex.GetType();
            }
            return(ret);
        }
Ejemplo n.º 2
0
        // заполнение строки таблицы документов
        public bool UpdateDocRec(DataRow dr, CurDoc xD)
        {
            bool    ret = true;
            DocPars x   = xD.xDocP;

            try
            {
                if (x.nTypD != AppC.EMPTY_INT)
                {
                    dr["TD"] = x.nTypD;
                }
                else
                {
                    dr["TD"] = System.DBNull.Value;
                }

                if (x.dDatDoc != DateTime.MinValue)
                {
                    dr["DT"] = x.dDatDoc.ToString("yyyyMMdd");
                }
                else
                {
                    dr["DT"] = System.DBNull.Value;
                }
                if (x.sNomDoc != "")
                {
                    dr["SYSN"] = int.Parse(x.sNomDoc);
                }
                else
                {
                    dr["SYSN"] = System.DBNull.Value;
                }

                if (x.nPost != AppC.EMPTY_INT)
                {
                    dr["KPP1"] = x.nPost;
                }
                else
                {
                    dr["KPP1"] = System.DBNull.Value;
                }

                Encoding enc866 = Encoding.GetEncoding(866);
                dr["BIN2D"]   = enc866.GetString(xD.From2D, 0, xD.nFull2D);
                dr["HEAD2D"]  = xD.nHead2D;
                dr["FULL2D"]  = xD.nFull2D;
                dr["IDSER2D"] = xD.nIDSer;

                dr["PP2_NAME"] = "2D-данные";
            }
            catch
            {
                ret = false;
            }
            return(ret);
        }
Ejemplo n.º 3
0
        // загрузка одной таблицы
//        private void Read1NSI(TableDef td, int nReg)
//        {
//            int tc1, nE = 0;
//            string sPath = "";
//            object dg = null;

//            td.sDTStat = "";
//            if (  ((td.nType & TBLTYPE.NSI) == TBLTYPE.NSI) &&
//                ((td.nType & TBLTYPE.LOAD) == TBLTYPE.LOAD) || (nReg == LOAD_ANY))   // НСИ загружаемое
//                {
//                    if ((td.nState == DT_STATE_INIT) || (nReg == LOAD_ANY))
//                    {
//                        if (td.dg != null)
//                        {
//                            dg = td.dg.DataSource;
//                            td.dg.DataSource = null;
//                        }

//                        td.nErr = 0;
//                        tc1 = Environment.TickCount;
//                        try
//                        {
//                            sPath = sPathNSI + td.sXML;
//                            td.dt.BeginLoadData();
//                            nE = 1;
//                            td.dt.Clear();
//                            nE = 2;
//                            td.dt.ReadXml(sPath);
//                            nE = 3;
//                            td.dt.EndLoadData();
//                            td.nState = DT_STATE_READ;
//                        }
//                        catch
//                        {
//                            td.nErr = nE;
//                            td.nState = DT_STATE_READ_ERR;
//                        }

//                        td.sDTStat = ServClass.TimeDiff(tc1, Environment.TickCount);
///*
//                        if (i == I_MC)
//                            CreateKrEAN(td.dt);
//*/
//                        if (dg != null)
//                            td.dg.DataSource = dg;
//                        dg = null;
//                    }
//                }

//        }


        // возвращает из справочника заданное поле
        //internal RezSrch GetNameSPR(string iT, object[] xSearch, string sFieldName)
        //{
        //    RezSrch zRet = new RezSrch("-???-");
        //    DataRow dr = null;
        //    try
        //    {
        //        dr = DT[iT].dt.Rows.Find(xSearch);
        //        zRet.sName = dr[sFieldName].ToString();
        //        zRet.bFind = true;
        //    }
        //    catch
        //    {
        //    }
        //    return (zRet);
        //}


        // чтение текущей строки в объект панели документов
        public bool InitCurDoc(CurDoc xD)
        {
            bool ret = false;

            if (xD.drCurRow != null)
            {
                try
                {
                    //int i = xD.nCurRec;
                    DocPars x = xD.xDocP;

                    //DataRow dr = DT[NSI.I_DOCOUT].dt.Rows[i];
                    DataRow dr = xD.drCurRow;

                    xD.nId     = (int)((dr["ID"] == System.DBNull.Value) ? AppC.EMPTY_INT : dr["ID"]);
                    xD.nDocSrc = (int)((dr["SOURCE"] == System.DBNull.Value) ? AppC.EMPTY_INT : dr["SOURCE"]);


                    x.nTypD   = (int)((dr["TD"] == System.DBNull.Value) ? AppC.EMPTY_INT : dr["TD"]);
                    x.nPost   = (long)((dr["KPP1"] == System.DBNull.Value) ? AppC.EMPTY_INT : dr["KPP1"]);
                    x.sNomDoc = ((dr["SYSN"] == System.DBNull.Value) ? "" : dr["SYSN"].ToString());

/*
 *                  x.sSmena = ((dr["KSMEN"] == System.DBNull.Value) ? "" : dr["KSMEN"].ToString());
 *                  x.nUch = (int)((dr["NUCH"] == System.DBNull.Value) ? AppC.EMPTY_INT : dr["NUCH"]);
 *                  x.nEks = (int)((dr["KEKS"] == System.DBNull.Value) ? AppC.EMPTY_INT : dr["KEKS"]);
 */
                    try
                    {
                        x.dDatDoc = DateTime.ParseExact(dr["DT"].ToString(), "yyyyMMdd", null);
                    }
                    catch
                    {
                        x.dDatDoc = DateTime.MinValue;
                    }
                    //xD.nStrokZ = xD.drCurRow.GetChildRows(NSI.REL2ZVK).Length;

                    Encoding enc866 = Encoding.GetEncoding(866);
                    xD.nHead2D = (int)dr["HEAD2D"];
                    xD.nFull2D = (int)dr["FULL2D"];
                    xD.nIDSer  = (long)dr["IDSER2D"];
                    xD.From2D  = enc866.GetBytes((string)dr["BIN2D"]);

                    ret = true;
                }
                catch
                {
                }
            }
            return(ret);
        }
Ejemplo n.º 4
0
        // запись скорректированной строки в таблицу
        public bool ChgDocRec(CurDoc xD)
        {
            bool ret = false;

            try
            {
                //DataRow dr = DT[I_DOCOUT].dt.Rows[xD.nCurRec];
                ret = UpdateDocRec(xD.drCurRow, xD);
            }
            catch
            {
                ret = false;
            }
            return(ret);
        }
Ejemplo n.º 5
0
 // при активации панели документов
 private void EnterInDoc()
 {
     if (b1stEner == true)
     {
         b1stEner = false;
         //xNSI.ChgGridStyle(NSI.TBD_DOC, NSI.GDOC_INV);
         lInfDocLeft.Text = (xSm.sUser == AppC.SUSER)?"Admin":xSm.sUser;
         xCDoc            = new CurDoc(AppC.F_ADD_REC);
         if (xSm.nDocs > 0)
         {// есть записи для просмотра
             RestShowDoc(false);
         }
     }
     if (bEditMode == false)            // в режиме просмотра
     {
         StatAllDoc();
         if (xCDoc.drCurRow != null)
         {// есть запись для отображения
          //xCDoc.drCurRow["MEST"] = TotMest(NSI.REL2TTN);
          //dgDoc.Focus();
         }
     }
 }
Ejemplo n.º 6
0
            // добавить полученный символ
            public int AddNew(byte[] b, int nL, bool b2DFull)
            {
                int nOfs,
                    nRet = AppC.RC_OK;

                xS     = new One2DSym();
                xS.buf = b;
                xS.nL  = nL;

                nOfs = 0;
                // достать служебную инфу из заголовка
                ParseLev(b, ref nOfs, xСDef2D.lDef[0], 0);
                switch (State)
                {
                case READ2D_STATE.R_WAIT_SER:
                    nID_Serial = xS.nID_Serial;
                    if (b2DFull == false)
                    {
                        xS.nMaxSer = 1;
                        xS.nInSer  = 1;
                    }

                    nMaxSer  = xS.nMaxSer;
                    nFileLen = AddFileLen(0);
                    nSaved2D = 1;
                    lSavedNs.Add(xS.nInSer);
                    lSym.Add(xS);
                    xD    = new CurDoc(AppC.F_ADD_REC);
                    State = TestIsSame();
                    switch (State)
                    {
                    case READ2D_STATE.R_SAME_DOC:
                        ServClass.PlayMelody(W32.MB_3GONG_EXCLAM);
                        DialogResult dr = MessageBox.Show("Отменить ввод(Enter)?\r\n(ESC) - переписать",
                                                          "Документ существует!",
                                                          MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
                        if (dr != DialogResult.OK)
                        {
                            bRewrite = true;
                            State    = READ2D_STATE.R_WAIT_NEXT;
                        }
                        break;

                    case READ2D_STATE.R_WAIT_NEXT:
                        break;
                    }
                    break;

                case READ2D_STATE.R_WAIT_NEXT:
                    if (nID_Serial == xS.nID_Serial)
                    {
                        if (!lSavedNs.Contains(xS.nInSer))
                        {
                            nSaved2D++;
                            lSavedNs.Add(xS.nInSer);
                            lSym.Add(xS);
                            nFileLen = AddFileLen(nFileLen);
                        }
                    }
                    break;
                }
                if (State == READ2D_STATE.R_WAIT_NEXT)
                {
                    if ((nSaved2D == nMaxSer) || (b2DFull == false))
                    {
                        State = READ2D_STATE.R_FULL_SER;
                        PrepBinDat(true, b2DFull);
                    }
                }

                return(nRet);
            }