public void ClientAddressesMonitor() { var filter = new ClientAddressFilter(); BindObjectInstance(filter, IsPost ? ParamStore.Form : ParamStore.QueryString, "filter", AutoLoadBehavior.NullIfInvalidKey); if(filter.Session == null) filter.Session = DbSession; PropertyBag["Clients"] = filter.Find(); PropertyBag["filter"] = filter; }
public void ClientAddressesMonitorToExcel([DataBind("filter")] ClientAddressFilter filter) { CancelLayout(); CancelView(); if(filter.Session == null) filter.Session = DbSession; var result = ExportModel.GetClientAddressesMonitor(filter); this.RenderFile("Клиенты и адреса в регионе, по которым не принимаются накладные.xls", result); }
public void ClientAddressFilterTest() { var filter = new ClientAddressFilter { Period = new DatePeriod(DateTime.Now.AddDays(-14), DateTime.Now) }; filter.Session = session; var results = filter.Find(); Assert.That(results.Count(t => t.ClientId == _client.Id), Is.GreaterThan(0)); }
public static byte[] GetClientAddressesMonitor(ClientAddressFilter filter) { var book = new HSSFWorkbook(); var sheet = book.CreateSheet("Клиенты и адреса в регионе, по которым не принимаются накладные"); var row = 0; var headerStyle = NPOIExcelHelper.GetHeaderStype(book); var dataStyle = NPOIExcelHelper.GetDataStyle(book); var sheetRow = sheet.CreateRow(row++); NPOIExcelHelper.FillNewCell(sheetRow, 0, "Клиенты и адреса в регионе, по которым не принимаются накладные", headerStyle); sheetRow = sheet.CreateRow(row++); NPOIExcelHelper.FillNewCell(sheetRow, 0, String.Format("Период: с {0} по {1}", filter.Period.Begin.ToString("dd.MM.yyyy"), filter.Period.End.ToString("dd.MM.yyyy")), book.CreateCellStyle()); sheetRow = sheet.CreateRow(row++); NPOIExcelHelper.FillNewCell(sheetRow, 0, String.Format("Дата подготовки отчета: {0}", DateTime.Now), book.CreateCellStyle()); sheetRow = sheet.CreateRow(row++); NPOIExcelHelper.FillNewCell(sheetRow, 0, String.Format("Регион: {0}", filter.Region == null ? "Все" : filter.Region.Name), book.CreateCellStyle()); sheetRow = sheet.CreateRow(row++); NPOIExcelHelper.FillNewCell(sheetRow, 0, String.Format("Клиент: {0}", filter.ClientText), book.CreateCellStyle()); sheet.CreateRow(row++); var tableHeaderRow = row; sheetRow = sheet.CreateRow(row++); NPOIExcelHelper.FillNewCell(sheetRow, 0, "Код клиента", headerStyle); NPOIExcelHelper.FillNewCell(sheetRow, 1, "Наименование клиента", headerStyle); NPOIExcelHelper.FillNewCell(sheetRow, 2, "Регион", headerStyle); NPOIExcelHelper.FillNewCell(sheetRow, 3, "Код адреса", headerStyle); NPOIExcelHelper.FillNewCell(sheetRow, 4, "Адрес", headerStyle); NPOIExcelHelper.FillNewCell(sheetRow, 5, "Код поставщика", headerStyle); NPOIExcelHelper.FillNewCell(sheetRow, 6, "Наименование поставщика", headerStyle); NPOIExcelHelper.FillNewCell(sheetRow, 7, "Количество непринятых накладных", headerStyle); NPOIExcelHelper.FillNewCell(sheetRow, 8, "Причина", headerStyle); var items = filter.Find(true); foreach (var item in items) { sheetRow = sheet.CreateRow(row++); NPOIExcelHelper.FillNewCell(sheetRow, 0, item.ClientId.ToString(), dataStyle); NPOIExcelHelper.FillNewCell(sheetRow, 1, item.ClientName, dataStyle); NPOIExcelHelper.FillNewCell(sheetRow, 2, item.RegionName, dataStyle); NPOIExcelHelper.FillNewCell(sheetRow, 3, item.AddressId.ToString(), dataStyle); NPOIExcelHelper.FillNewCell(sheetRow, 4, item.AddressName, dataStyle); NPOIExcelHelper.FillNewCell(sheetRow, 5, item.SupplierId.ToString(), dataStyle); NPOIExcelHelper.FillNewCell(sheetRow, 6, item.SupplierName, dataStyle); NPOIExcelHelper.FillNewCell(sheetRow, 7, item.Count.ToString(), dataStyle); NPOIExcelHelper.FillNewCell(sheetRow, 8, item.RejectReasonName, dataStyle); } // добавляем автофильтр sheet.SetAutoFilter(new CellRangeAddress(tableHeaderRow, row, 0, 8)); sheet.AddMergedRegion(new CellRangeAddress(0, 0, 0, 8)); // устанавливаем ширину столбцов for (int i = 0; i < 9; i++) { sheet.SetColumnWidth(i, sheet.GetColumnWidth(i) * 2); } sheet.SetColumnWidth(4, sheet.GetColumnWidth(4) * 3); sheet.SetColumnWidth(8, sheet.GetColumnWidth(8) * 3); var buffer = new MemoryStream(); book.Write(buffer); return(buffer.ToArray()); }