Skip to main content
Announcements
Live today at 11 AM ET. Get your questions about Qlik Connect answered, or just listen in. SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
srchagas
Creator III
Creator III

Selecionar Campos e parametrizar

Boa tarde  Pessoal

Me pediram apra fazer um coisa aqui que nunca fiz :
criar um lista com Alguns campos que possuo no qvd....ja tentei usando fields mas trouxe tudo.

1 Solution

Accepted Solutions
fernando_tonial
Partner - Specialist
Partner - Specialist

Olá Thiago,

Tenho esse script que busca todos os campos de um arquivo QVD, pode ser oq vc quer.

//Lista das tabelas Fatos envolvidas no projeto

TMPFato:

First 1

LOAD FileBaseName() AS TMPNomeFato FROM $(vDadosExtraidos)FAT*.qvd (qvd);

Fato:

LOAD Concat(Chr(39)&TMPNomeFato&Chr(39),',') as NomeFato Resident TMPFato;

LET vFatos = Peek('NomeFato');

DROP Tables TMPFato, Fato;

//Laço para leitura de todas as fatos informadas na tabela

FOR Each vNomeFato in $(vFatos)

          LET vNroCamposFato = QvdNoOfFields('$(vDadosExtraidos)$(vNomeFato).qvd');

//          LET vNomeFato1 = QvdTableName ('$(vNomeFato).qvd');

          //Laço para leitura de todos os campos das fatos

          FOR c=1 to vNroCamposFato

                    LET vCampo = QvdFieldName('$(vDadosExtraidos)$(vNomeFato).qvd',$(c));

                    FatoCampos:

                    LOAD

                              '$(vNomeFato)'           AS Fato,

                              '$(vCampo)'               AS FatCampo

                    AutoGenerate(1);

          NEXT c

NEXT vNomeFato

Abraços,

Tonial.

Don't Worry, be Qlik.

View solution in original post

5 Replies
fernando_tonial
Partner - Specialist
Partner - Specialist

Olá Thiago,

Tenho esse script que busca todos os campos de um arquivo QVD, pode ser oq vc quer.

//Lista das tabelas Fatos envolvidas no projeto

TMPFato:

First 1

LOAD FileBaseName() AS TMPNomeFato FROM $(vDadosExtraidos)FAT*.qvd (qvd);

Fato:

LOAD Concat(Chr(39)&TMPNomeFato&Chr(39),',') as NomeFato Resident TMPFato;

LET vFatos = Peek('NomeFato');

DROP Tables TMPFato, Fato;

//Laço para leitura de todas as fatos informadas na tabela

FOR Each vNomeFato in $(vFatos)

          LET vNroCamposFato = QvdNoOfFields('$(vDadosExtraidos)$(vNomeFato).qvd');

//          LET vNomeFato1 = QvdTableName ('$(vNomeFato).qvd');

          //Laço para leitura de todos os campos das fatos

          FOR c=1 to vNroCamposFato

                    LET vCampo = QvdFieldName('$(vDadosExtraidos)$(vNomeFato).qvd',$(c));

                    FatoCampos:

                    LOAD

                              '$(vNomeFato)'           AS Fato,

                              '$(vCampo)'               AS FatCampo

                    AutoGenerate(1);

          NEXT c

NEXT vNomeFato

Abraços,

Tonial.

Don't Worry, be Qlik.
srchagas
Creator III
Creator III
Author

Bom Dia Fernando

Ajudou um pouco por que na verdade faço leitura de qvd's  então vou ter que criar todos assim com mesmo nome para fazer a chave sintetica disso?

outra duvida de : $(vDadosExtraidos) troco pelo nome do meu qvd?

fernando_tonial
Partner - Specialist
Partner - Specialist

Bom Dia Thiago,

Nesse exemplo que te passei, vc fica com apenas uma tabela, sendo essa tabela com dois campos Fato e FatCampo, assim vc tem todos os campos de todos os seus arquivos QVD.

$(vDadosExtraidos) é uma variável que possui o diretório dos meus arquivos QVD que foram extraidos das bases de dados.

Abraços,

Tonial.

Don't Worry, be Qlik.
srchagas
Creator III
Creator III
Author

Bom Dia Fernando


obrigado pela resposta, eu fiz a alteração aqui mas toda vez que estou depurando está vindo valores NULL

LET vFatos = Peek('PLACAVEICULO');

vCampo<NULL>
vNomeFato<NULL>
c<NULL>
vPath"C:\Users\tcn\Desktop\QlikviewDesenvolvimento\qvd\Qv1.qvd"
vFatos<NULL>
PLACAVEICULO<NULL>

deixei os mesmo nomes, apenas mudei para um  qvd meu e coloquei um campo que eu queria coloquei no quote acima só que vem null, fiquei confuso.

só que sei que esse campo está preenchido.

sds

srchagas
Creator III
Creator III
Author

Resolvi aqui, Obrigado fernando funcionou!