Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Âncora
_Toc377992304
_Toc377992304
API de comunicação com o RM Reports

 

 

Projeto/Versão: RM Reports / 11.80.40

Data Especificação: 29/06/15

Erlon César – Framework BH

 

...

Nome do parâmetro

Tipo

Descrição

ParametersReport

Lista

Parâmetros criados no relatório

ParametersProvider

Lista

Parâmetros de provider usados no provider do relatório

FiltersReport

Lista

Filtros disponíveis no relatório.

FiltersFormulas

MemoryStream

Filtros de fórmula disponíveis no relatório

DataSourceSchema

MemoryStream

Schema da fonte de dados do relatório.

MemberInfo

Membros

Informações dos membros de dados do report.

 

ExecuteReport: principal método da API. Ele executa o relatório e retorna informações da execução através do objeto RptExecutorReturn.

...

Nome do parâmetro

Tipo

Descrição

codColigada

int

Código da coligada

idReport

int

Identificador do relatório

codUsuario

String

Código do usuário

params

RptExecutorPar

Contem características de execução do relatório

 

Retorno:

Tipo

Descrição

RptExecutorReturn

Características de retorno de execução do relatório

...

Nome do parâmetro

Tipo

Descrição

CallBackExecutionProgress

Action<>

Comunicação de incremento de barra de progresso.

CallBackMessageExecution

Action<>

Envio de mensagens do processo de execução.

ParametersReport

Lista

Parâmetros do relatório

ParametersProvider

Lista

Parâmetros do provider

FiltersReport

Lista

Filtros do relatório

FiltersFormula

Lista

Filtros de formula

ExportFileType

RptExportFileType

Tipo de exportação do relatório após sua geração. São eles: CSV, JPEG, HTML, XLSX, MHT, PDF, RTF, TXT

GenerateDiagnostics

bool

Informa se é para gerar as informações de diagnóstico da execução do relatório.

GenerateType

RptReportGenerateType

Forma de geração do relatório.

StopExecutionOnError

bool

Finaliza ou não a execução do relatório em caso de erro. Todas as informações de erros são gravadas no diagnóstico de execução se o mesmo for "true".

MaxRowNumberPrint

Int

Número máximo de linhas a serem impressas. O default 0 indica que é para imprimir todas as linhas.

ContextStr

String

Objeto RMSContext na forma de string.

DataSourceExternal

DataSet

DataSet preenchido com informações a serem usadas na geração do relatório.

ReturnLayout

bool

Informa se é para retornar o layout do relatório para rotina chamadora.

AddGroupFields

Lista

Adiciona groupFields antes da execução

ClearAllGroupFields

Lista

Permite limpar todos os groupFields no relatório antes da execução

RemoveBands

Lista

Bandas a serem removidas antes da execução.

DataMemberExternalMain

String

Nome do dataMember principal

StartPageNumber

int

Número inicial da página em caso utilização do controle de numeração de página customizada.

 

ExecutePartialReport: Executa o relatório de forma parcial. Utilizado para execução de grandes relatórios e passando a fonte de dados externamente. Resolve o problema de estouro de memória da DevExpress.

...

Tipo

Descrição

RptExecutorPartialReturn

Características de retorno de execução parcial do relatório

 

RptExecutorPartialReturn

Nome do parâmetro

Tipo

Descrição

PrintReport

MemoryStream

Resultado final da execução do relatório. O conteúdo dessa propriedade pode ser enviado para serviços de impressão.

...

RptReport report;
DataTable reporttable = RptUtilsData.LoadDataTableReport(codColRel, IdRel);
report = RptUtilsData.LoadReport(reporttable.Rows[0], this.parameters.Context.CodUsuario);
string filter = string.Format("TMOV.CODCOLIGADA = {0} AND TMOV.IDMOV = {1}", CodColigada, IdMov);
report.FilterSQLExpression = filter;
report.PreviewRowCount = 0;
report.RequestParameters = false;
report.CreateDocument();
return stream.ToArray();
Código depois
//Instancia a classe RptExecutorServer reponsável em gerar o relatório do server.
IRptExecutor executorServer = RM.Lib.RMSBroker.CreateServer<IRptExecutor>("RptExecutorServer");
//Recupera as informações do report. ex: filtros do report, parametros do report.
RptReportInfo repInfo = executorServer.GetReportInfo(codColRel, IdRel, this.parameters.Context.CodUsuario);
//Recupera o objeto que representa o filtro principal do report.
//Para isso foi utlizado o Helper "RptReportInfoHelper" que possui uma série de metodos que ajuda manipular
//o objeto RptReportInfo.
RptFilterReportPar mainFilter = RptReportInfoHelper.GetMainFilter(repInfo);
//Configura o filtro necessário.
mainFilter.Value = string.Format("TMOV.CODCOLIGADA = {0} AND TMOV.IDMOV = {1}", CodColigada, IdMov);
//Instancia a classe de parametros do método.
RptExecutorPar parms = new RptExecutorPar();
//Adiciona o filtro para os parametros.
parms.FiltersReport.Add(mainFilter);
//Configura o tipo de exportação.
parms.GenerationType = RptReportGenerationType.File;
parms.ExportFileType = RptExportFileType.PDF;
//Executa o relatório.
RptExecutorReturn result = executorServer.ExecuteReport(codColRel, IdRel, this.parameters.Context.CodUsuario, parms);
//Retorna o relatório gerado para alguma outra rotinal
return result.PrintReport;

Âncora
_GoBack
_GoBack
Utilização da API sem uso do método GetReportInfo:

...

Tipo

Descrição

RptExecutorClientReturn

Características de retorno de execução do relatório no cliente.

 

RptExecutorClientReturn

Nome do parâmetro

Tipo

Descrição

ExecutionStatus

RptExecutionStatus

Status de execução. [Sucesso ou erro]

ExecutionMessage

string

Mensagem de erro (em caso de erro)

PrintReport

MemoryStream

Resultado da execução do relatório. O conteúdo dessa propriedade pode ser enviado para serviços de impressão.

CodRelatorio

string

Código do relatório gerado.

DescRelatorio

string

Descrição do relatório gerado.

LayoutReport

MemoryStream

Layout do relatório

 

Exemplos de uso (lado client):

...


//Instancia o objeto de execução do client.
RptExecutorClient exClient = new RptExecutorClient();
//Instancia o objeto de parametros para ser enviado para a classe de execução do client.
RptExecutorClientParams execParams = new RptExecutorClientParams();
//Adiciona valor para o parâmetro "CODCOLIGADA_N" do provider.
exClient.AddParamsProvider("CODCOLIGADA_N", 1);
//Adiciona valor para o parâmetro "IDCTE_N" do provider.
exClient.AddParamsProvider("IDCTE_N", 5);
//Seta o tipo de exportação para PDF.
execParams.GenerationType = RptGenerationType.File;
execParams.ExportFileType = RptExportFileType.PDF;
//O relatório gerado será mostrado após sua execução.
execParams.ShowReport = true;
//O relatório gerado será mostrado em uma janela modal.
execParams.ShowDialog = true;
//Não mostra a janela para preenchimento dos valroes dos parametros pois os mesmos já foram preenchidos.
execParams.ShowParameters = false;
exClient.ExecuteReport(1, 115, RMSSession.Context.CodUsuario, execParams);

Exemplo2: execução de relatório no "client" passando parâmetro para o report;

...