Este é um post disponível para assinantes MVPVocê também pode acessá-lo através de Créditos DevMedia. Clique aqui para saber mais!
Video: Alterando Relatórios em RunTime - Curso de Rave Reports - 36
Nessa videoaula trataremos de mais um dos muitos assuntos desconhecidos do Rave Reports. Embora muitos não saibam é possível alterar características dos relatórios presentes em nossos projetos em tempo de execução, qualquer que sejam elas.
Tempo: 17:36 min
Descrição: Nessa videoaula trataremos de mais um dos muitos assuntos desconhecidos do Rave Reports. Embora muitos não saibam é possível alterar características dos relatórios presentes em nossos projetos em tempo de execução, qualquer que sejam elas. Fontes, cores, estilos, imagens tudo pode ser manipulado em runtime permitindo que criemos mecanismos para que os usuários finais das nossas aplicações possam personalizar seus relatórios de acordo com seu desejo. Além disso, é possível que essas alterações sejam persistidas no arquivo de projeto (.rav) para que na próxima execução as alterações sejam carregadas automaticamente.
Tecnologias e Recursos: Rave Reports, RPSystem, RPDefine
Rodrigo Carreiro Mourão
Gestor de TI com especialização em gerência de projetos (PMI) e Governança de TI (ITIL e COBIT) pelo instituto Infnet. Embarcadero MVP e Instrutor certificado pela Borland. Graduando-se em Gestão de TI focada em negócios. Grande entusiasta do desenvolvimento orientado a objetos, padrões de projetos,...
O que você achou deste post?
5 COMENTÁRIOS
Paulo Freire
Cara sou seu fã, deste a época do suporte ao Delphi.Net 2007, rsrsrrss, parabens.
[há +1 mês] -
Responder
[autor]
Rodrigo Carreiro Mourão
Olá Paulo, como vai?
Muito obrigado.
Grande Abraço.
Muito obrigado.
Grande Abraço.
[há +1 mês] -
Responder
Habner Silva
Rodrigo sua didática e conhecimento são excelentes, meus parabéns!
Rodrigo será que você poderia me ajudar? Já vasculhei o google inteiro não encontro uma solução para meu problema... Estou fazendo um relatório de Contas a Pagar sendo que este reletório é agrupado por Emissão e Vencimento... Eu gostaria de modificar este agrupamento dinamicamente modificando o groupkey do band, entretando ele é um TRaveFielName e não consigo fazer funcionar... abaixo minha procedure!
procedure TfrmRelContasPagar.Button1Click(Sender: TObject);
var sRvFormNome, sRvRelNome, sRvRelTitle, sRvRelLine01: string;
RvPage: TRavePage;
RvBand: TRaveBand;
RvFieldName: TRaveFieldName;
begin
sRvFormNome := Screen.ActiveForm.UnitName;
sRvRelNome := 'Report/'+sRvFormNome +'.rav';
sRvRelTitle := 'Vinhesoft Informática - Ltda.';
sRvRelLine01 := 'Relatório das Contas a Pagar em '+edtMoeda.Text+' por Data de '+sListaData;
RM.RvProject1.Close;
RM.RvProject1.ProjectFile := sRvRelNome;
RM.RvProject1.ProjMan.SetParam('p_title' ,sRvRelTitle);
RM.RvProject1.ProjMan.SetParam('p_line01',sRvRelLine01);
RM.RvProject1.ProjMan.SetParam('p_relnam',UpperCase(sRvFormNome));
RvPage := RM.RvProject1.ProjMan.FindRaveComponent('Report1.MainPage',nil) as TRavePage;
RvBand := RM.RvProject1.ProjMan.FindRaveComponent('registroEmissao', RvPage) as TRaveBand;
// RvBand.GroupKey :=
RM.RvProject1.Open;
end;
Obrigado!
Habner Silva
Rodrigo será que você poderia me ajudar? Já vasculhei o google inteiro não encontro uma solução para meu problema... Estou fazendo um relatório de Contas a Pagar sendo que este reletório é agrupado por Emissão e Vencimento... Eu gostaria de modificar este agrupamento dinamicamente modificando o groupkey do band, entretando ele é um TRaveFielName e não consigo fazer funcionar... abaixo minha procedure!
procedure TfrmRelContasPagar.Button1Click(Sender: TObject);
var sRvFormNome, sRvRelNome, sRvRelTitle, sRvRelLine01: string;
RvPage: TRavePage;
RvBand: TRaveBand;
RvFieldName: TRaveFieldName;
begin
sRvFormNome := Screen.ActiveForm.UnitName;
sRvRelNome := 'Report/'+sRvFormNome +'.rav';
sRvRelTitle := 'Vinhesoft Informática - Ltda.';
sRvRelLine01 := 'Relatório das Contas a Pagar em '+edtMoeda.Text+' por Data de '+sListaData;
RM.RvProject1.Close;
RM.RvProject1.ProjectFile := sRvRelNome;
RM.RvProject1.ProjMan.SetParam('p_title' ,sRvRelTitle);
RM.RvProject1.ProjMan.SetParam('p_line01',sRvRelLine01);
RM.RvProject1.ProjMan.SetParam('p_relnam',UpperCase(sRvFormNome));
RvPage := RM.RvProject1.ProjMan.FindRaveComponent('Report1.MainPage',nil) as TRavePage;
RvBand := RM.RvProject1.ProjMan.FindRaveComponent('registroEmissao', RvPage) as TRaveBand;
// RvBand.GroupKey :=
RM.RvProject1.Open;
end;
Obrigado!
Habner Silva
[há +1 mês] -
Responder
Wesley Yamazack
Olá Habner, entramos em contato com o Rodrigo para ele poder te ajudar, pedimos que aguarde um pouco pois as atividades do autor as vezes atrapalha na resposta. Solicitamos também um dos nossos consultores para que eles possam te auxiliar também.
Obrigado pelo comentário e um abraço.
Obrigado pelo comentário e um abraço.
[há +1 mês] -
Responder
[autor]
Rodrigo Carreiro Mourão
Olá,
Bem eu nunca fiz isso em tempo de execução agora vai uma dica. Eu sempre digo que um relatório se resolve no select. Faz o seguinte, criar select coloque sempre à coluna que vai ser agrupada como sendo a primeira coluna por exemplo. Dê uma alias no select como CAMPO_QUEBRA. (Péssimo nome) kkkk
Monte o select dinamicamente se acordo como o que o usuário selecionar, sempre trazendo o campo que vai agrupo como sendo o primeiro e ordenado por ele. No Rave o relatório vai sempre quebrar por este campo e para ele tanto faz se este campo é a data de emissão, o nome do cliente, etc.
Claro que você terá que tratar todos como texto para evitar problemas. Isso é uma maneira, agora eu faria um relatório para cada tipo de agrupamento trabalhando com Global Pages e "herdando" cabeçalhos e tipos. Isso dará mais flexibilidade de ajustar os relatórios individualmente.
Pense nisso!
Abs.
Olá,
Bem eu nunca fiz isso em tempo de execução agora vai uma dica. Eu sempre digo que um relatório se resolve no select. Faz o seguinte, criar select coloque sempre à coluna que vai ser agrupada como sendo a primeira coluna por exemplo. Dê uma alias no select como CAMPO_QUEBRA. (Péssimo nome) kkkk
Monte o select dinamicamente se acordo como o que o usuário selecionar, sempre trazendo o campo que vai agrupo como sendo o primeiro e ordenado por ele. No Rave o relatório vai sempre quebrar por este campo e para ele tanto faz se este campo é a data de emissão, o nome do cliente, etc.
Claro que você terá que tratar todos como texto para evitar problemas. Isso é uma maneira, agora eu faria um relatório para cada tipo de agrupamento trabalhando com Global Pages e "herdando" cabeçalhos e tipos. Isso dará mais flexibilidade de ajustar os relatórios individualmente.
Pense nisso!
Abs.
[há +1 mês] -
Responder
Cursos relacionados
Publicidade

download

