9 Replies Latest reply: Aug 25, 2011 12:51 PM by Eduardo Oliveira RSS

    QVD

      Olá pessoal!

       

      Fiz o seguinte código:

       

      Criei a seguinte variável -

       

       

       

       

      let

       

       

       

       

      vHoje = Day(date(now())) & Month(date(now())) & Year(date(now()));

       

       

       

       

      Depois criei um store -

       

      Store Curso into $(vHoje) .qvd (qvd);

       

       

       

       

       

        • QVD
          Erich Shiino

          Olá, Anderson.

          O store funciona para tabelas. Então, coloquei a variável como uma linha de uma tabela antes do store.

          Além disso, não precisa de tantas etapas para a criação da data do dia. Pode usar o today()

          Se precisar formatar, poderia usar o Date

          Date( Today(),'DDMMYYYY')

          let  vHoje = today();

           

          Hoje:

          load '$(vHoje)' as Hoje

          AutoGenerate(1);

           

          Store Hoje into Hoje.qvd;

           

          Espero que ajude,

           

          Erich

            • QVD

              Olá Erich!

               

              Deu certo o código que passou, mas me problema é mais sério. Exemplo: Eu preciso trazer o histórico de carregamento, ou seja, quando carrego os dados de hoje ele vai trazer a data de hoje, quando carrego os dados de amanhã tem que trazer a data de hoje mais a data de amanhã, armazenando assim um qvd para cada dia.

              Espero que tenha consegui me fazer entender.

               

              Muito obrigado desde já e se puder continuar me ajudando, ficarei mais agradecido.

               

              Abraços.

                • QVD
                  Erich Shiino

                  Ok, Vai ser uma recarga incremental. Fica mais ou menos assim:

                   

                  let  vHoje = today();

                   

                  Hoje:

                  load distinct  Hoje //Coloquei o distinct só para não replicar o dia, caso você faça a recarga mais de uma vez

                  from Hoje.qvd(qvd);

                   

                  Concatenate(Hoje) // Esse concatenate é opcional, já que as tabelas são identicas

                  load '$(vHoje)' as Hoje

                  AutoGenerate(1);

                   

                  Store Hoje into Hoje.qvd;

                   

                  Espero que ajude,

                   

                  Abs,

                   

                  Erich

                    • QVD

                      Olá Erich!

                       

                      Deu super certo o script (muito obrigado). Agora é o seguinte. Trago a tabela Hoje (no layout) com as datas da recarga, até aí OK. Minha dúvida agora e com relação ao relacionamento das tabelas já que preciso mostrar o que foi carregado no dia de hoje, amanhã preciso que mostre o que foi carregado e assim sucessivamente, ou seja, preciso que cada dia mostre o que foi carregado, lembrando que a recarga de cada dia não pode sobrepor a recarga do dia anterior.

                       

                      Muito obrigado desde já e aguardo próximos comandos (hehehe)

                        • QVD
                          Erich Shiino

                          Pode passar o script que usa para trazer os dados para vermos qual a melhor forma de criar o relacionamento?

                          Abs,

                          Erich

                            • QVD

                              let vHoje = Day(date(now())) & Month(date(now())) & Year(date(now()));

                              OLEDB CONNECT TO [Provider=OraOLEDB.Oracle.1;Persist Security Info=True;User ID=qlikview;Data Source=db_ntcco;Extended Properties=""] (XPassword is HPUPAcAPWTYQTcVNNTUB);

                               

                              [Curso]:
                              LOAD
                                  CODCURSO,
                                  Capitalize(NOMCURSO)  as NOMCURSO,
                                  Capitalize(CODDEPART) as CODDEPART;
                              SQL SELECT CODCURSO,
                                  NOMCURSO,
                                  CODDEPART
                              FROM ACAD.CURSO
                              WHERE CURNIVEL = 3;
                              LEFT JOIN ([Curso])
                              LOAD DISTINCT
                                  CODDEPART,
                                  DESCRICAO,
                                  NOMDEPART;
                              SQL SELECT
                                  CODDEPART,
                                  DESCRICAO,
                                  NOMDEPART
                              FROM ACAD.CENTRO;

                               

                              Hoje:
                              load distinct  Hoje //Coloquei o distinct só para não replicar o dia, caso você faça a recarga mais de uma vez
                              from Hoje.qvd(qvd);

                              //Concatenate(Hoje) // Esse concatenate é opcional, já que as tabelas são identicas
                              load '$(vHoje)' as Hoje
                              AutoGenerate(1);

                              Store Curso into Hoje.qvd;

                                • QVD
                                  Erich Shiino

                                  Anderson,

                                  Deve ficar mais ou menos assim:

                                  (da primeira vez, como curso.qvd não existe, você deve ignorar o erro)

                                   

                                   

                                  let vHoje = Day(date(now())) & Month(date(now())) & Year(date(now()));

                                  OLEDB CONNECT TO [Provider=OraOLEDB.Oracle.1;Persist Security Info=True;User ID=qlikview;Data Source=db_ntcco;Extended Properties=""] (XPassword is HPUPAcAPWTYQTcVNNTUB);

                                   

                                  Curso:
                                  LOAD

                                  '$(vHoje)' as Data,
                                      CODCURSO,
                                      Capitalize(NOMCURSO)  as NOMCURSO,
                                      Capitalize(CODDEPART) as CODDEPART;
                                  SQL SELECT CODCURSO,
                                      NOMCURSO,
                                      CODDEPART
                                  FROM ACAD.CURSO
                                  WHERE CURNIVEL = 3;
                                  LEFT JOIN ([Curso])
                                  LOAD DISTINCT
                                      CODDEPART,
                                      DESCRICAO,
                                      NOMDEPART;
                                  SQL SELECT
                                      CODDEPART,
                                      DESCRICAO,
                                      NOMDEPART
                                  FROM ACAD.CENTRO;

                                   

                                  concatenate(Curso)

                                  Load * from Curso.qvd (qvd)

                                  where Data <> '$(vHoje)'

                                  ;

                                   

                                  store Curso into Curso.qvd;

                      • QVD
                        Eduardo Oliveira

                        Srs., boa tarde.

                         

                        Eu já passei por situação parecida, e a solução foi um pouco mais simples, na hora de Definir o conteúro da variável. Veja o Exemplo:

                         

                        let Var_Nome_Arquivo = 'Historico_' & Month(now()) & Year(now()) & '.QVD';

                         

                        [Arquivo]:

                        load .......

                        from ......

                         

                        Store * from Arquivo into $(Var_Nome_Arquivo) (qvd);

                         

                        Acho que dá para adptar a sua situação.

                         

                        Att.,