Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Ola, estou trabalhando com varios QVD's alguns com estruturas iguais outros com estruturas diferentes....o problema é que varios deles possui muitas colunas que até o propietario do qvd (criador) não sabe a existencia de todos os campos e eu não posso ficar carregando uma previa do qvd pra ficar verificando se uma determinada coluna existe naquele qvd...preciso muito poupar tempo e agilizar esse processo.
Preciso de uma função para ser aplicada no momento da carga do QVD que verifique se um determinado campo existe ou não, caso existindo carrega ele normalmente, caso não informe a não existencia dele um 'Não encontrado' ja serve, isso em python por exemplo seria tranquilo fazer, porem na liguagem Qlik estou sem opções.
Obs: estou trabalhando com o QLikview desktop versão 12, muito obrigado caso possam ajudar
Olá, você pode fazer o uso das funções QvdNoOfFields() e QvdFieldName() para fazer o que vc deseja.
Segue um exemplo.
SET vNomeArquivo = 'NomeBaseArquivoQVD';
LET vNroCamposArquivo = QvdNoOfFields('$(vNomeArquivo).qvd');
//Laço para leitura de todos os campos do Arquivo
FOR c=1 to vNroCamposArquivo
LET vCampo = QvdFieldName('$(vNomeArquivo).qvd',$(c));
ArquivoCampos:
LOAD
'$(vNomeArquivo)' AS Arquivo,
'$(vCampo)' AS ArquivoCampo
AutoGenerate(1);
NEXT c
Resultado Final.
Don't worry, be Qlik.
Tonial.
Olá, você pode fazer o uso das funções QvdNoOfFields() e QvdFieldName() para fazer o que vc deseja.
Segue um exemplo.
SET vNomeArquivo = 'NomeBaseArquivoQVD';
LET vNroCamposArquivo = QvdNoOfFields('$(vNomeArquivo).qvd');
//Laço para leitura de todos os campos do Arquivo
FOR c=1 to vNroCamposArquivo
LET vCampo = QvdFieldName('$(vNomeArquivo).qvd',$(c));
ArquivoCampos:
LOAD
'$(vNomeArquivo)' AS Arquivo,
'$(vCampo)' AS ArquivoCampo
AutoGenerate(1);
NEXT c
Resultado Final.
Don't worry, be Qlik.
Tonial.
@fernando_tonial , obrigado pela ajuda, mas esta dando erro de sintaxe no FOR c=1 to vNroCamposArquivo, segue o scrpit e o resultado:
SET vNomeArquivo = 'D:\Treinamento Pessoal\Qlikview\Porjeto 1 - Vendas\Dados\Vendas_Transformação.qvd';
LET vNroCamposArquivo = QvdNoOfFields('$(vNomeArquivo).qvd');
//Laço para leitura de todos os campos do Arquivo
FOR c=1 to vNroCamposArquivo
LET vCampo = QvdFieldName('$(vNomeArquivo).qvd',$(c));
ArquivoCampos:
LOAD
'$(vNomeArquivo)' AS Arquivo,
'$(vCampo)' AS ArquivoCampo
AutoGenerate(1);
NEXT c
@vitexo87
Você tem que remover o QVD da primeira variável.
SET vNomeArquivo = 'D:\Treinamento Pessoal\Qlikview\Porjeto 1 - Vendas\Dados\Vendas_Transformação';
Pois na linha seguinte ele coloca a extensão.
LET vNroCamposArquivo = QvdNoOfFields('$(vNomeArquivo).qvd');
Don't worry, be Qlik.
Tonial