private void LoadReport() { Guid persId = Guid.Empty; if (cbPersons.SelectedValue != null) persId = (Guid) cbPersons.SelectedValue; //if (persId == Guid.Empty) // return; Guid typeId = Guid.Empty; if (cbWorkTypes.SelectedValue!=null) typeId = (Guid)cbWorkTypes.SelectedValue; MiniSplash_TF sp0 = new MiniSplash_TF(Resources.load1) { Text = @"Загрузка отчета", StatusText = @"Загрузка данных отчета" }; sp0.WorkingFunction = () => { InstallersWorks_Entities context = new InstallersWorks_Entities(); var data = context.InstallersWorks_Works .Include(i => i.InstallersWorks_WorkTypes) .Include(i => i.InstallersWorks_Personalities); if (persId != Guid.Empty) data = data.Where(w => w.WorkPersonId == persId); if (typeId != Guid.Empty) data = data.Where(w => w.WorkTypeId == typeId); 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); _dataSet.PerPersonDataSimple.Clear(); foreach (InstallersWorks_Works works in data) { ReportDataSet.PerPersonDataSimpleRow newRow = _dataSet.PerPersonDataSimple.NewPerPersonDataSimpleRow(); newRow.Id = works.Id; newRow.Person = works.InstallersWorks_Personalities.ShortFullName; newRow.WorkDate = works.WorkDate; newRow.WorkType = works.InstallersWorks_WorkTypes.TypeDescription; newRow.Description = works.Event + works.AssNomer + Environment.NewLine + works.Address; _dataSet.PerPersonDataSimple.AddPerPersonDataSimpleRow(newRow); } Extensions.RunActionInGUIThread(() => { sp0.StatusText = @"Обновление отчета"; reportViewer.Reset(); reportViewer.LocalReport.DataSources.Clear(); reportViewer.LocalReport.DataSources.Add(new ReportDataSource("DataSet", (DataTable) _dataSet.PerPersonDataSimple)); reportViewer.LocalReport.ReportEmbeddedResource = "InstallersWork.Reports.PerPersons.PerPersonPeportSimple.rdlc"; ReportParameter param2 = new ReportParameter("ReportHeader1", "Отчет о работах сотрудников за период"); ReportParameter param1 = new ReportParameter("ReportHeaderField1", "с " + dpFrom.Value.ToLongDateString() + " по " + dpTo.Value.ToLongDateString()); reportViewer.LocalReport.SetParameters(new ReportParameter[] { param1, param2 }); reportViewer.RefreshReport(); }, _uiScheduler); }; sp0.ShowDialog(this); }
private void DutyForm_Shown(object sender, EventArgs e) { MiniSplash_TF sp0 = new MiniSplash_TF(Resources.load1) { Text = @"Загрузка данных", StatusText = @"Загрузка данных" }; sp0.WorkingFunction = () => { var entities = new InstallersWorks_Entities(); Extensions.RunActionInGUIThread(() => { tbReceivers.Text = !string.IsNullOrEmpty(Settings.Default.DutyReceiversList) ? Settings.Default.DutyReceiversList : Settings.Default.DefaultDutyReceiversList; cbPersonalities.DataSource = entities.InstallersWorks_Personalities.OrderBy(o => o.PersonSurname).ToList(); },_uiScheduler); }; sp0.ShowDialog(this); tbReceivers.Enabled = tbSetDefault.Enabled = btSend.Enabled=btAddDuty.Enabled= SharedAppData.IsFlagSet(ObjectAccessId, RightsFlags.Change); }
public HistoryStore(bool historyEnable = true) { _store = new InstallersWorks_Entities(); _historyEnable = historyEnable; }
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; }
private void PerPersonsSelect_Shown(object sender, EventArgs e) { cbPeriod.SelectedIndex = 3; cbDetails.SelectedIndex = Properties.Settings.Default.PerAbonentDetailsLevel; MiniSplash_TF sp0 = new MiniSplash_TF(Resources.load1) { Text = @"Загрузка отчета", StatusText = @"Загрузка общих данных" }; sp0.WorkingFunction = () => { InstallersWorks_Entities context = new InstallersWorks_Entities(); context.Configuration.ProxyCreationEnabled = false; context.Configuration.LazyLoadingEnabled= false; var types = context.InstallersWorks_WorkTypes.OrderBy(o => o.TypeDescription).AsNoTracking().ToList(); context.Configuration.ProxyCreationEnabled = true; context.Configuration.LazyLoadingEnabled = true; types.Insert(0, new InstallersWorks_WorkTypes() { Id = Guid.Empty, TypeDescription = "Все типы" }); Extensions.RunActionInGUIThread(() => { cbWorkTypes.DisplayMember = "TypeDescription"; cbWorkTypes.ValueMember = "Id"; cbWorkTypes.DataSource = types.ToList(); }, _uiScheduler); }; sp0.ShowDialog(this); cbWorkTypes.SelectedValue = Guid.Empty; btSendReport.Enabled = SharedAppData.IsAccesible(ReportSenderForm.ObjectAccessId); LoadReport(); }
private void LoadReport() { Guid typeId = Guid.Empty; if (cbWorkTypes.SelectedValue!=null) typeId = (Guid)cbWorkTypes.SelectedValue; MiniSplash_TF sp0 = new MiniSplash_TF(Resources.load1) { Text = @"Загрузка отчета", StatusText = @"Загрузка данных отчета" }; sp0.WorkingFunction = () => { InstallersWorks_Entities context = new InstallersWorks_Entities(); var data = context.InstallersWorks_Works .Include(i => i.InstallersWorks_WorkTypes) .Include(i => i.InstallersWorks_Personalities) .Where(w => w.Cable > 0); if (typeId != Guid.Empty) data = data.Where(w => w.WorkTypeId == typeId); if (dpFrom.Enabled) data = data .Where(w => DbFunctions.TruncateTime(w.WorkDate) >= DbFunctions.TruncateTime(dpFrom.Value) & DbFunctions.TruncateTime(w.WorkDate) <= DbFunctions.TruncateTime(dpTo.Value)) .OrderByDescending(o => o.WorkDate); var listData = data.ToList(); var groups = listData.GroupBy(g => g.WorkId); _dataSet.CableData.Clear(); foreach (var grpCable in groups) { var defaultWork = grpCable.FirstOrDefault(); if (defaultWork==default(InstallersWorks_Works)) throw new InvalidDataException(); ReportDataSet.CableDataRow newRow = _dataSet.CableData.NewCableDataRow(); newRow.Id = defaultWork.Id; newRow.Date = defaultWork.WorkDate.Date; newRow.Address = defaultWork.Address; newRow.WorkType = defaultWork.InstallersWorks_WorkTypes.TypeDescription; newRow.Description = !string.IsNullOrEmpty(defaultWork.AssNomer) ? defaultWork.AssNomer : defaultWork.Event; newRow.Length = defaultWork.Cable.HasValue ? defaultWork.Cable.Value : 0; _dataSet.CableData.AddCableDataRow(newRow); } Extensions.RunActionInGUIThread(() => { sp0.StatusText = @"Обновление отчета"; reportViewer.Reset(); reportViewer.LocalReport.DataSources.Clear(); reportViewer.LocalReport.DataSources.Add(new ReportDataSource("DataSet", (DataTable)_dataSet.CableData)); reportViewer.LocalReport.ReportEmbeddedResource = "InstallersWork.Reports.Cable.CableSimple.rdlc"; List<ReportParameter> repParams = new List<ReportParameter> { new ReportParameter("CableTotalParam",tbCableTotal.Text), new ReportParameter("ReportHeader1","Отчет о затратах по кабелю за период"), new ReportParameter("ReportHeaderField1", "с " + dpFrom.Value.ToShortDateString() + " по " + dpTo.Value.ToShortDateString()) }; if ((Guid) cbWorkTypes.SelectedValue != Guid.Empty) { var desc = cbWorkTypes.SelectedItem as InstallersWorks_WorkTypes; if (desc==null) throw new InvalidCastException(); repParams.Add(new ReportParameter("ReportHeader2", "по типу " + desc.TypeDescription)); repParams.Add(new ReportParameter("ReportHeaderField2", desc.TypeDescription)); } reportViewer.LocalReport.SetParameters(repParams); reportViewer.RefreshReport(); }, _uiScheduler); }; sp0.ShowDialog(this); }
private void LoadReport() { Guid typeId = Guid.Empty; if (cbWorkTypes.SelectedValue!=null) typeId = (Guid)cbWorkTypes.SelectedValue; MiniSplash_TF sp0 = new MiniSplash_TF(Resources.load1) { Text = @"Загрузка отчета", StatusText = @"Загрузка данных отчета" }; sp0.WorkingFunction = () => { InstallersWorks_Entities context = new InstallersWorks_Entities(); var data = context.InstallersWorks_Works .Include(i => i.InstallersWorks_WorkTypes) .Include(i => i.InstallersWorks_Personalities); if (typeId != Guid.Empty) data = data.Where(w => w.WorkTypeId == typeId); DateTime startDate; DateTime endDate; if (dpFrom.Enabled) { startDate = dpFrom.Value; endDate = dpTo.Value; } else { startDate = context.InstallersWorks_Works.Min(m => m.WorkDate); endDate = context.InstallersWorks_Works.Max(m => m.WorkDate); } data = data .Where(w => DbFunctions.TruncateTime(w.WorkDate) >= DbFunctions.TruncateTime(startDate) & DbFunctions.TruncateTime(w.WorkDate) <= DbFunctions.TruncateTime(endDate)) .OrderByDescending(o => o.WorkDate); var listData = data.ToList(); var groups = listData.GroupBy(g => g.WorkId).Select(fg => new { fg.Key, Works = fg.OrderBy(o => o.InstallersWorks_Personalities != null ? o.InstallersWorks_Personalities.PersonSurname : "Сотрудник удален") }); _dataSet.WorksData.Clear(); foreach (var grpCable in groups) { var defaultWork = grpCable.Works.FirstOrDefault(); if (defaultWork == default(InstallersWorks_Works)) throw new InvalidDataException(); ReportDataSet.WorksDataRow newRow = _dataSet.WorksData.NewWorksDataRow(); string personalDescription = string.Empty; foreach (var wrk in grpCable.Works) { if (personalDescription != string.Empty) personalDescription += " / "; personalDescription += wrk.InstallersWorks_Personalities != null ? wrk.InstallersWorks_Personalities.PersonSurname : "Сотрудник удален"; } newRow.Id = defaultWork.Id; newRow.Persons = personalDescription; newRow.WorkDate = defaultWork.WorkDate.Date; newRow.WorkDescription = defaultWork.Event + defaultWork.AssNomer + Environment.NewLine + defaultWork.Address; newRow.WorkType = defaultWork.InstallersWorks_WorkTypes.TypeDescription; newRow.Mileage = defaultWork.Mileage.HasValue ? defaultWork.Mileage.Value : 0; newRow.Comment = defaultWork.Comment; _dataSet.WorksData.AddWorksDataRow(newRow); } Extensions.RunActionInGUIThread(() => { sp0.StatusText = @"Обновление отчета"; reportViewer.Reset(); reportViewer.LocalReport.DataSources.Clear(); reportViewer.LocalReport.DataSources.Add(new ReportDataSource("DataSet", (DataTable)_dataSet.WorksData)); reportViewer.LocalReport.ReportEmbeddedResource = "InstallersWork.Reports.WorkDays.WorksTotalCutHeader.rdlc"; List<ReportParameter> repParams = new List<ReportParameter> { new ReportParameter("ReportHeader1","Отчет о выполненных работах с " + startDate.ToLongDateString() + " по " + endDate.ToLongDateString()), }; if ((Guid) cbWorkTypes.SelectedValue != Guid.Empty) { var desc = cbWorkTypes.SelectedItem as InstallersWorks_WorkTypes; if (desc==null) throw new InvalidCastException(); repParams.Add(new ReportParameter("ReportHeaderField1", "по типу " + desc.TypeDescription)); //reportViewer.LocalReport.ReportEmbeddedResource = "InstallersWork.Reports.WorkDays.WorksTotal.rdlc"; //repParams.Add(new ReportParameter("ReportHeader2", "по типу")); //repParams.Add(new ReportParameter("ReportHeaderField2", desc.TypeDescription)); } reportViewer.LocalReport.SetParameters(repParams); reportViewer.RefreshReport(); }, _uiScheduler); }; sp0.ShowDialog(this); }
public MainDataContexts() { IWEntities = new InstallersWorks_Entities(); // { Database = { Log = Console.WriteLine } }; }