5 Replies Latest reply: Feb 15, 2016 12:23 PM by Yuri Nicolett RSS

    Login automático no QVW

    Gustavo Krawczyk Santos

      Olá a todos!

       

           Ultimamente tenho tentado fazer uma implementação de um login automático de forma que eu consiga abrir o QVW (que já contém o section access), fazer o Login com um determinado usuário e depois pressionar um botão, fechar o documento e passar para o próximo possível login.

           Depois de procurar, futricar e testar consegui uma forma para abrir de acordo com um usuário e senha em variável utilizando o comando OpenDoc(). Também consegui uma forma para passar o usuário e senha de acordo com uma tabela previamente carregada e criada na aba do qvw.

           O meu problema está na hora de fechar o QVW que contém o section access e abrir ele novamente com o próximo login. O que acontece é que o QVW com section access está aberto na mesma instância que o arquivo que está verificando os logins.

           Segue o código da macro do QVW que está verificando os logins:

      SUB GerarPDFUsuarios
          CreateObject("QlikTech.QlikView")
          set App = ActiveDocument.GetApplication
          'App.OpenDoc "D:\LGDev2\FPwBI\Suporte\Sinobras\FPwBI-Folha.qvw","6", "$1N0B%4$"
         
          'set Username = ActiveDocument.Variables("vUsuario")
          'set Password = ActiveDocument.Variables("vSenha")
          Set Table = ActiveDocument.GetSheetObject( "TB01" )
         
       For RowIter = 1 to table.GetRowCount-1            
      'LINHA                                                        'Loop para
       ler a tabela criada
              set cell = table.GetCell(RowIter,ColIter)
              set cell2 = table.GetCell(RowIter,ColIter+1)
             
                 set Username = cell
              set Password = cell2
             
             
       Set MyDoc = App.OpenDoc ("D:\Teste.qvw", Username.text, 
      Password.text)                'Abrindo documento com usuario e senha
             
       Set Button1 = 
      MyDoc.GetSheetObject("BU462")                                                               
       'Utilizando botão que contém a ação
             
              IF 
      IsObject(Button1) 
      THEN                                                                               
       'SE botão Existe Então
                  
      Button1.Press                                                                                       
       'Botão é pressionado
              END IF
              'MyDoc.GetApplication.Quit   
             
       
      'ActiveDocument.Activate                                                                           
       'Fecha documento aberto.
              'MyDoc.CloseDoc
              Set MyApp = Nothing
             
          Next
      END SUB
      
      

           No QVW Teste.qvw contém o botão que será pressionado.

           No código comentei a parte em que o arquivo é fechado pois qunado uso o MyDoc.CloseDoc não fecha o arquivo e a macro abre, e quando utilizo o MyDoc.GetApplication.Quit ele fecha toda a instância e assim cancelando o loop.

           Se alguém tiver alguma idéia de como fazer isso de outra forma ou então verificar o que pode estar errado, agradeço desde já.