public override void BuildReport() { TenantDAO tenantDAO = new TenantDAO(sqlConnection); Tenant tenant = tenantDAO.GetTenant(tenantId); // Obtem a lista de documentos considerando o filtro (faixa de datas, usuário, impressora) CopiedDocumentDAO copiedDocumentDAO = new CopiedDocumentDAO(sqlConnection); List <Object> copiedDocuments = copiedDocumentDAO.GetCopiedDocuments(tenantId, startDate, endDate, userId, printerId); reportBuilder.OpenMedia(reportMedia); // Abre a mídia para o output do relatório Dictionary <String, Object> reportFilter = new Dictionary <String, Object>(); reportFilter.Add("tenantId", tenantId); reportFilter.Add("startDate", startDate); reportFilter.Add("endDate", endDate); reportFilter.Add("userId", userId); reportFilter.Add("printerId", printerId); reportBuilder.SetReportHeadings("Relatório de Cópias", tenant.alias, reportFilter); String[] columnNames = new String[] { "Data/Hora", "Usuário", "Copiadora", "Páginas" }; int[] columnWidths = new int[] { 45, 35, 40, 15 }; int rowCount = copiedDocuments.Count; reportBuilder.CreateDataTable(columnNames, columnWidths, rowCount); if (reportBuilder.IsNavigable()) { Dictionary <String, Object> exportOptions = ExportFormatContext.GetExportOptions(tenantId, sqlConnection); reportBuilder.SetNavigationData(this.GetType().Name, rowCount, exportOptions); // neste caso recordCount = rowCount reportBuilder.SetReportPage(action, currentPage); } for (int rowIndex = 0; rowIndex < rowCount; rowIndex++) { CopiedDocument copiedDocument = (CopiedDocument)copiedDocuments[rowIndex]; ReportCell[] cells = new ReportCell[] { new ReportCell(copiedDocument.jobTime.ToString()), new ReportCell(copiedDocument.userName), new ReportCell(copiedDocument.printerName), new ReportCell(copiedDocument.pageCount) }; reportBuilder.InsertRow(rowIndex, cells); } reportBuilder.CloseMedia(); }
/// <summary> /// Verifica se registros de log correspondentes ao período já foram inseridos no /// banco de dados /// </summary> public Boolean FileImported(DateRange dateRange) { Boolean imported = false; // Verifica se a faixa de datas foi fornecida if (dateRange == null) { return(false); } // Verifica se existe alguma impressão no intervalo de datas CopiedDocumentDAO copiedDocumentDAO = new CopiedDocumentDAO(sqlConnection); List <Object> copiedDocuments = copiedDocumentDAO.GetCopiedDocuments(tenantId, dateRange.GetFirstDay(), dateRange.GetLastDay(), null, null); if (copiedDocuments.Count > 0) { NotifyListener("Já existiam registros inseridos anteriormente para a data especificada."); imported = true; } return(imported); }
public int LogCopiedDocuments(List <CopiedDocument> copiedDocuments) { if (copiedDocuments == null) { return(0); } if (copiedDocuments.Count == 0) { return(0); } StartDBAccess(); int tenantId = copiedDocuments[0].tenantId; DateTime startDate = DateTime.Now.Date; DateTime endDate = startDate.Add(new TimeSpan(23, 59, 59)); JobDataDependency jobDataDependency = new JobDataDependency(copiedDocuments, dataAccess.GetConnection(), tenantId); jobDataDependency.CreateDataDependency(); CopiedDocumentDAO copiedDocumentDAO = new CopiedDocumentDAO(dataAccess.GetConnection()); List <Object> alreadyInserted = copiedDocumentDAO.GetCopiedDocuments(tenantId, startDate, endDate, null, null); int rowCount = 0; foreach (CopiedDocument copiedDocument in copiedDocuments) { currentJob = copiedDocument; if (alreadyInserted.Find(CheckCopiedDocument) == null) // Verifica se o registro já existe { // Caso não exista insere no banco copiedDocumentDAO.InsertCopiedDocument(copiedDocument); rowCount++; } } FinishDBAccess(); return(rowCount); }