Árvore de páginas

 

RmsFiltro

 

Objetivo

A partir de informações cadastradas em uma base de dados local, o RMSFiltro monta uma lista de parâmetros, permitindo ao usuário informar seus valores. Cada parâmetro pode ter sua própria rotina de validação, que é efetuada assim que o usuário termina de informar o valor.
Existem parâmetros que são comuns em várias partes do sistema, como por exemplo código de filial, código de seção, código de fornecedor, etc., para diminuir o trabalho de cadastro e aumentar a reutilização das validações, foram criados os conceitos de "Classes de Parâmetros" e "Grupos de Parâmetros".
Uma classe controla todo o comportamento do parâmetro, ou seja, o tipo de dado, a visualização, a validação, etc., enquanto o agrupamento, controla a utilização do parâmetro dentro do contexto de uma consulta específica. Explicando melhor, o agrupamento determina dados como: nome físico, se permite múltiplos valores, se permite seleção geral, entre outros.
Cada parâmetro pode, também, ser apresentado na forma de uma lista de valores (combobox) para seleção do usuário. O conteúdo desta lista pode ser fixado no cadastro do parâmetro, ou obtido através de uma classe de controle.
Ao final da digitação dos parâmetros, o programa chamador recebe uma lista com os valores informados ou, opcionalmente, uma string contendo critérios de seleção no formato SQL.

Conceito

O RMSHelp foi desenvolvido para dar ao usuário uma interface única de digitação de parâmetros, sejam eles para relatórios ou processos.

Parametrização

 

Cadastro dos Parâmetros

Cadastro de Classes de Parâmetros (cls_param)

Campo

Tipo de Dados

Descrição

nm_cls

Text(20)

Nome identificador da classe

tp_dado_cls

Text(1)

Tipo de dado esperado para o parâmetro
M – Mês/Ano
D – Data. Retorno será no formato "DD/MM/YY"
R – Data. Retorno será no formato "YYYMMDD"
9 – Numérico
X – Alfanumérico

tam_cls

Double

Número máximo de dígitos/caracteres permitidos

qtde_decs

Integer

Número de casas decimais para valores numéricos

nm_dll_ctrl

Text(50)

Nome do componente responsável pelo controle da classe. Deve ser informada no padrão "DllName.ClassName"

idc_vlda_cls

Double

Indica se esta classe será validada pelo componente de controle

idc_vlr_pdr_cls

Double

Indica se esta classe terá valor padrão fornecido pelo componente de controle

idc_hlp_ctxt_cls

Double

Indica se o componente de controle fornece ajuda de contexto para esta classe

cd_cons

Double

Código de consulta (vide RMShelp)

dsc_cls

Text(255)

Descritivo do conteúdo esperado para a classe

idc_lst_vlr

Double

Indica se a classe é uma lista de valores e se os valores estão cadastrados na tabela lst_vlr_param

idc_lst_vlr_ext

Double

Indica se a classe é uma lista de valores e se os valores serão obtidos através do componente de controle.


Cadastro de Grupos de Parâmetros (cad_filt)

Campo

Tipo de Dados

Descrição

cd_filt

Double

Identificador do grupo

dsc_filt

Text(40)

Descrição do grupo. Aparecerá no título da janela


Cadastro Parâmetros do Grupo (param_filt)

Campo

Tipo de Dados

Descrição

cd_filt

Double

Identificador do grupo

rot_param_filt

Text(40)

Rótulo do parâmetro. Será utilizado para identificar o parâmetro na janela de digitação.

ord_param_filt

Double

Ordem na qual os parâmetros aparecerão na tela

nm_fis_filt

Text(255)

Nome físico do parâmetro. É utilizado na criação dos critérios em SQL

oper_comp_filt

Text(4)

Operador de comparação válido para o banco de dados. É utilizado na criação dos critérios em SQL.
=, >, <, <>, >=, <=, LIKE

idc_mult_vlrs

Double

Indica se este parâmetro pode receber vários valores. Não tem efeito se utilizado junto com RMSHelp

idc_perm_geral

Double

Indica se o usuário pode usar a opção "F2-Geral" para este parâmetro. Não tem efeito se utilizado junto com RMSHelp

nm_cls

Text(20)

Obrigatório. Nome da classe de parâmetros base.


Lista de Valores do Parâmetro (lst_vlr_param)

Campo

Tipo de Dados

Descrição

cd_filt

Double

Identificador do grupo

rot_param_filt

Text(40)

Rótulo do parâmetro. Será utilizado para identificar o parâmetro na janela de digitação.

cd_vlr_param

Text(10)

Valor do parâmetro. É o valor que será retornado pelo RMSFiltro para o programa chamador

dsc_vlr_param

Text(40)

Descrição do parâmetro. É o valor que o usuário vê na lista de parâmetros.


Vale ressaltar, que a classe de parâmetro existe para promover o re-aproveitamento de seu comportamento. Neste caso, antes de cadastrar uma nova classe, deve-se verificar se já existe alguma que possa ser re-utilizada.

Chamar o Filtro

Dim objFiltroAs IObjetoFiltro
Dim varRetorno As Variant
Set objFiltro = CreateObject("RMSFiltro.cFiltro")
varRetorno = objFiltro.MostrarFiltro(Me, 1)
Set objFiltro = NothingApós ter sido cadastrado, o filtro pode ser invocado via código como abaixo, lembrando de adicionar referência ao componente "IFILTRO".
Leia o próximo tópico para obter mais informações técnicas sobre o funcionamento do componente.

Descrição do processo

 

Informações Técnicas

Este componente foi desenvolvido em conjunto com três interfaces :
IObjetoFiltro- Implementada pelo componente, é utilizada para a inicialização do filtro.
IChamadorFiltro- Permite ao programa chamador interferir na validação e formatação dos valores digitados
IControleFiltro- Permite a criação de componentes responsáveis por controlar o comportamento das classes de parâmetros
A interface IObjetoFiltro deve ser utilizada conforme mostrado no tópico "Chamar o Filtro".
Para utilizar a interface IChamadorFiltro, adicione o comando "Implements IChamadorFiltro" no início do código da sua janela e veja a referência dos métodos disponíveis neste manual. Os métodos serão chamados pelo RMSFiltro quando forem necessários.
Para utilizar a interface IControleFiltro, crie uma nova classe e e adicione o comando "Implements IControleFiltro" no início do código e veja a referência dos métodos disponíveis neste manual. Informe corretamente o nome da classe criada no campo "nm_dll_ctrl" na tabela "cls_param". Os métodos serão chamados pelo RMSFiltro quando forem necessários.

Referência I ObjetoFiltro

Métodos
MostrarFiltro
Inicia a tela de filtro e retorna lista dos parâmetros digitados.
Sintaxe:strDados = objFiltro.MostrarFiltro(Chamador, Codigo)
Chamador:(Object) Referência do objeto que está chamando o filtro. Somente necessário quando o chamador implementa a interface IChamadorFiltro.
Codigo:(Long)Código de um agrupamento de parâmetros cadastrado.
(Retorno):(String) Lista dos parâmetros digitados separados por "pipes" ("|"). Quando o parâmetro permite múltiplos valores, cada valor dentro do parâmetro aparece separado por "#".

Propriedades

CriterioSelecao
Retorna string com lista de critérios no formato SQL
Sintaxe:strDados = objFiltro.CriterioSelecao()
(Retorno):(String) Lista de critérios no formato SQL
Conteudo
Retorna o valor atual de qualquer parâmetro dentro do filtro. Geralmente utilizado dentro dos componentes de controle
Sintaxe:varDados = objFiltro.Conteudo(Rotulo)
Rotulo:(String) Rótulo do parâmetro desejado. É considerado o rótulo que está cadastrado no banco, uma vez que a janela pode estar traduzida em outro idioma.
(Retorno):(Variant) Valor atual do parâmetro.

Referência I ChamadorFiltro

Métodos
ValidarParametro
Permite ao programa chamador interferir no processo de validação de um parâmetro. Este método é chamado, como um evento, após a validação pelo componente de controle. Seu funcionamento é semelhante ao evento "Validate"
Sintaxe:ValidarParametro(Rotulo, Valor, Cancelar, Mostrar)
Rotulo:(String) Rótulo do parâmetro desejado. É considerado o rótulo que está cadastrado no banco, uma vez que a janela pode estar traduzida em outro idioma.
Valor :(Variant) Valor informado pelo usuário
Cancelar:(Boolean) Diz ao RMSFiltro para cancelar a edição do parâmetro
Mostrar:(Variant) O valor que será mostrado na tela, caso o parâmetro tenha sido validado.
FormatarParametro
Permite ao programa chamador formatar o conteúdo do parâmetro na tela.
Sintaxe:FormatarParametro(Rotulo, Valor, Mostrar)
Rotulo:(String) Rótulo do parâmetro desejado. É considerado o rótulo que está cadastrado no banco, uma vez que a janela pode estar traduzida em outro idioma.
Valor :(Variant) Valor informado pelo usuário
Mostrar:(Variant) O valor que será mostrado na tela.

Referência I ControleFiltro

Métodos
ValidarParametro
Responsável pelo processo de validação de um parâmetro. Este método é chamado, como um evento, após a digitação do usuário. Seu funcionamento é semelhante ao evento "Validate"
Sintaxe:ValidarParametro(Rotulo, Valor, Cancelar, Mostrar)
Rotulo:(String) Rótulo do parâmetro desejado. É considerado o rótulo que está cadastrado no banco, uma vez que a janela pode estar traduzida em outro idioma.
Valor :(Variant) Valor informado pelo usuário
Cancelar:(Boolean) Diz ao RMSFiltro para cancelar a edição do parâmetro
Mostrar:(Variant) O valor que será mostrado na tela, caso o parâmetro tenha sido validado.

Propriedades
Chamador
Somente gravação. É invocada para fornecer a referência do RMSFiltro atualmente ativo.
Sintaxe:Chamador(objFiltro)
objFiltro:(IObjetoFiltro) Referência do RMSFiltro ativo.

ValorPadrao
Somente leitura. É invocada para requisitar o valor padrão para a classe.
Sintaxe:ValorPadrao(Classe)
Classe:(String) Nome da classe sendo tratada pelo RMSFiltro.
(Retorno):(String) Valor padrão no formato "#valor;descricao"

AjudaContexto
Somente leitura. É invocada para requisitar ajuda de contexto para o parâmetro.
Ainda não implementado.

ListaValores
Somente leitura. É invocada para requisitar a lista de valores válidos para o parâmetro.
Sintaxe:ListaValores (Classe)
Classe:(String) Nome da classe sendo tratada pelo RMSFiltro.
(Retorno):(String) Lista de valores no formato
"#valor1;descricao1|#valor2;descricao2"