Anexar relatórios e consultas a um cadastro

18/05/2019

0

Olá pessoal,
Estou desenvolvendo um sistema em Delphi 7 + Interbbase. Eu criei um ambiente onde o usuário pode criar sua própria consulta SQL e seus relatórios (usando FastReport) a partir da própria consulta. Também nesse ambiente eu posso passar os valores dos parâmetros para uma tabela temporária e assim executá-los e visualizá-los. Ficou perfeito!

A questão agora, é um pouco diferente. O que eu estou precisando fazer é o seguinte, chamar esses relatórios ou essas consultas a partir de um cadastro. A ideia aqui é anexar a esse cadastro um relatório ou uma consulta. A questão está em como passar os valores dos parâmetros para as consultas.

Por exemplo: Cadastrei no sistema a seguinte consulta:

SELECT A.ID, A.IDESTADO, A.NOME, B.SIGLA, C.NOME AS PAIS
FROM CIDADES A
INNER JOIN ESTADOS B ON (B.ID = A.IDESTADO)
INNER JOIN PAISES C ON (C.ID = B.IDPAIS)
WHERE A.IDESTADO = :IDESTADO_I
ORDER BY C.NOME, B.SIGLA, A.NOME


Perceba que na consulta passei o seguinte parâmetro :IDESTADO_I. No meu sistema o usuário precisa incluir o sufixo: _I para inteiros; _S para strings; _N para números decimais; _D para datas e _L para strings de usca aproximada, ou sejja, LIKE.

Muito bem, voltando à minha questão, tenho uma outra tabela ANEXOS onde eu anexo o código daquela consulta com o nome do formulário ao qual desejo vincular aquela consulta. E é aí onde está a questão, quando houver parâmetros nas consultas, não quero que abra a janela de parâmetros como acontece nos ambientes que falei acima, quero que o sistema entenda que determinado parâmetro receba a informação do campo daquela tabela ou daquela BDGrid (no caso cxGrid). Será que alguém poderia me ajudar?

Não sei se me fiz entender, qualquer coisa passo mais informações.

Atenciosamente,

Ilano.
Ilano Frota

Ilano Frota

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar