Fala pessoal, beleza?
Apesar de não gostar muito de alterar o que é padrão da ferramenta, alguns clientes insistem: Quero alterar o esquema de cores do QlikView para a cor padrão da minha empresa!
Você já precisou fazer isso? Conseguiu alterar no documento, mas não consegue repassar esse esquema na visualização pelo servidor? Vamos aprender!
Mas de qual padrão de cores estamos falando?
É o padrão de cores para identificar a associação dos dados:
Por padrão, essas associações são referenciadas pelas cores: Verde, Cinza e Branco:
- Verde: Valores selecionados
- Cinza: Valores não associados
- Branco: Valores associados
Para alterar essas cores, temos que se utilizar de códigos em Macro.
A macro
Primeiramente vamos entender o que é uma macro: basicamente é um módulo do qlikview que permite a interação através de seus objetos (listas, tabelas, gráficos) e também de suas configurações não visíveis. Através da macro também podemos criar associações entre qlikview e outras ferramentas, por exemplo: PowerPoint, Excel, etc.
Macros são executados utilizando automação COM.
Em sua essência, a COM é uma forma independente de linguagem de programação de implementar objetos de forma que eles possam ser utilizados em diferentes ambientes dos quais foram criados, mesmo entre diferentes máquinas e arquiteturas. A COM permite a reutilização de objetos sem o conhecimento de sua implementação interna pois força o desenvolvedor a fornecer uma interface bem definida, que está separada da implementação. WikiPedia.
No QlikView, é possível se utilização da plataforma COM através da linguagem VbScript e JScript.
Existe uma aplicação da própria Qlik que fornece MUITOS exemplos de como implementar uma macro com chamada de objetos do qlikview. Essa aplicação se chama API GUIDE. Faça o download dela clicando aqui!
Como escrevo um código em macro?
No Qlikview, a macro esta disponível através do atalho Ctrl + M ou do menu Ferramentas ou através do ícone de atalho (da barra de desenho), conforme imagem:
Acessando o Editor, a seguinte tela será exibida:
Existem três configurações importantes a serem realizadas nas macros.
Linguagem de script
Defina qual a linguagem você vai escrever o seu código de macro. No nosso exemplo utilizaremos VBscript, então devemos setar esta opção, conforme imagem:
Segurança
Nesta etapa de segurança iremos realizar duas configurações: nível de acesso que a macro precisa para funcionar e segurança local (de quem vai executar).
Com esta configuração estaremos dando acesso total para a execução de nossa macro.
IMPORTANTE: Sempre tome cuidado com os tipos de código que vai liberar a segurança, pois através de macros é possível manipular todo o seu computador. Cuidado 😀
A macro para alterar o modelo padrão de cores
Neste exemplo, iremos alterar apenas os valores selecionados para a seguinte configuração:
- Fonte azul
- Fundo branco
Maiores informações do código e outras configurações veremos em seguida.
Copie e cole o código em seu editor de módulo:
Sub ModeloDeCores() set MeuModeloDeCores = ActiveDocument.GetApplication.GetUserPreferences MeuModeloDeCores.CustomSelBgColor(1).PrimaryCol.Col = RGB (0,0,255) MeuModeloDeCores.CustomSelFgColor(1).PrimaryCol.Col = RGB (255,255,255) ActiveDocument.GetApplication.SetUserPreferences MeuModeloDeCores end sub
Feito isso, clique sobre o botão Verificar, para o editor nos informar se existe ou não algum erro no código informado:
Se tudo ocorreu bem, então deverá aparecer a palavra “*** Pronto ***” no barra superior e também o nome do módulo que criamos: ModeloDeCores.
Agora precisamos clicar sobre o botão “Teste” para executar essa macro:
Após clicar sobre o botão, rapidamente será apresentada a palavra “*** Executando ***” no lugar da palavra “*** Pronto ***”:
e logo depois a palavra “*** Pronto ***” volta a aparecer:
Escolhendo o novo modelo de cores
Depois de executar esta macro o esquema de cores continuará o padrão, pois precisamos informar ao QlikView que queremos utilizar o novo padrão de cores setado, para isso vá em: Configuração -> Propriedades do Documento:
Na aba Geral, vá até Esquema de Cores e altere o valor de Padrão para Personalizar:
Resultado
Agora ou fazer uma seleção na lista, veremos o novo padrão de cores funcionando:
Muito bom!
Outras configurações
No código de exemplo alteramos apenas a fonte e cor de fundo dos valores selecionados. Como podemos alterar as cores de valores não associados e excluídos?
Bom, vamos primeiramente conhecer as funções utilizadas:
- CustomSelBgColor é responsável por alterar a cor de fundo;
- CustomSelFgColor é responsável por alterar a cor da fonte.
Repare que no código estamos passando o parâmetro 1 para essas funções:
É esse o parâmetro que define qual o tipo de padrão queremos alterar, vamos a lista:
0: Valores travados;
1: Valores selecionados;
2: Valores associados;
3: Valores não selecionados;
4: Valores alternativos;
5: Valores não associados;
6: Valores excluídos da seleção;
7: Valores excluídos pelo processo de travar seleções.
IMPORTANTE: Acredito que alguns não conhecem todos esses estados de seleção, mas isso vai ficar para um outro post! Me cobrem 😀
Outro exemplo de macro
Supomos agora que também queremos alterar as cores dos valores associados e dos valores não associados:
- Valores associados – Cor de fundo vermelho e cor da fonte branca;
- Valores não associados – Cor de fundo preto e cor da fonte branca.
Sub ModeloDeCores() set MeuModeloDeCores = ActiveDocument.GetApplication.GetUserPreferences MeuModeloDeCores.CustomSelBgColor(1).PrimaryCol.Col = RGB (0,0,255) MeuModeloDeCores.CustomSelFgColor(1).PrimaryCol.Col = RGB (255,255,255) MeuModeloDeCores.CustomSelBgColor(2).PrimaryCol.Col = RGB (255,0,0) MeuModeloDeCores.CustomSelFgColor(2).PrimaryCol.Col = RGB (255,255,255) MeuModeloDeCores.CustomSelBgColor(5).PrimaryCol.Col = RGB (0,0,0) MeuModeloDeCores.CustomSelFgColor(5).PrimaryCol.Col = RGB (255,255,255) ActiveDocument.GetApplication.SetUserPreferences MeuModeloDeCores end sub
Veja o resultado:
Eca! Acho que o padrão fica mais bonito, né? rsrs!
Passando essa configuração padrão para o servidor
Se tentarmos adicionar essa aplicação para o nosso ambiente do QvServer, iremos notar que as cores continuarão no padrão (Verde, Branco e Cinza), isso ocorre porque realizamos a alteração apenas para o QVW. O nosso servidor continuará acessando as aplicações através do esquema padrão de cores:
IMPORTANTE: Para realizar essas alterações teremos que parar o serviço QlikView Server Service e também editar um arquivo de configuração do servidor. Lembre-se sempre de criar backup desses arquivos antes de qualquer alteração no seu servidor.
Setando o esquema de cores personalizado no servidor
Primeiramente teremos que ir até o arquivo Settings.ini do nosso usuário, fica neste diretório: C:\Users\username\AppData\Roaming\QlikTech\QlikView
NOTA: Troque o username pelo nome do seu usuário no computador.
Localize o arquivo Settings.ini
Abra-o e procure pelas linhas que comecem com a palavra “CustSel”, conforme imagem:
Selecione todas essas linhas e copie (Ctrl + C).
NOTA: Não copie os valores que coloquei aqui, pois cada configuração realizada vai gerar uma sequencia de números diferentes!
Agora temos que parar o serviço do QlikView Server Service! É importante que faça isso fora de horário de uso de seu ambiente, pois irá desconectar os usuários das aplicações.
No menu de busca do Windows, digite: services.msc
Clique sobre o programa localizado.
Nesta tela, localize o serviço “Qlikview Server”, clique sobre o nome do serviço e depois clique no ícone para parar o serviço:
A coluna Status deverá ficar em branco.
Agora podemos editar o arquivo Settings.ini do servidor que fica localizado no seguinte diretório: C:\ProgramData\QlikTech\QlikViewServer
Abra-o e cole o texto, que copiou do Settings.ini de seu usuário, na linha abaixo da palavra [Settings 7], conforme imagem:
Salve e inicie o serviço do QlikView Server:
A coluna Status deverá ficar com a palavra Iniciado.
Agora a aplicação em que executamos a macro ficará com o novo padrão de cores:
Todas as aplicações ficarão com este padrão?
Não, você terá que repetir o processo de executar a macro e alterar o esquema de cores para personalizado em cada aplicação que deseja.
Se quiser fazer o download da aplicação de modelo, clique aqui!
Até a próxima semana pessoal!