Autor Tópico: Alguem já usou "Variavel para Tabela" dentro de "Configuração do SQL"?  (Lida 4796 vezes)

rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
Re:Alguem já usou "Variavel para Tabela" dentro de "Configuração do SQL"?
« Responder #15 Online: Março 25, 2012, 01:46:31 pm »
Bom pessoal, primeiramente desculpe desenterrar um tópico tão antigo.
Fiz pelo fato de já existir e não criar entradas duplicadas no forum para o mesmo assunto.
Como ninguém tinha respondido, e eu entrei aqui meia hora atrás pesquisando a solução para o mesmo problema, então resolvi voltar e postar como resolvi. Acredito que todos conseguiram resolver seus problemas, mas fica a dica para novatos que ainda vão passar por isso.

O uso do recurso VARIÁVEL PARA TABELA, em forms e grid se dá da seguinte forma.
Digamos que eu tenha 3 tabelas exatamente iguais em estrutura, sendo elas Clientes, Fornecedores e Contatos_diversos.

No caso de haver várias tabelas com a mesma estrutura, essa opção permite criar um único form e grid para manipular essas várias tabelas iguais.
Cria-se o form e grid a partir de 1 das tabelas. Neste caso usei a tabela "Clientes" e chamei a apl form de "form_padrao" e a grid de "grid_padrao"
No campo "VARIÁVEL PARA TABELA":
No campo de cima, eu uso a palavra "nome_tabela" (trata-se de uma global, mas não se deve usar os '[]'.
No campo de baixo, eu escrevo o nome da tabela original "Clientes"

O que o SC faz é trocar a palavra "Clientes" (do campo de baixo) pela conteúdo da global (campo de cima), nesse caso "nome_tabela".

Como fazer com que o menu abra a mesma aplicação de form ou grid, usando as tabelas diferentes.

Crie a estrutura do menu normalmente:

ID (item_1)
Label: Clientes
Link: form_padrao

ID (item_2)
Label: Fornecedores
Link: form_padrao

ID (item_3)
Label: Contatos diversos
Link: form_padrao

Os 3 itens do menu chamarão a mesma aplicação.

No evento onExecute do menu, use o código:

if ({sc_menu_item} == "item_1") { $nome_tabela = "clientes"; $titulo_cabecalho = "Clientes"; sc_set_global($nome_tabela, $titulo_cabecalho); }
if ({sc_menu_item} == "item_2") { $nome_tabela = "fornecedores"; $titulo_cabecalho = "Clientes"; sc_set_global($nome_tabela, $titulo_cabecalho); }
if ({sc_menu_item} == "item_3") { $nome_tabela = "contatos_diversos"; $titulo_cabecalho = "Clientes"; sc_set_global($nome_tabela, $titulo_cabecalho); }

A variável global criada com o nome "titulo_cabecalho", como o próprio nome diz, eu utilizo no cabeçalho das aplicações.

A mesma coisa deve ser feita com os grids.

Dessa forma usa-se um mesmo form e grid para várias tabelas. Estou fazendo um sistema com 82 tabelas exatamente iguais e esse recurso me poupará muito tempo e esforço.

Espero que a explicação ajude alguém a resolver como se usa esse recurso. Se errei em alguma coisa me corrijam, digitei tudo de uma vez só e sem reler nada.

Abraço a todos.
Rodrigo Araújo
Rodrigo Araújo

candradebh

  • Novato
  • *
  • Mensagens: 4
Re:Alguem já usou "Variavel para Tabela" dentro de "Configuração do SQL"?
« Responder #16 Online: Fevereiro 20, 2015, 01:20:31 pm »
Usando o SC-5.2 estou tentando fazer uma Consulta onde o nome da tabela seria uma variável e não encontrei nenhum exemplo de como usar "Variavel para Tabela" em "Configuração do SQL"

andreguimas

Me diz que você achou a solução?
Estou com o mesmo problema.

Abraço
Modificar mensagem
Carlos Andrade

marcusbelempa

  • Novato
  • *
  • Mensagens: 7
    • Email
Re:Alguem já usou "Variavel para Tabela" dentro de "Configuração do SQL"?
« Responder #17 Online: Março 08, 2015, 08:34:28 pm »
funciona legal!!!

Bom pessoal, primeiramente desculpe desenterrar um tópico tão antigo.
Fiz pelo fato de já existir e não criar entradas duplicadas no forum para o mesmo assunto.
Como ninguém tinha respondido, e eu entrei aqui meia hora atrás pesquisando a solução para o mesmo problema, então resolvi voltar e postar como resolvi. Acredito que todos conseguiram resolver seus problemas, mas fica a dica para novatos que ainda vão passar por isso.

O uso do recurso VARIÁVEL PARA TABELA, em forms e grid se dá da seguinte forma.
Digamos que eu tenha 3 tabelas exatamente iguais em estrutura, sendo elas Clientes, Fornecedores e Contatos_diversos.

No caso de haver várias tabelas com a mesma estrutura, essa opção permite criar um único form e grid para manipular essas várias tabelas iguais.
Cria-se o form e grid a partir de 1 das tabelas. Neste caso usei a tabela "Clientes" e chamei a apl form de "form_padrao" e a grid de "grid_padrao"
No campo "VARIÁVEL PARA TABELA":
No campo de cima, eu uso a palavra "nome_tabela" (trata-se de uma global, mas não se deve usar os '[]'.
No campo de baixo, eu escrevo o nome da tabela original "Clientes"

O que o SC faz é trocar a palavra "Clientes" (do campo de baixo) pela conteúdo da global (campo de cima), nesse caso "nome_tabela".

Como fazer com que o menu abra a mesma aplicação de form ou grid, usando as tabelas diferentes.

Crie a estrutura do menu normalmente:

ID (item_1)
Label: Clientes
Link: form_padrao

ID (item_2)
Label: Fornecedores
Link: form_padrao

ID (item_3)
Label: Contatos diversos
Link: form_padrao

Os 3 itens do menu chamarão a mesma aplicação.

No evento onExecute do menu, use o código:

if ({sc_menu_item} == "item_1") { $nome_tabela = "clientes"; $titulo_cabecalho = "Clientes"; sc_set_global($nome_tabela, $titulo_cabecalho); }
if ({sc_menu_item} == "item_2") { $nome_tabela = "fornecedores"; $titulo_cabecalho = "Clientes"; sc_set_global($nome_tabela, $titulo_cabecalho); }
if ({sc_menu_item} == "item_3") { $nome_tabela = "contatos_diversos"; $titulo_cabecalho = "Clientes"; sc_set_global($nome_tabela, $titulo_cabecalho); }

A variável global criada com o nome "titulo_cabecalho", como o próprio nome diz, eu utilizo no cabeçalho das aplicações.

A mesma coisa deve ser feita com os grids.

Dessa forma usa-se um mesmo form e grid para várias tabelas. Estou fazendo um sistema com 82 tabelas exatamente iguais e esse recurso me poupará muito tempo e esforço.

Espero que a explicação ajude alguém a resolver como se usa esse recurso. Se errei em alguma coisa me corrijam, digitei tudo de uma vez só e sem reler nada.

Abraço a todos.
Rodrigo Araújo