8 Replies Latest reply: Oct 1, 2015 3:49 PM by agnaldo neves RSS

    Ao carregar script, verificar tabela temporária

    agnaldo neves

      Bom gostaria de ajuda.

      Preciso ao carregar o script que ele check uma tabela Liberação no qlikview e não deixe carregar.

      Lembrando que o campo liberação 5 da Tabela Sql, deverá ser o mesmo da Liberação

      Campo: Liberação5

      A lógica é seguinte: Caso a TabelaSql Campo: Liberação5 seja diferente da Tabela Liberação, que ele não carreque o script.2015-09-30_13-44-44.jpg

      Existe como?

       

      OLEDB CONNECT32 TO [Provider=SQLOLEDB.1;Persist Security Info=True;User ID=sa;Initial Catalog=S9_Controle;Data Source=localhost\shopcontrol9;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=AGNALDO;Use Encryption for Data=False;Tag with column collation when possible=False] (XPassword is caAMaJVMODaCWYIGTRCB);

       

      TabelaLiberação:

      SQL SELECT "Data_Alteracao",

          "Data_Validade",

          Liberacao1,

          Liberacao2,

          Liberacao3,

          Liberacao4,

          Liberacao5,

          Ordem,

          "Ordem_Funcionario_Alteracao",

          Validacao

      FROM "S9_Controle".dbo.Liberacao;

       

       

       

       

      LiberacaoTemp:

      LOAD * INLINE [

          Liberacao5,

          SZLC

       

       

      ];

      Section Application;

        • Re: Ao carregar script, verificar tabela temporária
          agnaldo neves

          Me passarm um modelo assim, mas não funcionou..

          Tem como melhorar...

           

          SET vBloqueiaQVW = 'SZLC'; 

           

          if vBloqueiaQVW <> 'SZLC' THEN 

           

          TRACE 'Liberado'; 

           

          ELSE 

           

          TRACE 'Bloqueado...'; 

           

          ENDIF 

          • Re: Ao carregar script, verificar tabela temporária
            Yuri Nicolett

            Agnaldo, qual que é a lógica que você precisa?

            Verificar se o campo Liberacao5 for diferente de 'SZLC', se for diferente carrega a tabela, caso contrário não carrega?

                • Re: Ao carregar script, verificar tabela temporária
                  agnaldo neves

                  Se for igual carregar, se for diferente não carregar..

                      • Re: Ao carregar script, verificar tabela temporária
                        agnaldo neves

                        Yuri, eu acho que devo está fazendo algo errado.

                        Seque o arquivo

                         

                        http://consultoriasoft.com.br/arquivos/121.zip

                         

                        A ideia é simples, Tenho um tabela sql server chamada liberacao5

                        a cada 03 meses este numero é trocado.

                        Eu vou digitar este número dentro do script do qlikview.

                        Então quando for carregar o script e campo liberacao5 for diferente liberacao5 que eu digitei ele não carreque o script.

                        Talvez você tenha me passado corretamente. Eu que não tenha feito de forma correta.

                         

                         

                        2015-09-30_21-19-49.jpg

                         

                        OLEDB CONNECT32 TO [Provider=SQLOLEDB.1;Persist Security Info=True;User ID=sa;Initial Catalog=S9_Real;Data Source=localhost\shopcontrol9;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=AGNALDO;Use Encryption for Data=False;Tag with column collation when possible=False] (XPassword is EbWbXJVMODaCWYIGTJQA);

                         

                         

                         

                        LOAD * INLINE [

                            Liberacao1, Liberacao2, Liberacao3, Liberacao4, Liberacao5, Ordem

                            BLA, BLE, BLI, BLO, SZLC, BLU

                        ];

                         

                         

                        IF FieldValue('Liberacao5',1) = 'SZLC' THEN

                         

                         

                          TRACE

                          LOAD Ordem,

                            Liberacao1,

                            Liberacao2,

                            Liberacao3,

                            Liberacao4,

                            Liberacao5,

                            "Data_Validade",

                            "Data_Alteracao",

                         

                         

                            "Ordem_Funcionario_Alteracao",

                            Validacao;

                        SQL SELECT *

                        FROM "S9_Controle".dbo.Liberacao;

                         

                         

                        ELSE

                         

                         

                          TRACE NÃO VAI CARREGAR NADA!;

                         

                         

                        END IF

                         

                         

                        DROP TABLE TabelaLiberação;

                          • Re: Ao carregar script, verificar tabela temporária
                            Yuri Nicolett

                            Segue em anexo Agnaldo

                             

                            Você terá que adaptar um pouco o script, mas basicamente é:

                             

                            1. Cria uma tabela com o valor que deseja verificar (no exemplo a tabela é Informacao_A_Ser_Verificada)
                            2. Faça uma leitura da sua tabela do banco e carregue somente o campo a ser verificado (no exemplo a tabela é Informacao_Do_Banco)
                            3. Faça a verificação dos campos (IF FieldValue('CampoDigitado',1) = FieldValue('Liberacao5',1) THEN)
                              1. Importante informar que: A comparação que criei vai verificar a primeira linha de cada tabela, se a sua tabela do banco retornar várias informações, então você precisa tratar isso ou alterar a forma de verificação.
                            4. De acordo com a verificação eu carrego ou não as informações.
                              • Re: Ao carregar script, verificar tabela temporária
                                agnaldo neves

                                Obrigado Yuri 150% certo.

                                Só tenho que colocar o script dentro da rotina e tudo certo.

                                 

                                 

                                Não alterou a linha ok 100%

                                2015-10-01_16-46-23.jpg

                                 

                                Alterei o campo: 100% ok

                                 

                                2015-10-01_16-45-08.jpg

                                 

                                 

                                OLEDB CONNECT32 TO [Provider=SQLOLEDB.1;Persist Security Info=True;User ID=sa;Initial Catalog=S9_Real;Data Source=localhost\shopcontrol9;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=AGNALDO;Use Encryption for Data=False;Tag with column collation when possible=False] (XPassword is EbWbXJVMODaCWYIGTJQA);

                                 

                                Informacao_A_Ser_Verificada:

                                LOAD * INLINE [

                                    CampoDigitado

                                    SZLM

                                ];

                                 

                                 

                                Informacao_Do_Banco:

                                SQL SELECT

                                  Liberacao5

                                FROM "S9_Controle".dbo.Liberacao;

                                 

                                 

                                IF FieldValue('CampoDigitado',1) = FieldValue('Liberacao5',1) THEN

                                 

                                 

                                  TRACE Carrega a tabela!;

                                 

                                  Liberacao:

                                  LOAD

                                  Ordem,

                                     Liberacao1,

                                     Liberacao2,

                                     Liberacao3,

                                     Liberacao4,

                                     Liberacao5,

                                     "Data_Validade",

                                     "Data_Alteracao",

                                     "Ordem_Funcionario_Alteracao",

                                     Validacao;

                                  SQL SELECT *

                                  FROM "S9_Controle".dbo.Liberacao;

                                 

                                 

                                  OLEDB CONNECT32 TO [Provider=SQLOLEDB.1;Persist Security Info=True;User ID=sa;Initial Catalog=S9_Real;Data Source=localhost\shopcontrol9;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=AGNALDO;Use Encryption for Data=False;Tag with column collation when possible=False] (XPassword is SEDHWJVMODaCWYIGTRBA);

                                    //-------- Start Multiple Select Statements ------

                                 

                                 

                                Classes:

                                LOAD Ordem,

                                    Codigo,

                                    Nome,

                                    Deposito,

                                    "Nao_Envia_Web",

                                    "Data_Alteracao",

                                    Inativo,

                                    "Ordem_Funcionario_Alteracao",

                                    Validacao;

                                SQL SELECT *

                                FROM "S9_Real".dbo.Classes;

                                //-------- End Multiple Select Statements ------

                                 

                                 

                                 

                                 

                                 

                                 

                                 

                                 

                                ELSE

                                 

                                 

                                  TRACE NÃO VAI CARREGAR NADA!;

                                 

                                 

                                END IF

                                 

                                 

                                DROP TABLE Informacao_A_Ser_Verificada, Informacao_Do_Banco;