Alterando as Cores Padrão

De Qknow
Ir para: navegação, pesquisa

Introdução

Apesar de não ser algo corriqueiro e usual, por vezes a troca de cores pode ser uma necessidade para refinar um portal de tomada de decisões com as tonalidades e interface visual de uma instituição que utiliza um padrão diferente do tradicional Verde, Cinza e Branco do QlikView. Existem muitos mitos a respeito da impossibilidade de mudança das cores, tanto em nível de Desktop quanto em servidor. Mas na realidade o modelo de objetos (Object Model) do QlikView permite que estes elementos possam ser alterados através da execução de chamadas as bibliotecas nativas, o que pode ser feito a partir de qualquer cliente que invoque o modelo de objetos. Neste artigo utiliza-se como cliente o próprio QlikView Desktop para criar uma instância dos objetos necessários para alteração das cores padrão de seleção, valores associados, não associados, etc.

Macros

No QlikView existem vários objetos programáveis não visiéives, acionados e manipulados por meio de métodos, propriedades e eventos. A utilização destes objetos pode ser feita por meio de uma linguagem de programação como Visual Basic .NET ou C#.NET a partir do Visual Studio, ou a partir do próprio QlikView Desktop utilizando o recurso conhecido como Macros. Na verdade, apesar do nome macro, o editor de módulos acessível pelo atalho CTRL + M habilita a invocar os objetos não visíveis programando-os com uma linguagem pseudo Visual Basic ou Java. Estas "macros" (ou rotinas) podem ser acionadas a partir de vários eventos no QlikView ou executas apenas uma vez para determinado conjunto de ações.

Macros1.png

Para alterar as cores padrão do QlikView Desktop é preciso criar uma rotina (ou macro, como queira chamar) e informar aos objetos não visuais que devem se comportar com diferentes características, neste caso, cores. Ao acessar a janela de edição de módulos é possível copiar e colar o fragmento de código a seguir.

Sub SetColorPrefs()
	Dim UserPrefs
	Set UserPrefs = ActiveDocument.GetApplication.GetUserPreferences

	' Set the "Selected" Color
	UserPrefs.CustomSelBgColor(1).PrimaryCol.Col = RGB (123,0,255)   ' Blue
	UserPrefs.CustomSelFgColor(1).PrimaryCol.Col = RGB (255,255,0)   ' Yellow
	' Set the "Possible" Color
	UserPrefs.CustomSelBgColor(2).PrimaryCol.Col = RGB (255,255,0)   ' Yellow
	UserPrefs.CustomSelFgColor(2).PrimaryCol.Col = RGB (0,0,0)       ' Black
	' Set the Excluded Color
	UserPrefs.CustomSelBgColor(5).PrimaryCol.Col = RGB (200,200,200) ' Light gray
	UserPrefs.CustomSelFgColor(5).PrimaryCol.Col = RGB (0,0,0)       ' Black
	' Set the Locked Color
	UserPrefs.CustomSelBgColor(0).PrimaryCol.Col = RGB (255,0,0)     ' Red 
	UserPrefs.CustomSelFgColor(0).PrimaryCol.Col = RGB (0,0,0)       ' Black
	
	ActiveDocument.GetApplication.SetUserPreferences UserPrefs
End sub

Após colar o fragmento de código acima dentro da janela de módulo, basta clicar no botão Check no canto superior esquerdo da janela. A mensagem *** Ready *** será exibida no topo da interface de edição de módulos. Para colocar em vigor as cores definidas, basta clicar no botão Test. Por padrão, a linguagem utilizada será uma derivação do Visual Basic, chamada de VBScript. Após clicar no botão Test as novas cores entram em vigor no QlikView Desktop.

Teste das Cores

Para testar as cores basta carregar algum fragmento de dados e adicionar uma lista para a interface. Será possível perceber a mudança das cores do QlikView para o padrão que for definido no código acima. Para testar, basta carregar uma tabela INLINE como a do exemplo a seguir. Para isso, abra o editor de scripts pressionando as teclas CTRL + E.

DataSample:
LOAD * Inline [
AnyValue
1,
2,
3];
Color1.png

Para fazer valer as alterações de cores é preciso modificar o esquema de cores do documento para personalizado. Portanto, no menu Configurações escolha Propriedades do Documento. Sob a guia Geral altere o Esquema de Cores para Personalizar.

Após salvar o arquivo .QVW e recarregar o script pressionando as teclas CTRL + R, adicione uma lista para a interface do painel e observe que as cores padrão foram alteradas. Teste outras cores voltando ao editor de módulos e informando valores diferentes para as chamadas da função RGB.

Nota:  Importante! Para fazer valer as cores personalizadas é preciso alterar o padrão de cores do documento!!


Valores válidos para as cores do usuário são:

  • CustomSelBgColor(0): Cor aplicada quando as seleções estão travadas.
  • CustomSelBgColor(1): Cor de valores selecionados na lista.
  • CustomSelBgColor(2): Cor para valores opcionais (ou associados).
  • CustomSelBgColor(3): Cor para valores não selecionados.
  • CustomSelBgColor(4): Cor para valores alternativos.
  • CustomSelBgColor(5): Cor para valores não associados (ou excluídos).
  • CustomSelBgColor(6): Cor para valores excluídos da seleção.
  • CustomSelBgColor(7): Cor para valores excluídos pelo processo de travar seleções.

Note que algumas das cores para serem testadas precisam de outras características em funcionamento, tal como o MODO AND da lista. Para maiores informações sobre o MODO E, consulte este artigo.


Informações Complementares Sobre a Macro

Longe de ser um guia de desenvolvimento, esta seção descreve os recursos utilizados acima de maneira a transferir algum conhecimento sobre o procedimento realizado.

  • O comando Dim no VBScript define uma variável. Neste caso, a variável foi definida com o nome UserPrefs. Tipicamente variáveis são definidas atribuindo-se uma tipologia, mas nas macros do QlikView esta característica não é informada. Por isso, o tipo da variável será Variant, ou variante.
  • É possível informar qualquer nome para a variável UserPrefs. Ou seja, são válidas instruções como Dim X, onde X é o nome da variável. O comando Set atribui um conteúdo para a variável. No exemplo, a variável receberá as configurações das preferências do usuário.
  • Quando Set UserPrefs = ActiveDocument.GetApplication.GetUserPreferences é executado a variável UserPrefs passa a ser um objeto do tipo preferências do usuário, permitindo o acesso a todas as configurações, inclusive as não visíveis pela interface padrão do QlikView Desktop.
  • O método CustomSelBgColor configura a cor de fundo de acordo com o numeral informado na seção anterior, enquanto CustomSelFgColor configura a cor do texto do numeral informado na seção anterior, variando de 0 a 7.
  • O método SetUserPreferences aplica as configurações realizadas na variável de preferência do usuário retornando estas preferências ao documento aberto pelo usuário. A rotina pode ser executada quando o documento for aberto ou em qualquer outro evento.


Assuntos Relacionados



Índice de Artigos | Página Principal