Executando um relatório .crp a partir de uma aplicação.
Em uma nova aplicação acrescente um botão a um formulário e no seu evento de clique adicione o seguinte código:
- Uses OleCtrls, CrystalActiveXReportViewerLib11_TLB;
- …
- procedure TForm1.Button2Click(Sender: TObject);
- var
- cry: TCrystalActiveXReportViewer;
- oRpt, oApp: variant;
- i: integer;
- frm: TForm;
- begin
-
- // criação do objeto e identificação do arquivo .rpt a ser executado
- cry := TCrystalActiveXReportViewer.Create(Self);
- oApp := CreateOleObject('CrystalRuntime.Application');
- oRpt := oApp.OpenReport('K:\Copia\rel\comissao.rpt', 1);
- // passando o usuario e a senha do bando de dados para o relatório
- for i := 1 to oRpt.Database.Tables.Count do
- begin
- oRpt.Database.Tables[i].ConnectionProperties.Item['User ID'] := 'usuarioDoBancoDeDados';
- oRpt.Database.Tables[i].ConnectionProperties.Item['Password'] := 'senhaDoBancoDeDados';
- end;
-
- // exemplo de passagem de parâmetros do tipo data e texto
- oRpt.ParameterFields.GetItemByName('data1', '').AddCurrentValue(StrToDateTime( '01/04/2006 15:15:22' ));
- oRpt.ParameterFields.GetItemByName('data2', '').AddCurrentValue(StrToDateTime( '05/04/2006 15:15:22' ));
- oRpt.ParameterFields.GetItemByName('usuario', '').AddCurrentValue('Francisco Soares');
- // criando o formulario que exibirá o relatório
- frm := TForm.Create(Self);
- try
- cry.Parent := frm;
- cry.Align := alClient;
- cry.ReportSource := oRpt;
- cry.ViewReport;
- frm.Position := poOwnerFormCenter;
- frm.ShowModal;
- finally
- FreeAndNil(frm);
- end;
- end;
Espero ter colaborado com esse exemplo. Qualquer dúvida sobre o assunto pode enviá-las que se eu souber respondê-las-ei.