Emitindo relatórios desenvolvidos no VsRel
É possível desenvolver relatórios personalizados, ou utilizar relatórios já desenvolvidos em chamadas pela VsScripter.
As chamadas de relatórios podem ser realizadas pelo código interno do relatório ou o nome do mesmo. No caso da chamada ser realizada pelo nome, caso exista mais de um relatório com o mesmo nome, o relatório de maior código será o escolhido para a impressão, respeitando a ideia de ser o último a ser desenvolvido.
Os parâmetros dos relatórios também são importantes para essa impressão via código. É possível ter relatórios com parâmetros sendo chamados via código. Para esse fim é necessário que na criação do relatório sejam definidos os parâmetros normalmente, porém atribuídos com a propriedade “enabled = false”, caso contrário os filtros de relatórios na chamada via código serão apresentados em tela.
Classe TFCarregaRelatorio
A classe TFCarregaRelatorio é a responsável pelas chamadas de relatórios via VsScript, para ter acesso a classe no script, se faz necessário adicionar no uses a unit uCarregaRelatorio.
Os métodos da classe TFCarregaRelatorio são:
RelatorioById: Imprime o relatório pelo código interno do mesmo, código esse é listado no Gerador de Relatórios (VsRel);
RelatorioByNome; Imprime o relatório pelo nome definido ao mesmo;
ParamAdd; Adiciona um determinado nome e valor de parâmetro a ser considerado em um relatório.
Método RelatorioById
Para chamada do relatório pelo seu código interno, os seguintes parâmetros são necessários:
nIdRel (integer): código interno do relatório a ser impresso;
cNomeParams (string): nomes dos parâmetros a serem preenchidos automaticamente para o relatório. Quando mais de um parâmetro se faz necessário informar o separador Chr(30) entre os parâmetros. A chamada ParamAdd de certa forma automatiza esse processo;
cValorParams (string): valores dos parâmetros a serem preenchidos automaticamente para o relatório. Quando mais de um parâmetro se faz necessário informar o separador Chr(30) entre os parâmetros. A chamada ParamAdd de certa forma automatiza esse processo;
lVisualizarImpressao (boolean): Se true realiza a impressão em tela antes de enviar para impressora.
Método RelatorioByNome
Para chamada do relatório pelo seu nome os seguintes parâmetros são necessários:
cNomeRel (string): nome do relatório a ser impresso;
cNomeParams (string): nomes dos parâmetros a serem preenchidos automaticamente para o relatório. Quando mais de um parâmetro se faz necessário informar o separador Chr(30) entre os parâmetros. A chamada ParamAdd de certa forma automatiza esse processo;
cValorParams (string): valores dos parâmetros a serem preenchidos automaticamente para o relatório. Quando mais de um parâmetro se faz necessário informar o separador Chr(30) entre os parâmetros. A chamada ParamAdd de certa forma automatiza esse processo;
lVisualizarImpressao (boolean): Se true realiza a impressão em tela antes de enviar para impressora.
Método ParamAdd
Esse método é utilizado para facilitar a adição de parâmetros para preenchimento automático na emissão de relatórios. Parte da ideia de que duas variáveis string sejam passadas como parâmetros, e a essas são adicionados os valores definidos também passados como parâmetros:
cNomeParams (string): variável na qual será adicionado o novo nome de parâmetro já com o separador Chr(30) entre os parâmetros já existentes;
cValorParams (string): variável na qual será adicionado o novo valor de parâmetro já com o separador Chr(30) entre os parâmetros já existentes;
cNomeParamAdd (string): nome de parâmetro a ser adicionado na variável cNomeParams;
cValorParamAdd (string): valor de parâmetro a ser adicionado na variável cNomeParams.
Exemplo de utilização da classe TFCarregaRelatorio com chamada aos métodos ParamAdd e RelatorioByNome.
uses
uCarregaRelatorio;
var
cNomeParams, cValorParams: String;
begin
cNomeParams := '';
cValorParams := '';
//adicionando o parametro ESTAB com o valor do oDadosSis.EstabSelecionado
TFCarregaRelatorio.ParamAdd(cNomeParams, cValorParams, 'ESTAB',
IntToStr(oDadosSis.EstabSelecionado));
//chamada ao relatatório 'Meu rel exemplo' com os parâmetros definidos acima
//e apresentando inicialmente o resultado em tela
TFCarregaRelatorio.RelatorioByNome('Meu rel exemplo', cNomeParams, cValorParams, false);
end;