RmsHelp
Objetivo
A partir de informações cadastradas em uma base de dados local, o RMSHelp monta a tela de consulta, criando campos para filtragem e configurando uma grade para visualização das informações. Ao pressionar a opção "Filtrar" o banco de dados principal do sistema é acessado, também utilizando as informações locais, para recuperar as informações solicitadas pelo usuário. O usuário pode selecionar um ou vários registros da consulta, retornando para a aplicação que chamou a consulta, todas as linhas selecionadas.
Conceito
O RMSHelp foi desenvolvido para facilitar a criação de telas de consulta para o usuário. Sua estrutura foi remodelada para facilitar a implementação pelo programador.
A base de dados também foi remodelada e migrada para arquivos locais, o que facilita a distribuição das alterações.
Descrição do processo
Cadastro das consultas
As tabelas abaixo configuram quais dados serão acessados e como eles serão apresentados aos usuários.
Cadastro de Consultas (cad_cons) – Tabela principal
Campo | Tipo de Dados | Descrição |
cd_cons | Double | Código identificador da consulta. |
dsc_cons | Text(40) | Descrição da consulta. Aparecerá no título da janela. |
tp_org_cons | Text(1) | Identifica como será gerada a instrução para seleção dos dados. |
org_cons | Text(50) | Nome da tabela origem dos dados ou do componente responsável por fornecer a instrução de seleção. Depende da coluna "tp_org_cons". |
cd_filt | Double | Código do filtro que será utilizado para criar campos de filtragem na janela de consulta. Para mais informações sobre como criar filtros, consulte a documentação do componente RMSFitlro. |
Campos da consulta (cmpo_cons) – Colunas que serão exibidas na grade de resultado.
Campo | Tipo de Dados | Descrição |
cd_cons | Double | Código identificador da consulta. |
rot_campo | Text(40) | Cabeçalho da coluna. |
nm_fis_cmpo | Text(255) | Nome físico da coluna. Pode ser uma fórmula válida para o banco de dados origem. |
tam_propr_cmpo | Double | Largura da coluna em relação à largura total da janela. Está expressa em porcentagem. |
alin_cmpo | Double | Modo como os dados serão alinhados na grade. |
masc_cmpo | Text(20) | Formatação para colunas numéricas. Segue o padrão de máscaras do Visual Basic |
ord_cmpo | Double | Ordenação das colunas na grade |
Critérios da Consulta (crit_cons) – Critérios fixos para a consulta, são inseridos nas consultas com "tp_org_cons = 1" independente da existência de filtros.
Campo | Tipo de Dados | Descrição |
cd_cons | Double | Código identificador da consulta. |
seq_crit | Double | Número sequêncial do critério. |
nm_fis_crit | Text(255) | Nome físico do campo. Pode ser uma fórmula válida para o banco de dados origem. |
oper_log_crit | Text(4) | Operador lógico do critério. Pode ser qualquer operador válido para o banco de dados origem. Normalmente é |
oper_comp_crit | Double | Operador de comparação do critério. Pode ser qualquer operador válido para o banco de dados origem. |
vlr_crit | Text(255) | Valor com o qual o campo vai ser comparado para realizar o critério. O conteúdo deste campo será inserido na instrução sem qualquer alteração ou adição de aspas. Permitindo que seja informado o nome físico de outro campo. |
Dim objHelp As IObjetoConsulta
Dim varRetorno As Variant
Set objHelp = CreateObject("RMSCons.cConsulta")
varRetorno = objHelp.MostrarConsulta(1)
Set objHelp = Nothing
Chamar a Consulta
Após ter sido cadastrada, a consulta pode ser invocada via código como abaixo, lembrando de adicionar referência ao componente "ICONSULTA".
Leia o próximo tópico para obter mais informações técnicas sobre o funcionamento do componente.
Informações Técnicas
Este componente foi desenvolvido em conjunto com duas interfaces :
IObjetoConsulta- Implementada pelo componente, é utilizada para a inicialização da consulta pelo programa chamador
IOrigemConsulta- Utilizada para obter a instrução de seleção de componentes externos.
A interface IObjetoConsulta deve ser utilizada conforme mostrado no tópico "Chamar a Consulta".
Para que um componente externo possa fornecer instruções para o RMSHelp, ele deve implementar a interface IOrigemConsulta. Vamos ver o processo passo a passo:
- Iniciar um novo projeto do tipo "ActiveX DLL";
- Adicionar referência ao componente "ICONSULTA";
- Implements IOrigemConsulta
Private Function IOrigemConsulta_InstrucaoSQL(ByVal Consulta As Long, Optional ByVal arrParam As Variant) As String
Select Case Consulta
Case 1
IOrigemConsulta_InstrucaoSQL = "Select * from A"
Case 2
IOrigemConsulta_InstrucaoSQL = "Select * from B"
End Select
End SubNo módulo classe criado, adicionar as seguintes linhas de código : - Ao cadastrar a consulta no banco local, informe 2 para o campo "tp_org_cons" e o nome da classe que você acabou de criar no campo "org_cons".
Referência I ObjetoConsulta
Métodos
MostrarConsulta
Inicia a tela de consulta e retorna o(s) registro(s) selecionado(s) pelo usuário
Sintaxe:arrDados = objHelp.MostrarConsulta(Codigo)
Codigo:(Long)Código de alguma consulta existente no cadastro de consultas.
(Retorno):(Variant) Array de uma dimensão, onde cada elemento guarda uma string com todos os campos do registro, separado por "pipes" ("|").
Referência I OrigemConsulta
Métodos
InstrucaoSQL
Permite a um objeto servir como fornecedor de instruções para o RMSHelp
Sintaxe:strSQL = InstrucaoSQL(Consulta, [arrParam])
Consulta:(Long)Código da consulta chamada pela aplicação
arrParam:(Variant) Array de uma dimensão contendo em cada elemento os valores digitados nos campos de filtro
(Retorno):(String) O componente RMSHelp, espera receber uma instrução de seleção válida.