Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
srchagas
Not applicable

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.

Tags (1)
1 Solution

Accepted Solutions
fernando_tonial
Not applicable

Re: Selecionar Campos e parametrizar

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.

5 Replies
fernando_tonial
Not applicable

Re: Selecionar Campos e parametrizar

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.

srchagas
Not applicable

Re: Selecionar Campos e parametrizar

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
Not applicable

Re: Selecionar Campos e parametrizar

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.

srchagas
Not applicable

Re: Selecionar Campos e parametrizar

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
Not applicable

Re: Selecionar Campos e parametrizar

Resolvi aqui, Obrigado fernando funcionou!