private DialogResult ПолучитьАдресКуда()
        {
            Обмен = new Пакеты("Нет операции");//тут идет подготовка класса, но посылки пакета не будет, так что просто вызвали конструктор класса для заполнения типа
            Последовательность.ОтветСервера = Обмен.ПодготовитьСтроку("ТекстИнструкции", "Необходимо сканировать адрес/ячейку для перемещения отсканированного товара с " + ТекстДЯ.Text);
            Окно_сканирования_адреса ОкноАдреса = new Окно_сканирования_адреса(Последовательность);

            ОкноАдреса.ВернутьСкан = true;// не обращаться к вебсервису
            DialogResult езультатОкна = ОкноАдреса.ShowDialog();

            return(езультатОкна);
        }
        private DialogResult ПолучитьАдресКудаПодтоваривать()
        {
            string Адреса = ПолучитьРекомендуемыеАдреса();
            Пакеты Обмен  = new Пакеты("Нет операции");

            Последовательность.ОтветСервера = Обмен.ПодготовитьСтроку("ТекстИнструкции", "Необходимо сканировать адрес для перемещения отсканированного товара с " + ТекстДЯ.Text + " на:" + Адреса);
            Окно_сканирования_адреса ОкноАдреса = new Окно_сканирования_адреса(Последовательность);

            ОкноАдреса.ВернутьСкан = true;// не обращаться к вебсервису
            DialogResult езультатОкна = ОкноАдреса.ShowDialog();

            return(езультатОкна);
        }
 private void СканАдреса(string СтрокаСкан)
 {
     if (!ВернутьСкан)
     {
         Последовательность.ОтветСервера = Обмен.ПослатьСтроку(СтрокаСкан, Последовательность.ТекущееОкно, "СканированВыбор");
         if (Последовательность.ОтветСервера == null)
         {
             return;                                          // в случае ошибки остаться в этом же окне
         }
     }
     else
     {
         Последовательность.ОтветСервера = Обмен.ПодготовитьСтроку("ТекстДЯ", СтрокаСкан);
     }
     this.DialogResult = DialogResult.Retry;
     this.Close();
     return;
 }
Пример #4
0
        private void ОбработкаВводаМеста(string _Данные)
        {
            // установим фокус на список мест

            СписокГрузовыхМест.Focus();

            // проверим, что это место

            if (!_Данные.Substring(0, 3).Equals("mst"))
            {
                Инфо.Ошибка("Необходимо сосканировать ШК грузового места.");
                return;
            }

            // снять выделение с других строк

            foreach (ListViewItem item in СписокГрузовыхМест.Items)
            {
                item.Selected = false;
            }

            string ТекущиеМесто = _Данные.Substring(3);

            // проверим, что место еще не добавлено

            foreach (ListViewItem item in СписокГрузовыхМест.Items)
            {
                if (String.Equals(item.SubItems[0].Text, ТекущиеМесто))
                {
                    Инфо.Ошибка("Грузовое место уже присутствует в списке.");

                    // установить курсор на место, которое добавляем повторно
                    СписокГрузовыхМест.EnsureVisible(item.Index);

                    item.Focused = true;

                    return;
                }
            }

            // проверка места на сервере
            Cursor.Current = Cursors.WaitCursor;
            ОтветСервера   = Обмен.Послать("СканированиеГрузовогоМеста", Обмен.ПодготовитьСтроку(ТекущиеМесто));
            Cursor.Current = Cursors.Default;

            if (ОтветСервера == null)
            {
                return;
            }

            // обработка ответа сервера

            string ЛишнееМесто = "1"; // истина по умолчанию

            foreach (string[] str in ОтветСервера)
            {
                if (str[0] == "ЛишнееМесто")
                {
                    ЛишнееМесто = str[1];
                }
            }

            // добавим строку и спозиционируемся на ней

            string[] row         = { ТекущиеМесто };
            var      НоваяСтрока = СписокГрузовыхМест.Items.Add(new ListViewItem(row));

            СписокГрузовыхМест.EnsureVisible(НоваяСтрока.Index);
            НоваяСтрока.Focused = true;

            // подать сигнал о успешном добавлении

            аботаСоСканером.Звук.Ок();

            if (ЛишнееМесто == "1")
            {
                НоваяСтрока.BackColor = Color.LightPink;

                // подать сигнал, что место не ждем
                аботаСоСканером.Звук.Ошибка();
            }
            else
            {
                // подать сигнал, что место наше
                аботаСоСканером.Звук.Ок();
            }

            УстановитьДоступностьЭлементовФормы();
            УстановитьТекстПодсказки();
            Данные.СписокГрузовыхМестДобавить(ТекущиеМесто, ЛишнееМесто);
        }