private void ReactionBarcode(object sender, BarcodeReadEventArgs e) { string strBarcode = e.Barcode; //Особые режимы у которых все просто if (SS.NewStructModes.Contains(SS.CurrentMode)) { SS.BarcodeReaction(strBarcode); return; } Dictionary<string, string> dicBarcode = Helper.DisassembleBarcode(strBarcode); if ((SS.CurrentMode == Mode.SetSelfContorl || SS.CurrentMode == Mode.Set || SS.CurrentMode == Mode.SampleSet) && Screan != 0) { lblAction.Text = "ШК не работают на данном экране!"; return; } if (SS.CurrentMode == Mode.SetInicialization || SS.CurrentMode == Mode.SetSelfContorl || SS.CurrentMode == Mode.Loading || SS.CurrentMode == Mode.Set || SS.CurrentMode == Mode.Down || SS.CurrentMode == Mode.FreeDownComplete || SS.CurrentMode == Mode.NewComplectation || SS.CurrentMode == Mode.NewComplectationComplete) { lblAction.ForeColor = Color.Blue; } lblAction.Text = "ШК принят, обработка..."; Refresh(); bool IsObject = true; if (strBarcode.Substring(0, 2) == "25" && dicBarcode["Type"] == "113") { #region EAN 13 Reference 25 type 113 if (!SS.IsSC(dicBarcode["IDD"], "Сотрудники")) { if (!SS.IsSC(dicBarcode["IDD"], "Секции")) { if (!SS.IsSC(dicBarcode["IDD"], "Принтеры")) { IsObject = false; } } } if (IsObject) { if (SS.CurrentMode == Mode.AcceptedItem) { //Не спрашивайте меня зачем это здесь... DynamicLostFocus(pnlCurrent.GetFocused(), null); } if (SS.ReactionSC(dicBarcode["IDD"])) { View(); if (SS.CurrentMode == Mode.SampleSet && SS.ExcStr != null) { lblAction.Text = SS.ExcStr; } else if (SS.CurrentMode == Mode.SetSelfContorl || SS.CurrentMode == Mode.Set || SS.CurrentMode == Mode.Down || SS.CurrentMode == Mode.FreeDownComplete || SS.CurrentMode == Mode.NewComplectation || SS.CurrentMode == Mode.NewComplectationComplete) { GoodDone(); return; } else if (SS.CurrentMode == Mode.AcceptanceCross && SS.ExcStr != null && (dicBarcode["Type"] == "pallete" || SS.IsSC(dicBarcode["IDD"], "Секции"))) { lblAction.Text = SS.ExcStr; } else if (SS.CurrentMode != Mode.DownComplete) { lblAction.Text = "Ожидание команды"; } } else { if (SS.CurrentMode == Mode.SetSelfContorl || SS.CurrentMode == Mode.Set || SS.CurrentMode == Mode.Down || SS.CurrentMode == Mode.FreeDownComplete || SS.CurrentMode == Mode.NewComplectation || SS.CurrentMode == Mode.NewComplectationComplete) { BadDone(); return; } else { lblAction.Text = SS.ExcStr; } } return; } #endregion } else if (strBarcode.Substring(0, 2) == "26" && dicBarcode["Type"] == "113") { #region EAN 13 Reference 26 type 113 string tmpIDDoc; string tmpDocType; IsObject = SS.GetDoc(dicBarcode["IDD"], out tmpIDDoc, out tmpDocType); if (IsObject) { if (SS.ReactionDoc(dicBarcode["IDD"])) { View(); lblAction.Text = SS.ExcStr; } else { if (SS.CurrentMode == Mode.SetInicialization || SS.CurrentMode == Mode.SetSelfContorl || SS.CurrentMode == Mode.Set || SS.CurrentMode == Mode.Down || SS.CurrentMode == Mode.FreeDownComplete || SS.CurrentMode == Mode.NewComplectation || SS.CurrentMode == Mode.NewComplectationComplete) { BadDone(); return; } else { lblAction.Text = SS.ExcStr; } } return; } #endregion } else if (dicBarcode["Type"] == "part" && (SS.CurrentMode == Mode.Set || SS.CurrentMode == Mode.SampleSet)) { //отcканировали количество деталей //Количество деталей if (SS.ScanPartBarcode(Convert.ToInt32(dicBarcode["count"]))) { GoodDone(); } else { BadDone(); } return; } else if (dicBarcode["Type"] == "pallete") { //отсканированна паллета if (SS.CurrentMode == Mode.Acceptance) { //отcканировали паллету надо запомнить ее ID if (SS.ScanPalletBarcode(strBarcode)) { GoodDone(); } else { BadDone(); } return; } else if (SS.CurrentMode == Mode.AcceptedItem && SS.AcceptedItem.ToMode == Mode.AcceptanceCross) { //если это кроссдокинг, надо проверить а нет ли текущих заказов на этой паллете if (SS.EnterPalletAcceptanceCross(strBarcode)) { lblAction.Text = SS.ExcStr; GoodDone(); } else { lblAction.Text = SS.ExcStr; BadDone(); } return; } else if (SS.CurrentMode == Mode.AcceptanceCross) { //запишем данные в нее string TextQuery = "SELECT " + "Pallets.ID as ID " + "FROM " + "$Спр.ПеремещенияПаллет as Pallets (nolock) " + "WHERE " + "Pallets.$Спр.ПеремещенияПаллет.ШКПаллеты = :Pallet "; // "AND Pallets.$Спр.ПеремещенияПаллет.ФлагОперации = 1 " + // "AND Pallets.$Спр.ПеремещенияПаллет.Адрес0 = :EmptyID "; SQL1S.QuerySetParam(ref TextQuery, "EmptyDate", SQL1S.GetVoidID()); SQL1S.QuerySetParam(ref TextQuery, "Pallet", strBarcode); DataTable DT; SS.ExecuteWithRead(TextQuery, out DT); if (DT.Rows.Count == 0) { lblAction.Text = "Паллета не найдена!"; BadDone(); return; } DataGrid currDG = pnlCurrent.GetDataGridByName("dgAcceptedItems"); currDG.CurrentRowIndex = 0; bool findePallet = false; foreach (DataRow DTdr in DT.Rows) { SS.FPalletID = DTdr["id"].ToString(); SS.FBarcodePallet = strBarcode; SS.PalletAcceptedItem = new RefPalleteMove(SS); SS.PalletAcceptedItem.FoundID(SS.FPalletID); int num = 0; foreach (DataRow dr in SS.AcceptedItems.Rows) { if (dr["PalletID"].ToString() == SS.FPalletID.ToString()) { currDG.CurrentRowIndex = num; findePallet = true; break; } num++; } if (findePallet) { break; } } currDG.Focus(); if (!findePallet) { //не нашли паллету в табличке lblAction.Text = "Нет такой паллеты в принятых товарах!"; SS.FPalletID = ""; SS.FBarcodePallet = ""; SS.PalletAcceptedItem = null; BadDone(); return; } lblAction.Text = "Отсканируйте адресс паллеты!"; GoodDone(); return; } else if (SS.CurrentMode == Mode.Transfer) { //отcканировали паллету надо запомнить ее ШК дальше он нам пригодится SS.FBarcodePallet = strBarcode; } } Mode tmpMode = SS.CurrentMode; if (SS.CurrentMode == Mode.Transfer && Screan == 1) { //Не доспускаем сканирование в экране разнесенных товаров lblAction.Text = "Нет действий с этим штирхкодом в данном экране! Переместитесь в экран ТЕЛЕЖКА!"; return; } if (SS.ReactionBarcode(strBarcode, Screan)) { #region reaction any barcode if (SS.CurrentMode == Mode.AcceptedItem && tmpMode == Mode.AcceptedItem) { if (SS.AcceptedItem.ToMode == Mode.Transfer || SS.AcceptedItem.ToMode == Mode.NewInventory || SS.AcceptedItem.ToMode == Mode.Harmonization || SS.AcceptedItem.ToMode == Mode.HarmonizationPut) { lblAction.Text = "В данном режиме нельзя менять ШК!"; return; } else { if (!SS.ChangeUnitBarcode((int)ViewUnits.Rows[CurrentRowItem]["Coef"], strBarcode, ViewUnits.Rows[CurrentRowItem]["OKEI"].ToString())) { lblAction.Text = SS.ExcStr; return; } } } if (SS.CurrentMode == Mode.SampleSet || SS.CurrentMode == Mode.SamplePut) { lblAction.Text = SS.ExcStr; } View(); if (SS.CurrentMode == Mode.AcceptedItem) { lblAction.Text = SS.ExcStr; } else if (SS.CurrentMode == Mode.SetSelfContorl || SS.CurrentMode == Mode.SetSelfContorl || SS.CurrentMode == Mode.Set || SS.CurrentMode == Mode.Down || SS.CurrentMode == Mode.FreeDownComplete || SS.CurrentMode == Mode.NewComplectation || SS.CurrentMode == Mode.NewComplectationComplete || SS.CurrentMode == Mode.SampleSet) { GoodDone(); return; } else { lblAction.Text = "Ожидание команды"; } #endregion } else { if (dicBarcode["Type"] == "5") { if (SS.CurrentMode == Mode.Transfer || SS.CurrentMode == Mode.NewInventory || SS.CurrentMode == Mode.Acceptance) { if (SS.AddPartyParty(dicBarcode["IDD"], Convert.ToInt32(dicBarcode["LineNo"]))) { View(); } } } else if (dicBarcode["Type"] == "6" && (SS.CurrentMode == Mode.SetSelfContorl || SS.CurrentMode == Mode.Down || SS.CurrentMode == Mode.Loading || SS.CurrentMode == Mode.SampleSet || SS.CurrentMode == Mode.Set || SS.CurrentMode == Mode.FreeDownComplete || SS.CurrentMode == Mode.NewComplectation || SS.CurrentMode == Mode.NewComplectationComplete)) { if (SS.ReactionSC(dicBarcode["ID"], true)) { if (SS.CurrentMode == Mode.Loading) { if (SS.colorSwitcher) { lblAction.ForeColor = Color.DarkGreen; } else { lblAction.ForeColor = Color.Blue; } GoodVoice(); ViewProposal = null; ReView(); Refresh(); } else if (SS.CurrentMode == Mode.SetSelfContorl || SS.CurrentMode == Mode.Set || SS.CurrentMode == Mode.Down || SS.CurrentMode == Mode.FreeDownComplete || SS.CurrentMode == Mode.NewComplectation || SS.CurrentMode == Mode.NewComplectationComplete) { GoodDone(); return; } else { View(); } } else { if (SS.CurrentMode == Mode.Loading) { BadVoice(); lblAction.ForeColor = Color.Red; } else if (SS.CurrentMode == Mode.SetSelfContorl || SS.CurrentMode == Mode.Set || SS.CurrentMode == Mode.Down || SS.CurrentMode == Mode.FreeDownComplete || SS.CurrentMode == Mode.NewComplectation || SS.CurrentMode == Mode.NewComplectationComplete) { BadDone(); return; } } } if (SS.ExcStr == null) { lblAction.Text = "Ожидание команды"; } else { if (SS.CurrentMode == Mode.SetSelfContorl || SS.CurrentMode == Mode.Set || SS.CurrentMode == Mode.Down || SS.CurrentMode == Mode.FreeDownComplete || SS.CurrentMode == Mode.NewComplectation || SS.CurrentMode == Mode.NewComplectationComplete) { BadDone(); return; } lblAction.Text = SS.ExcStr; } } } // ReactionBarcode
} // InitSS /// <summary> /// Здесь будем все инициализировать (форма уже отстроена, только не видно ее) /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void FMainOnLoad(object sender, EventArgs e) { //Text = "zhopa"; //return; InicializeFont(); CurrWidth = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width; //СОЗДАЕМ ПАНЕЛИ pnlCurrent = new ExPanel(); //pnlCurrent.BackColor = SystemColors.ActiveBorder; pnlCurrent.BackColor = Color.White; pnlCurrent.Location = new Point(0, 16); pnlCurrent.Name = "pnlCurrent"; pnlCurrent.Size = new Size(CurrWidth - 2, 185); this.Controls.Add(pnlCurrent); pnlCurrent.BringToFront(); //pnlSections.BackColor = System.Drawing.SystemColors.ActiveBorder; //ИНИЦИАЛИЗАЦИЮ РАЗМЕСТИМ ЗДЕСЬ DGCellChange = false; Text = "WPM " + Vers; WindowState = FormWindowState.Maximized; ViewMode = Mode.None; Screan = 0; Br = new Barcode(this, 200); Br.BarcodeRead += ReactionBarcode; Br.HotKeyEvent += HotKeyEvent; //MessageBox.Show(); //string[] names = Assembly.GetExecutingAssembly().GetModules //MessageBox.Show(Assembly.GetExecutingAssembly().Location); //MessageBox.Show(Path.GetFullPath(FileName)); //return; //MessageBox.Show("Hyper"); int CountServers = 2; string[] NamesOfServers; NamesOfServers = new string[CountServers]; NamesOfServers[0] = @"192.168.8.4,57068"; NamesOfServers[1] = @"192.168.8.5,57068"; //NamesOfServers[0] = @"192.168.8.11\sqlcl1"; //NamesOfServers[1] = @"192.168.8.12\sqlcl1"; //DO NOT FORGOT CHANGE PARAMETR: CountServers!!! if (false) { //ТЕСТ ЭКРАНА pnlCurrent.Controls.Clear(); ABaseMode Obj = new Waiting(SS, null); //RefillSet_view(); RefillLayout_view(); foreach (Control Ctrl in pnlCurrent.Controls) { if (Ctrl.GetType().Equals(typeof(Label))) { (Ctrl as Label).Text = "00000000000000000000000000000000000000"; } else if (Ctrl.GetType().Equals(typeof(DataGrid))) { (Ctrl as DataGrid).Visible = false; } } return; } string FirstServName = GetServName(NamesOfServers[0]); InitSS(FirstServName); if (!SS.Initialize()) { for (int i = 0; i < CountServers; ++i) { if (FirstServName == NamesOfServers[i]) { continue; } InitSS(NamesOfServers[i]); if (SS.Initialize()) { SaveServName(NamesOfServers[i]); break; } } } if (!SS.Connect) { MessageBox.Show("Не удалось синхронизовать (версия: " + Vers + ")! ОШИБКА: " + SS.ExcStr); Close(); return; } View(); if (SS.DeviceName == null || SS.DeviceName.Trim() == "") { lblName.Text = Helper.SuckDigits(DeviceID.GetDeviceName()); } else { lblName.Text = Helper.SuckDigits(SS.DeviceName); } pnlCurrent.GetLabelByName("lblResult").Text = ""; lblAction.Width = CurrWidth - 2; //lblAction.Font = new Font("Tahoma", CurrWidth < 320 ? 11 : 14, FontStyle.Bold); lblName.Location = new Point(CurrWidth - 24, 0); lblState.Width = CurrWidth - 2; lblState.Font = CurrWidth < 320 ? FontTahoma8Bold : FontTahoma10Bold; }