Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

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

Finalizando a escolha dos campos, clicar no botão “OK”. Por enquanto, estas serão as ações.

A aba “Dados” deve ficar como está mostrado 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 os serão colocados os elementos do relatório, 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, para este exemplo didático, 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, para este exemplo didático, 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 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 largados 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;

  • 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.

Depois do retângulo pronto conforme descrito acima, clicar com o botão direito sobre o mesmo e escolha 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 escolha 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, altere o atributo “Appearance.Brush.Color”, selecionando o valor “clSilver”, confirme 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 “Destalhe”, preferencialmente em uma que não contenha algum 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” 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 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:

  • No labels