Objetivo
O objetivo desta documentação é mostrar ao usuário como emitir relatórios criados no VsRel, por meio do VsScripter.
Como será feito
Como tratado no documento Emitindo relatórios desenvolvidos no VsRel a emissão de relatórios criados no VsRel, por meio do VsScripter, é relativamente simples. Algumas facilidades, como envio de parâmetros para filtragem de dados, podem ser executadas permitindo a impressão ou geração de PDFs das informações pesquisadas, conforme desenhado no VsRel.
Este exemplo mostrará a emissão de um crachá temporário para Prestadores de Serviço no momento em que o registro for salvo, conforme figura abaixo:
Vale lembrar que mesmo sendo um exemplo plausível, este material tem cunho didático.
Para a execução do exemplo aqui apresentado, será necessário:
Desenvolvimento do relatório no VsRel, seguindo as instruções apresentadas mais adiante;
Criação do script necessário para a emissão do relatório, com a passagem de parâmetros necessários para a localização do registro específico que fornecerá os dados para geração do crachá;
Inclusão de uma pessoa fictícia, no Cadastro de Pessoas do Folha e, depois, inclusão de um Prestador de Serviços, usando essa pessoa fictícia.
Criando o relatório no VsRel
Como o VsRel não é o objetivo principal desta documentação, as informações passadas aqui para o desenvolvimento do relatório irão considerar que o usuário que as esteja seguindo possui um mínimo de conhecimento necessário para operação do mesmo.
O próximo passo é escolher onde o relatório será salvo e, clicando com o botão direito do mouse, escolha a opção “Novo Relatório” no menu flutuante mostrado. O módulo de desenho do novo relatório será mostrado, como se segue:
Este relatório será iniciado pela seleção da fonte de dados que será usada para fornecer as informações que serão impressas. Para tanto, escolha a primeira aba, chamada “Dados”. Em seguida, no menu “Arquivo”, escolha o submenu “Novo” ou use o atalho “CTRL+N”.
Escolha a opção “Construtor de Consultas”, conforme figura abaixo:
Na aba “Tabelas”, escolher as tabelas abaixo, as quais guardam os dados necessários para o exemplo:
RHPRESERV;
RHFUNCAO;
RHPESSOA;
RHPESSOAFOTO.
Na aba “Campos” serão mostrados todos os campos existentes nas tabelas selecionadas acima. Será necessário escolher os campos abaixo, pois apenas estes serão usados no relatório:
Apelido do campo | Apelidos da tabela e do campo no SQL (tabela.campo) |
Código da Pesso | RHPRESERV_1.IDPRESS |
Função | RHFUNCAO_1.IDFUNCAO |
Descrição | RHFUNCAO_1.DESCRICAO |
Foto da Pessoa | RHPESSOAFOTO_1.FOTO |
Nome | RHPESSOA_1.NOME |
CPF | RHPESSOA_1.CPF |
RG | RHPESSOA_1.RG |
Finalizada a escolha dos campos, clicar no botão “OK”. Por enquanto, estas serão as ações.
A aba “Dados” deve ser mostrada como está na figura abaixo:
Neste exemplo, a aba “Cálculo” não será utilizada, podendo ser escolhida a aba “Desenho”. Nela, será feito o “design” do relatório, onde os campos previamente selecionados serão posicionados para a formatação necessária ao nosso “layout”.
Na área principal de desenho do relatório, existem três subáreas onde serão colocados os elementos do mesmo, de acordo com a destinação de cada elemento. Abaixo, uma representação da área principal:
Acima da subárea “Cabeçalho”, normalmente são colocados os elementos referentes a identificação da empresa emitente do relatório e, também, identificação de quaisquer outras informações necessárias ao entendimento do relatório em si. Por exemplo: Nome do usuário que emitiu o relatório, título do relatório, data e hora de emissão, unidade a que se referem os dados expostos no relatório etc.
Neste exemplo específico, esta área não será utilizada, pois foi julgado que não se aplica.
Acima da subárea “Detalhe” e abaixo da subárea “Cabeçalho” será a área destinada ao desenvolvimento do desenho do relatório, que neste caso será um crachá temporário. O desenho sugerido será apresentado mais abaixo.
Acima da subárea “Rodapé” e abaixo da subárea “Detalhe”, normalmente são colocados, por exemplo, os elementos referentes ao controle do número de páginas e quaisquer outros elementos que possam ajudar no entendimento do relatório.
Neste exemplo específico, esta área não será utilizada, pois foi julgado que não se aplica.
Tanto a subárea “Cabeçalho” e “Rodapé” são as área que possuem a maior parte de informações estáticas do relatório, como logotipo da empresa, nome do estabelecimento, endereço, título do relatório e quaisquer outros elementos que ajudem no entendimento do relatório.
Fonte de dados (campos) a serem inseridos no desenho do relatório
A direita do formulário de desenho de relatórios, existe uma área chamada “Estrutura de Dados”, onde estão referenciadas as fontes de dados escolhidas (tabelas e campos), chamada de “Prestadores_de_Servico”. Logo abaixo desta primeira área, são apresentados os “Campos para Prestadores_de_Servico”, que são os campos que fazem parte desta estrutura de dados, os quais fornecerão os dados para o relatório, conforme mostrado na figura abaixo:
Basicamente, os campos serão arrastados e soltos na área “Detalhe” na ordem e posição concomitantes com o “layout” proposto. Observar o modelo sugerido abaixo:
Observações importantes:
Tanto a etiqueta “Nome:” quanto o campo “Nome” possuem tamanho da fonte igual a 12. Ou seja, o atributo “Size” do componente “Text Font” tem o valor 12. Os demais elementos, tanto etiquetas quanto campos, possuem tamanho igual a 10;
A etiqueta (label) que fica ao lado da foto pode ser excluída para uma apresentação visual melhorada do relatório. Clicar com o “mouse” sobre a etiqueta e pressionar a tecla “DEL”;
O campo “Nome”, que fornecerá o nome do prestador de serviços, possui o atributo “WordWrap” Habilitado, para que o nome seja dividido em duas linhas, se necessário;
A data informada em “Emissão” vem diretamente do sistema e é colocada automaticamente por meio do componente “Variável do Sistema”, que é representado pelo ícone de um pequeno calendário, mostrando um relógio de ponteiros os números “1” e “2”;
O “layout” aqui proposto tem fim exclusivamente didático, não obedecendo a qualquer norma técnica para desenho deste tipo de artefato, se essas existirem;
Para formatar o CPF que será mostrado no crachá, altere a propriedade “DisplayFormat” do campo “CPF” para “000\.000\.000\-00;0;”, clicando nas reticencias que existem no campo e digitando/colando a máscara no campo “Formato de Apresentação” que será mostrado e confirmando com um clique no botão “OK”;
Todos os elementos colocados no relatório ficaram com o nome padrão que é criado pelo VsRel. Porém, para manter as boas práticas de desenvolvimento, num relatório real, é sugestão dar nomes ao elementos de acordo com a funcionalidade e/ou conteúdo de cada um.
O próximo passo será desenhar um quadrado com a ferramenta “Polígono” que é representada por um ícone que mostra três figuras geométricas (um círculo roxo, um triângulo vermelho e um retângulo verde). Para tanto, basta selecionar a ferramenta e clicar com o botão esquerdo do “mouse” sobre a área de desenho “Detalhe”. Em seguida, será necessário alterar o tamanho e posição do quadrado criado até que o mesmo cubra todos os dados (etiquetas, campos e foto) colocados no relatório no passo anterior, cobrindo tudo e deixando uma margem de sobra nos quatro lados da figura.
Depois do retângulo pronto conforme descrito acima, clicar com o botão direito sobre o mesmo e escolher a opção “Enviar para trás”, conforme figura abaixo:
O resultado deve ser algo parecido com o modelo mostrado abaixo:
Selecionar o retângulo criado e escolher o atributo “Appearance.Shape” e escolher o valor “stRoundRect”, conforme indicado na figura abaixo:
Esta opção deixará o retângulo com os cantos arredondados.
Em seguida, ainda com o retângulo selecionado, alterar o atributo “Appearance.Brush.Color”, selecionando o valor “clSilver”, conforme figura abaixo:
O “layout” do crachá deverá estar parecido com o da figura abaixo:
Para finalizar o desenho do relatório, selecionar o retângulo que dá o formato do crachá e utilizar o atalho “CTRL+C” para fazer sua cópia. Em seguida, utilizar o atalho “CTRL+V” para colar esta cópia na área de desenho do relatório. Neste ponto, arrastar o novo retângulo criado para alinhá-lo a esquerda do retângulo que contém os dados do prestador de serviços, formando a parte de trás do crachá, que terá a mensagem “Temporário”.
Para criar a mensagem “Temporário”, colocar uma etiqueta no formulário (componente “Label”), que é representando por um ícone que contém a letra “A” maiúscula. Clique neste ícone e depois clique em qualquer lugar da área de “Detalhe”, preferencialmente em uma que não contenha elemento. Será criado um novo elemento com o texto “LabelX”, onde o X é um número de ordem qualquer, baseado no número de “labels” já colocadas no formulário.
Clicar duas vezes nesta etiqueta para alterar seu atributo “Text.Caption” para “Temporário”. Em seguida, alterar o valor do atributo “Text.Angle” para 45, que representa uma inclinação da etiqueta de 45 graus em relação a folha do relatório.
Alterar o tamanho da etiqueta, mudando o valor do atributo “Text.Font.Size” para 42. Em seguida, arrastar a etiqueta sobre o retângulo vazio, alinhando-a até aparentar estar bem posicionada, conforme abaixo:
Inserindo um parâmetro que será utilizado para localizar o registro correto, que fornecerá os dados para o relatório “Prestador de Serviços - Crachá Temporário”
Para que o registro correto seja identificado no momento de sua inclusão e o código de identificação da pessoa incluída, é necessário criar um parâmetro que seja recebido na solicitação enviada pelo VsScripter e usado como filtro no VsRel.
Para efeito deste material, o parâmetro terá o nome de “idPessoa”. Este será incluído no desenho do relatório e depois será referenciado como o parâmetro a ser utilizado para localizar o registro desejado.
Observação importante: O nome do parâmetro, bem como a quantidade deles irá depender do propósito de cada relatório.
A esquerda da área de edição do relatório existe uma área chamada de “Estrutura do Relatório”. Nela, existe um componente chamado “Report” e a primeira propriedade dele é a “Parameters”. É nesta propriedade que são inseridos os parâmetros que serão utilizados como filtros para a localização de registros. Clicar com o botão direito do “mouse” sobre “Parameters” e escolher “Novo” no menu flutuante.
Será inserido um parâmetro com o nome “Parameter1”, o qual será renomeado para “idPessoa”. Para alterar o nome, o atributo “Identity.UserName” deverá ser mudado para “idPessoa”.
Em seguida, selecionar a aba “Dados” para inclusão do novo parâmetro que funcionará como filtro da localização do registro a ser utilizado na emissão do relatório. Na aba “Dados”, selecionar o ícone que representa uma lupa que abrirá o formulário de configurações dos parâmetros de localização, ficando o formulário igual a figura abaixo:
A lista de critérios deve estar vazia, igual o exemplo acima. Se não estiver, clique duas vezes no item que estiver adicionado.
Para adicionar o parâmetro “idPessoa”, necessário identificar qual é o campo que será comparado e qual o operador. Assim, clicar duas vezes sobre o campo “Código da Pesso”. O operador será o sinal de igualdade “=” e, no campo “Parameter”, selecionar “idPessoa”. Em seguida, clicar no botão “OK”.
Para continuar, é necessário salvar o relatório. Por meio do menu “Arquivo”, submenu “Salvar” (ou por meio do atalho “CTRL+S”), será aberto a caixa de diálogo “Salvar Novo Relatório Como”. Usar o nome “Prestador de Serviços - Crachá Temporário” para salvar o relatório e clicar no botão “Salvar”.
Ao clicar em “Salvar”, será solicitado que seja digitada uma descrição do que é o relatório, conforme abaixo:
Clicar no botão “OK” para confirmar.
Criando o “Script” no VsScripter
No Folha, abrir o “Cadastro de Pessoas” e criar uma pessoa fictícia para o teste.
Em seguida, abrir o cadastro de “Prestadores de Serviços”, no menu “Cadastros Gerais”.
Para a emissão do relatório alvo deste material, será utilizado o evento “Após Salvar” do VsScripter.
O comentário que vem na área de edição de “scripts” do VsScripter, por padrão, pode ser excluído ou não, a critério do usuário.
O código de exemplo abaixo é o mesmo disponibilizado na documentação específica sobre a emissão de relatórios desenvolvidos no VsRel, por meio do VsScript.
uses uCarregaRelatorio; var cNomeParams, cValorParams: String; begin cNomeParams := ''; cValorParams := ''; ShowMessage('Será aberta uma caixa de diálogo de impressão para emissão do crachá temporário para o Prestador de Serviços'); TFCarregaRelatorio.ParamAdd(cNomeParams, cValorParams, 'idPessoa', FRhPreserv.ValorNaTela('IDPESS')); TFCarregaRelatorio.RelatorioByNome('Prestador de Serviços - Crachá Temporário', cNomeParams, cValorParams, false); end;
Alguns parâmetros dispostos no código acima são diferentes do código original, visto que neste documento, está sendo utilizado o Cadastro de Prestadores de Serviços. Caso não saiba como essas informações foram adquiriras, pode ser utilizada a documentação abaixo que mostrará informações importantes, a saber:
Descobrindo o nome do formulário a ser manipulado e
Descobrindo informações sobre os campos dos formulários
Nas documentações acima, é possível entender como é feita a leitura de um valor atribuído a um componente da tela, especificamente, no formulário onde os eventos do VsScripter serão executados, além do próprio nome do formulário onde os dados serão manipulados e o nome dos respectivos campos desse formulário.
Testando a emissão do relatório
Para testar a emissão do relatório, se faz necessário incluir uma pessoa fictícia no Cadastro de Pessoas e, em seguida, inserir um Prestador de Serviços usando esta pessoa fictícia. No momento de salvar o Prestador de Serviços, será mostrada uma mensagem informando da impressão do relatório e, em seguida, uma caixa de diálogo de impressão será mostrada. Nela, o usuário poderá escolher em qual impressora imprimir além das demais opções inerentes à impressão, com os dados desta pessoa fictícia cadastrada como Prestador de Serviços.
O resultado final esperado é o mostrado abaixo, lembrando que os dados da pessoa fictícia, inclusive foto, provavelmente serão diferentes: