private void ModeLoadingInicializationReView() { Label lblPlacer = pnlCurrent.GetLabelByName("lblPlacer"); lblPlacer.Text = (SS.Placer.Selected ? Helper.GetShortFIO(SS.Placer.Name) : "<не выбран>"); Label lblWayBill = pnlCurrent.GetLabelByName("lblWayBill"); lblWayBill.Text = (SS.WayBill.View == null ? "<не выбран>" : SS.WayBill.View); lblAction.ForeColor = Color.Blue; }
} // ModeSetCompleteReView private void ModeDownReView() { int remain = SS.DocDown.AllBoxes - SS.DocDown.Boxes; Label lblPrinter = pnlCurrent.GetLabelByName("lblPrinter"); Label lblInfo1 = pnlCurrent.GetLabelByName("lblInfo1"); Label lblKey1 = pnlCurrent.GetLabelByName("lblKey1"); Label lblNumber = pnlCurrent.GetLabelByName("lblNumber"); Label lblAdress = pnlCurrent.GetLabelByName("lblAdress"); Label lblSetter = pnlCurrent.GetLabelByName("lblSetter"); lblPrinter.Text = SS.Printer.Description; lblInfo1.Text = "Отобрано " + remain.ToString() + " из " + SS.DocDown.AllBoxes.ToString(); lblNumber.Text = SS.DocDown.NumberBill.Substring(SS.DocDown.NumberBill.Length - 5, 2) + " " + SS.DocDown.NumberBill.Substring(SS.DocDown.NumberBill.Length - 3) + " сектор: " + SS.DocDown.MainSectorName.Trim() + "-" + SS.DocDown.NumberCC.ToString(); lblAdress.Text = SS.DocDown.AdressCollect; lblSetter.Text = "отборщик: " + Helper.GetShortFIO(SS.DocDown.SetterName); lblKey1.Visible = SS.DocDown.MaxStub <= remain ? true : false; lblAction.Text = SS.ExcStr; }
private void ShowSectionsNew(string currProposal) { ViewProposal = currProposal; ExPanel pnlInfoNew = pnlCurrent.GetControlByName("pnlInfoNew") as ExPanel; pnlInfoNew.Controls.Clear(); //Нужно дойти до контроля расходной string DocType; string IDCB = ""; //ИД контроля расходной List <string> SubjectDocs; if (!SS.GetSubjectDocs(currProposal, "Счет", out SubjectDocs)) { return; } //Если пустой, то это счет, а не заявка if (SubjectDocs.Count == 0) { return; } //Не пустой, ищем контроль расходной или адрес набор bool IsFound = false; foreach (string CurrentIDDoc in SubjectDocs) { if (SS.GetDocType(CurrentIDDoc, out DocType)) { if (DocType == "КонтрольРасходной") { IDCB = CurrentIDDoc; IsFound = true; break; //ПОЕХАЛИ ДАЛЬШЕ } } else { return; } } if (!IsFound) { return; } Dictionary <string, object> DaemondData = new Dictionary <string, object>(); if (!SS.GetDoc(currProposal, out DaemondData)) { return; } Dictionary <string, object> DataMap; List <string> CCListID; //теперь получаем список всех контролей набора if (!SS.GetCCListNew(IDCB, out CCListID, out DataMap)) { return; } //Тяжелая работа по выводу данных List <string> FieldList = new List <string>(); Dictionary <string, object> DataMapRead; FieldList.Add("DESCR"); const int FieldOnRow = 8; //Число полей на одну строку одного сектора Label[,] Lbl = new Label[FieldOnRow, CCListID.Count]; int i = 0; int dY; //Это смещение, м/у строками int FirstIndex = -1; //Индекс строки первой комплектации int LastIndex = -1; //Индекс строки последней комплектации DateTime MinDate = new DateTime(2020, 01, 01); //Минимальная дата DateTime MaxDate = new DateTime(1753, 01, 01); //Максимальная дата int MinTime = 86400; //Минимальное время int MaxTime = 0; //Максимальное время bool AllComplete = true; //Последнюю комплектацию не имеет смысла считать, если где-то, что-то не скомплектовано foreach (string ID in CCListID) { dY = i * 30; //Создадим метки для этого сектора for (int j = 0; j < FieldOnRow; j++) { Lbl[j, i] = new Label(); Lbl[j, i].Name = "_dyn" + j.ToString() + i.ToString(); Lbl[j, i].BackColor = Color.White; pnlInfoNew.Controls.Add(Lbl[j, i]); } //ОПРЕДЕЛИМСЯ С СОДЕРЖАНИЕМ И ЦВЕТАМИ ИСХОДЯ ИЗ СОСТОЯНИЯ //Ниже используются запросы к БД, не очень красиво, но в целях оптимизации (т.к. заглядывают сюда не всякий раз) //Поэтому, если что-то не срастается, то выводим пустые поля, там где несраслось if (SQL1S.IsVoidDate((DateTime)DataMap[ID + ".КонтрольНабора.Дата1"])) { //ОЖИДАНИЕ НАБОРА Lbl[1, i].Text = "."; Lbl[2, i].Text = "<< ожидание >>"; Lbl[3, i].Text = "__:__"; Lbl[4, i].Text = " неопределен"; Lbl[5, i].Text = "__:__"; //Цвета Lbl[0, i].ForeColor = Color.Red; Lbl[1, i].ForeColor = Color.Red; Lbl[2, i].ForeColor = Color.LightPink; Lbl[3, i].ForeColor = Color.LightGray; Lbl[4, i].ForeColor = Color.LightGray; Lbl[5, i].ForeColor = Color.LightGray; AllComplete = false; } else if (SQL1S.IsVoidDate((DateTime)DataMap[ID + ".КонтрольНабора.Дата2"])) { //В НАБОРЕ Lbl[1, i].Text = "..."; if (!SS.GetSCData(DataMap[ID + ".КонтрольНабора.Наборщик"].ToString(), "Сотрудники", FieldList, out DataMapRead, true)) { Lbl[2, i].Text = "< не задан >"; } else { Lbl[2, i].Text = Helper.GetShortFIO(DataMapRead["DESCR"].ToString()); } Lbl[3, i].Text = "(" + ((DateTime)DataMap[ID + ".КонтрольНабора.Дата1"]).ToString("dd.MM") + ") " + Helper.SecondToString((int)(decimal)DataMap[ID + ".КонтрольНабора.Время1"]) + " - ..."; Lbl[4, i].Text = " неопределен"; Lbl[5, i].Text = "__:__"; //Цвета Lbl[0, i].ForeColor = Color.Red; Lbl[1, i].ForeColor = Color.Red; Lbl[2, i].ForeColor = Color.Red; Lbl[3, i].ForeColor = Color.Red; Lbl[4, i].ForeColor = Color.LightGray; Lbl[5, i].ForeColor = Color.LightGray; AllComplete = false; } else if (SQL1S.IsVoidDate((DateTime)DataMap[ID + ".КонтрольНабора.Дата3"])) { //НАБРАНА Lbl[1, i].Text = "--"; if (!SS.GetSCData(DataMap[ID + ".КонтрольНабора.Наборщик"].ToString(), "Сотрудники", FieldList, out DataMapRead, true)) { Lbl[2, i].Text = "< не задан >"; } else { Lbl[2, i].Text = Helper.GetShortFIO(DataMapRead["DESCR"].ToString()); } Lbl[3, i].Text = "(" + ((DateTime)DataMap[ID + ".КонтрольНабора.Дата2"]).ToString("dd.MM") + ") " + Helper.SecondToString((int)(decimal)DataMap[ID + ".КонтрольНабора.Время1"]) + " - " + Helper.SecondToString((int)(decimal)DataMap[ID + ".КонтрольНабора.Время2"]); Lbl[4, i].Text = "<< ожидание >>"; Lbl[5, i].Text = "__:__"; //Цвета Lbl[0, i].ForeColor = Color.Red; Lbl[1, i].ForeColor = Color.Red; Lbl[2, i].ForeColor = Color.Red; Lbl[3, i].ForeColor = Color.Red; Lbl[4, i].ForeColor = Color.LightPink; Lbl[5, i].ForeColor = Color.LightGray; AllComplete = false; } else { //СКОМПЛЕКТОВАНА DateTime CurrentDate = (DateTime)DataMap[ID + ".КонтрольНабора.Дата3"]; int CurrentTime = (int)(decimal)DataMap[ID + ".КонтрольНабора.Время3"]; //Скорректируем максималный момент комплектации if (AllComplete && CurrentDate > MaxDate) { MaxDate = CurrentDate; MaxTime = CurrentTime; LastIndex = i; } else if (AllComplete && CurrentDate == MaxDate && CurrentTime > MaxTime) { MaxTime = CurrentTime; LastIndex = i; } //Скорректируем максималный момент комплектации if (CurrentDate < MinDate) { MinDate = CurrentDate; MinTime = CurrentTime; FirstIndex = i; } else if (CurrentDate == MinDate && CurrentTime < MinTime) { MinTime = CurrentTime; FirstIndex = i; } //собственно рисовалка Lbl[1, i].Text = "+"; if (!SS.GetSCData(DataMap[ID + ".КонтрольНабора.Наборщик"].ToString(), "Сотрудники", FieldList, out DataMapRead, true)) { Lbl[2, i].Text = "< не задан >"; } else { Lbl[2, i].Text = Helper.GetShortFIO(DataMapRead["DESCR"].ToString()); } Lbl[3, i].Text = "(" + ((DateTime)DataMap[ID + ".КонтрольНабора.Дата2"]).ToString("dd.MM") + ") " + Helper.SecondToString((int)(decimal)DataMap[ID + ".КонтрольНабора.Время1"]) + " - " + Helper.SecondToString((int)(decimal)DataMap[ID + ".КонтрольНабора.Время2"]); if (!SS.GetSCData(DataMap[ID + ".КонтрольНабора.Комплектовщик"].ToString(), "Сотрудники", FieldList, out DataMapRead, true)) { Lbl[4, i].Text = "< не задан >"; } else { Lbl[4, i].Text = Helper.GetShortFIO(DataMapRead["DESCR"].ToString()); } Lbl[5, i].Text = "(" + CurrentDate.ToString("dd.MM") + ") " + Helper.SecondToString(CurrentTime); //Цвета Lbl[0, i].ForeColor = Color.Black; Lbl[1, i].ForeColor = Color.Black; Lbl[2, i].ForeColor = Color.Black; Lbl[3, i].ForeColor = Color.Black; Lbl[4, i].ForeColor = Color.Black; Lbl[5, i].ForeColor = Color.Black; } //Заголовок Lbl[0, i].Font = FontTahoma14Bold; Lbl[0, i].TextAlign = ContentAlignment.TopCenter; Lbl[0, i].Location = new Point(3, 3 + dY); Lbl[0, i].Size = new Size(50, 27); if (DataMap[ID + ".КонтрольНабора.Сектор"].ToString() == SQL1S.GetVoidID()) { //Пустая Lbl[0, i].Text = "Пу"; } else { Lbl[0, i].Text = DataMap[DataMap[ID + ".КонтрольНабора.Сектор"] + ".@Сектор.Имя"].ToString().Trim(); } Lbl[0, i].Text += "-" + DataMap[ID + ".КонтрольНабора.НомерЛиста"]; //Мест погружено Lbl[1, i].Font = FontTahoma9Bold; Lbl[1, i].TextAlign = ContentAlignment.TopRight; Lbl[1, i].Location = new Point(56, 3 + dY); Lbl[1, i].Size = new Size(25, 13); //Мест всего Lbl[7, i].Font = FontTahoma9Bold; Lbl[7, i].TextAlign = ContentAlignment.TopRight; Lbl[7, i].Location = new Point(56, 17 + dY); Lbl[7, i].Size = new Size(25, 13); //Наборщик Lbl[2, i].Font = FontTahoma9Regular; Lbl[2, i].TextAlign = ContentAlignment.TopLeft; Lbl[2, i].Location = new Point(84, 3 + dY); Lbl[2, i].Size = new Size(112, 13); //Время наборщика Lbl[3, i].Font = FontTahoma8Regular; Lbl[3, i].TextAlign = ContentAlignment.TopLeft; Lbl[3, i].Location = new Point(199, 3 + dY); Lbl[3, i].Size = new Size(110, 13); //Комплектовщик Lbl[4, i].Font = FontTahoma9Regular; Lbl[4, i].TextAlign = ContentAlignment.TopLeft; Lbl[4, i].Location = new Point(84, 17 + dY); Lbl[4, i].Size = new Size(112, 13); //Время комплектовщика Lbl[5, i].Font = FontTahoma8Regular; Lbl[5, i].TextAlign = ContentAlignment.TopLeft; Lbl[5, i].Location = new Point(199, 17 + dY); Lbl[5, i].Size = new Size(77, 13); //Количество строк Lbl[6, i].Font = FontTahoma8Bold; Lbl[6, i].TextAlign = ContentAlignment.TopRight; Lbl[6, i].Location = new Point(279, 17 + dY); Lbl[6, i].Size = new Size(30, 13); Lbl[6, i].Text = DataMap[ID + ".КонтрольНабора.КолСтрок"].ToString(); Lbl[6, i].ForeColor = Color.Navy; //Места Lbl[7, i].Text = DataMap[ID + ".КонтрольНабора.КолМест"].ToString(); Lbl[1, i].Text = DataMap[ID + ".КонтрольНабора.МестФакт"].ToString(); if (DataMap[ID + ".КонтрольНабора.КолМест"].ToString() != DataMap[ID + ".КонтрольНабора.МестФакт"].ToString()) { Lbl[1, i].ForeColor = Color.Red; } i++; } //Подкрасим первую и последнюю комплектации if (FirstIndex >= 0) { Lbl[1, FirstIndex].BackColor = Color.PaleGoldenrod; Lbl[7, FirstIndex].BackColor = Color.PaleGoldenrod; } if (AllComplete && LastIndex >= 0) { Lbl[1, LastIndex].BackColor = Color.PaleGreen; Lbl[7, LastIndex].BackColor = Color.PaleGreen; } pnlInfoNew.BringToFront(); //Заголовок с информацией по заявке if (DaemondData.Count > 0) { string txt = DaemondData["НомерДок"].ToString() + " (" + ((DateTime)DaemondData["ДатаДок"]).ToString("dd.MM.yy") + ")"; //Label lblDescr = pnlCurrent.GetLabelByName("lblDescr"); //lblDescr.Text = txt; } }