private void LoadData() { MiniSplash_TF sp0 = new MiniSplash_TF(Resources.load1) { Text = @"Загрузка данных", StatusText = @"Загрузка данных о нарядах" }; sp0.WorkingFunction = () => { _assInfos = new List<AssInfo>(); NumEquipmentsDataContext context = new NumEquipmentsDataContext(); var data = context.NumEquipmentEntities.AssignmentStates .Where(state => state.Created >= DbFunctions.AddDays(dpFrom.Value, -1) & state.Created <= DbFunctions.AddDays(dpTo.Value, 1)) .Join( context.NumEquipmentEntities.Assignments, state => state.Nomer, assignment => assignment.Nomer, (state, assignment) => new { assignment.FirmId, assignment.Customer_Id, assignment.Nomer, assignment.Address, assignment.Kur_desc, assignment.Printed, assignment.Closed, state.Created }); if (cbAssAddData.Checked) { _assInfos = (from ass in data from cust in context.NumEquipmentEntities.Customers .Where(c => c.FirmId == ass.FirmId) .Where(c => c.Customer_id == ass.Customer_Id) .DefaultIfEmpty() select new AssInfo() { Nomer = ass.Nomer, Address = ass.Address, Kur_Desc = ass.Kur_desc, Customer = cust.Title, Created = ass.Created, Closed = ass.Closed.Value, Printed = ass.Printed.Value }).OrderByDescending(o => o.Created).ToList(); } else { _assInfos = data.Select(d => new AssInfo() { Nomer = d.Nomer, Address = d.Address, Kur_Desc = "", Customer ="", Created = d.Created, Closed = d.Closed.Value, Printed = d.Printed.Value }).OrderByDescending(o => o.Created).ToList(); } Extensions.RunActionInGUIThread(() => { SetGridVisualStyle(); gvAssignments.DataSource = _assInfos; }, _uiScheduler); }; sp0.ShowDialog(this); }
private void btSelectAddress_Click(object sender, EventArgs e) { InputSingleLineComboBox inp = new InputSingleLineComboBox { Text = @"Добавление адреса площадки абонента", Label2 = {Text = @"Географический адрес:"}, Label1 = {Text = @"Дополнительные данные:"}, ComboBox1 = { ValueMember = "streetID", DisplayMember = "streetNameUkr", AutoCompleteSource = AutoCompleteSource.ListItems, DropDownStyle = ComboBoxStyle.DropDown, AutoCompleteMode = AutoCompleteMode.Suggest } }; inp.tlMain.SetRow(inp.tlTextBox, 1); inp.tlMain.SetRow(inp.tlComboBox, 0); Cursor = Cursors.WaitCursor; NumEquipmentsDataContext context=new NumEquipmentsDataContext(); List<Street> comboData = context.NumEquipmentEntities.Streets.OrderBy(item => item.streetNameUkr).Where(item => !string.IsNullOrEmpty(item.streetNameUkr)).ToList(); inp.ComboBox1.DataSource = comboData; inp.ActiveControl = inp.ComboBox1; inp.RequireComboBoxValue = true; Cursor = Cursors.Default; if (inp.ShowDialog(this) == DialogResult.OK) { var street = inp.ComboBox1.SelectedItem as Street; string address; if (street != null) { address = street.streetNameUkr + ", " + inp.InputLine1.Text; } else { address = inp.InputLine1.Text; } tbAddress.Text = address; tbAssignment.Text = string.Empty; tbEvent.Text = string.Empty; } }
private void LoadReport() { _dataLoading = true; List<CustomerInfo> customers = new List<CustomerInfo>(); MiniSplash_TF sp0 = new MiniSplash_TF(Resources.load1) { Text = @"Загрузка отчета", StatusText = @"Загрузка данных отчета" }; _watch = null; sp0.WorkingFunction = () => { NumEquipmentsDataContext numEquContext = new NumEquipmentsDataContext(); if (_cachedCustomers==null) _cachedCustomers = numEquContext.NumEquipmentEntities.Customers.Where(cust => cust.Visible.HasValue && cust.Visible.Value).ToList(); InstallersWorks_Entities context = new InstallersWorks_Entities(); var data = context.InstallersWorks_Works .Include(i => i.InstallersWorks_WorkTypes); if (dpFrom.Enabled) data = data .Where(w => DbFunctions.TruncateTime(w.WorkDate) >= DbFunctions.TruncateTime(dpFrom.Value) & DbFunctions.TruncateTime(w.WorkDate) <= DbFunctions.TruncateTime(dpTo.Value)); data = data.OrderByDescending(o => o.WorkDate); EventsDataContext eventsContext = new EventsDataContext(); foreach (var grp in data.GroupBy(work => work.WorkId)) { var firstWork = grp.FirstOrDefault(); if (firstWork == default(InstallersWorks_Works)) { throw new InvalidDataException("getting firstWork"); } if (!string.IsNullOrEmpty(firstWork.Event)) //авария { var workEvent = eventsContext.EventsEntities.Events.FirstOrDefault(e => e.Number.ToString() == firstWork.Event); if (workEvent==null) throw new InvalidDataException("getting workEvent"); int firmId = workEvent.FirmId.HasValue ? workEvent.FirmId.Value : -1; int customerId = workEvent.CustomerId.HasValue ? workEvent.CustomerId.Value : -1; if (firmId<0 | customerId <0) throw new InvalidDataException("getting customer info"); customers.Add(new CustomerInfo() { Address = firstWork.Address, FirmId = firmId, CustomerId = customerId, WorkType = firstWork.InstallersWorks_WorkTypes.TypeDescription }); } else if (!string.IsNullOrEmpty(firstWork.AssNomer)) //наряд { var workAssignment = numEquContext.NumEquipmentEntities.Assignments.SingleOrDefault(a => a.Nomer == firstWork.AssNomer); if (workAssignment == null) throw new InvalidDataException("getting workAssignment"); int firmId = workAssignment.FirmId; int customerId = Convert.ToInt32(workAssignment.Customer_Id); customers.Add(new CustomerInfo() { Address = firstWork.Address, FirmId = firmId, CustomerId = customerId, WorkType = firstWork.InstallersWorks_WorkTypes.TypeDescription }); } else //другое { customers.Add(new CustomerInfo() { Address = firstWork.Address, Title = "Без номера договора", FirmId = -1, CustomerId = -1, WorkType = firstWork.InstallersWorks_WorkTypes.TypeDescription }); } } foreach (CustomerInfo customerInfo in customers) { var cli = customerInfo; if (cli.FirmId != -1) { var ci = _cachedCustomers.SingleOrDefault(c => c.FirmId == cli.FirmId & c.Customer_id.Trim() == cli.CustomerId.ToString()); customerInfo.Title = ci == null ? "Абонент удален" : ci.Title; } } _dataSet.PerAbonentDataSimple.Clear(); foreach (CustomerInfo customerInfo in customers) { ReportDataSet.PerAbonentDataSimpleRow newRow = _dataSet.PerAbonentDataSimple.NewPerAbonentDataSimpleRow(); newRow.Firmid = customerInfo.FirmId; newRow.CustomerId = customerInfo.CustomerId; newRow.Address = customerInfo.Address; newRow.WorkType = customerInfo.WorkType; newRow.Title = customerInfo.Title; _dataSet.PerAbonentDataSimple.AddPerAbonentDataSimpleRow(newRow); } Extensions.RunActionInGUIThread(() => { sp0.StatusText = @"Обновление отчета"; SetReportSource(); }, _uiScheduler); }; sp0.ShowDialog(this); _dataLoading = false; }