Autor Tópico: [RESOLVIDO] Variável para Tabela e Variável para Campos  (Lida 451 vezes)

gama

  • Iniciante
  • **
  • Mensagens: 51
    • Altenir Gama
    • Email
[RESOLVIDO] Variável para Tabela e Variável para Campos
« Online: Março 08, 2016, 03:25:34 pm »
Boa tarde.

Como é que se utiliza esses dois campos de configuração no SQL da aplicação de Consulta?

Variável para Tabela   = Nome da variável para substituição do nome da tabela. Informe também a parte do nome da tabela que será substituída pelo valor da variável.

Variável para Campos =     Variáveis para substituição do nome de campos da aplicação. Para cada campo a ser definido dinamicamente, informe o nome da variável que contém o novo valor e o campo que será substituído.


no meu banco tenho tabelas com o nomes diferentes mas os campos são sempre os mesmo nomes.


Desde já obrigado pela atenção.
« Última modificação: Março 09, 2016, 10:37:19 am por gama »
----------------------------------------------
Altenir Gama
Skype: altenir.gama
www.altenirgama.com.br
www.facebook.com/altenirgama

Haroldo

  • Expert
  • *****
  • Mensagens: 6293
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Variável para Tabela e Variável para Campos
« Responder #1 Online: Março 08, 2016, 08:04:45 pm »
Você entendeu errado, essas janelas são para guardar o nome da variável que contém o nome da tabela campo. Não pode trocar o nome da tabela dinamicamente.

Rodrigo Goulart Padovezzi

  • Expert
  • *****
  • Mensagens: 1045
    • Email
Re:Variável para Tabela e Variável para Campos
« Responder #2 Online: Março 08, 2016, 10:53:02 pm »
Boa noite, na verdade Haroldo dá sim para trocar.
Tenho uma intranet com base de dados do Protheus E ele usa sempre a mesma estrutura de tabelas por empresa Ex: SB1010 empresa 1 SB1020 empresa 2). Nesse caso tenho relatórios que trocam dinamicamente o nome da tabela e dá certo.
Já tive um problema quando inicia pelo filtro, mas se for iniciar pela consulta dá certo.
Já usei também a troca do campo e deu certo.

gama

  • Iniciante
  • **
  • Mensagens: 51
    • Altenir Gama
    • Email
Re:Variável para Tabela e Variável para Campos
« Responder #3 Online: Março 09, 2016, 09:48:41 am »
Boa noite, na verdade Haroldo dá sim para trocar.
Tenho uma intranet com base de dados do Protheus E ele usa sempre a mesma estrutura de tabelas por empresa Ex: SB1010 empresa 1 SB1020 empresa 2). Nesse caso tenho relatórios que trocam dinamicamente o nome da tabela e dá certo.
Já tive um problema quando inicia pelo filtro, mas se for iniciar pela consulta dá certo.
Já usei também a troca do campo e deu certo.

é isso mesmo, quero usar tabelas do Protheus e trocar dinamicamente, hoje eu crio uma variável global [glo_empresa] quando o usuário loga ele escolhe a empresa e filial que quer trabalhar e no sql da consulta eu coloco por exemplo: SL1[glo_empresa]0, mas eu queria saber se essa configuração de Variável para Tabela é mais ou menos isso, como é usada?

« Última modificação: Março 09, 2016, 09:52:45 am por gama »
----------------------------------------------
Altenir Gama
Skype: altenir.gama
www.altenirgama.com.br
www.facebook.com/altenirgama

Rodrigo Goulart Padovezzi

  • Expert
  • *****
  • Mensagens: 1045
    • Email
Re:Variável para Tabela e Variável para Campos
« Responder #4 Online: Março 09, 2016, 09:55:09 am »
Esse glo_empresa funcionará apenas em métodos, no SQL realmente tem que ser pelos campos citados.
No seu caso:

glo_empresa     Nome da variável para substituição do nome da tabela. Informe também a parte do nome da tabela que
010                   será substituída pelo valor da variável.

gama

  • Iniciante
  • **
  • Mensagens: 51
    • Altenir Gama
    • Email
Re:Variável para Tabela e Variável para Campos
« Responder #5 Online: Março 09, 2016, 10:25:21 am »
Esse glo_empresa funcionará apenas em métodos, no SQL realmente tem que ser pelos campos citados.
No seu caso:

glo_empresa     Nome da variável para substituição do nome da tabela. Informe também a parte do nome da tabela que
010                   será substituída pelo valor da variável.

Valeu! Irei testar.
Mas funciona sim o glo_empresa dentro da configuração do SQL da consulta normal, só que, qualquer alteração que eu faça na query eu tenho que refazer toda a configuração de campos, label, filtros, casas decimais etc.

exemplo:
Código: [Selecionar]
SELECT B2.B2_FILIAL, B2.B2_COD, B2.B2_LOCAL, B2.B2_QFIM, B2.B2_QATU, B2.B2_RESERVA, B2.B2_QPEDVEN, B2.B2_SALPEDI, B1.B1_DESC , B1.B1_PRV1, B1.B1_COD
FROM SB2[glo_empresa]0 AS B2
INNER JOIN SB1[glo_empresa]0 AS B1 ON B1.B1_COD = B2.B2_COD AND B1.D_E_L_E_T_ <> '*'
ORDER BY B2.B2_COD, B2.B2_FILIAL, B2.B2_LOCAL


Obrigado pela dica, irei testar.
----------------------------------------------
Altenir Gama
Skype: altenir.gama
www.altenirgama.com.br
www.facebook.com/altenirgama

gama

  • Iniciante
  • **
  • Mensagens: 51
    • Altenir Gama
    • Email
Re:Variável para Tabela e Variável para Campos
« Responder #6 Online: Março 09, 2016, 10:36:49 am »
Esse glo_empresa funcionará apenas em métodos, no SQL realmente tem que ser pelos campos citados.
No seu caso:

glo_empresa     Nome da variável para substituição do nome da tabela. Informe também a parte do nome da tabela que
010                   será substituída pelo valor da variável.


Valeu amigos, funcionou certinho.

Mais uma vez obrigado.
----------------------------------------------
Altenir Gama
Skype: altenir.gama
www.altenirgama.com.br
www.facebook.com/altenirgama

Rodrigo Goulart Padovezzi

  • Expert
  • *****
  • Mensagens: 1045
    • Email
Re:Variável para Tabela e Variável para Campos
« Responder #7 Online: Março 09, 2016, 10:38:53 am »
Como é uma consulta com inner join não funcionará a variável da tabela, isso é apenas para consulta em uma tabela.
No seu caso vou dar uma dica para não acontecer esse "reset" quando muda o select.
Colocar alias nome nos campos e após alterar não irá "resetar"
exemplo:

SELECT B2.B2_FILIAL as B2_FILIAL, B2.B2_COD as B2_COD
e assim por diante
FROM SB2[glo_empresa]0 AS B2
INNER JOIN SB1[glo_empresa]0 AS B1 ON B1.B1_COD = B2.B2_COD AND B1.D_E_L_E_T_ <> '*'
ORDER BY B2.B2_COD, B2.B2_FILIAL, B2.B2_LOCAL

Rodrigo Goulart Padovezzi

  • Expert
  • *****
  • Mensagens: 1045
    • Email
Re:[RESOLVIDO] Variável para Tabela e Variável para Campos
« Responder #8 Online: Março 09, 2016, 10:40:53 am »
Esse glo_empresa funcionará apenas em métodos, no SQL realmente tem que ser pelos campos citados.
No seu caso:

glo_empresa     Nome da variável para substituição do nome da tabela. Informe também a parte do nome da tabela que
010                   será substituída pelo valor da variável.


Valeu amigos, funcionou certinho.

Mais uma vez obrigado.


Aproveitando, também trabalho com Protheus, programo em ADVPL e fazemos customizações.

Se precisar entre em contato...