Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Login automático no QVW

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á.

1 Solution

Accepted Solutions
nicolett_yuri

Gustavo, a sessão de acesso basicamente faz uma seleção em um campo, creio que este deva ser o procedimento mais simples (e não abrir o qvw e fazer login com um usuário).

Faça da seguinte forma: O seu acesso deve partir de um usuário que tenha acesso a TODOS os dados, ou seja, não sofre redução de dados. Em sua macro, faça um processo para selecionar o que o usuário XPTO pode ver e gere o seu relatório, depois selecione o que o usuário XPTU pode ver e gere o seu relatório e assim por diante.

View solution in original post

5 Replies
nicolett_yuri

Acho que ideal para você é criar uma sessão de acesso através do NTNAME, desta forma se o usuário que vai abrir este QVW estiver na sessão, não será solicitado o login.

Not applicable
Author

Yuri,

     Se não estou enganado, dessa forma a pessoa que estaria na sessão seria a que abriria o arquivo correto? Nesse caso, como eu faria para passar por todos os usuários?

nicolett_yuri

Sim, mas porque você precisaria logar com todos os usuários?

Not applicable
Author

Basicamente, porque foi o que me pediram para ser feito. No caso o botão que está no outro arquivo gera um pdf e foi me pedido para que gerasse um relatório com as informações do qvw em um PDF e além disso, que respeitasse a restrição de informação que cada usuário pode visualizar.

nicolett_yuri

Gustavo, a sessão de acesso basicamente faz uma seleção em um campo, creio que este deva ser o procedimento mais simples (e não abrir o qvw e fazer login com um usuário).

Faça da seguinte forma: O seu acesso deve partir de um usuário que tenha acesso a TODOS os dados, ou seja, não sofre redução de dados. Em sua macro, faça um processo para selecionar o que o usuário XPTO pode ver e gere o seu relatório, depois selecione o que o usuário XPTU pode ver e gere o seu relatório e assim por diante.