コード例 #1
0
        public override void GetDelayedZReports()
        {
            Log("Отложенные Z отчеты\r\nResetMode()");

            if (!Execute(KKM.ResetMode()))
            {
                return;
            }
            KKM.Password = _psysadm;
            KKM.Mode     = 3;
            Log("Установка режима 3");
            if (!Execute(KKM.SetMode()))
            {
                return;
            }
            KKM.StreamFormat   = 3;
            KKM.OutboundStream = "B5"; //вход в режим распечатки отчетов из памяти
            KKM.ReportType     = 1;
            Log("Вход в режим распечатки отчетов, снятие");
            Execute(KKM.RunCommand());

            string answer = KKM.InboundStream; //формат ответа: '550019', где "19" -- количество оставшихся свободных полей в памяти в hex, "00" -- код ошибки

            Log("Релуьтат:" + answer);
            if (answer.Length == 6)
            {
                string p = answer[4] + "" + answer[5];
                _countFreeZReports = int.Parse(p);

                if (answer[2] + "" + answer[3] != "00")
                {
                    Log("Невозможно снять Z в пямять 0х" + answer[2] + "" + answer[3]);
                    //throw new Exception("Невозможно снять Z-отчет в память. Error 0x" + answer[2] + "" + answer[3]);
                    return;
                }
            }

            //собственное здесь идет разбор ответа и анализ того, что Вам надо
            //KKM.Report(); //а вот и собственно снятие отчета в память.
            Log("ReserMode()");
            Execute(KKM.ResetMode()); //выходим из режима снятия отчетов.
        }