Histórico da Página
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)
...
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"