2015

Fala pessoal, tudo bom?

Hoje quero abordar sobre o tema de layout. Este é um tema muito importante pra mim, pois me considero uma pessoa muito fraca em layout. O estudo que realizei para esta semana vai ajudar muito a todos nos (principalmente eu rsrs).

Todas as citações e autores que pesquisei serão citados com direcionamentos para os seus materiais. Um outro material importante do post foi essa dissertação de mestrado: Aqui.

 


 
Famosas perguntas

Qual a melhor maneira de posicionar os objetos em um dashboard?

Qual a posição devo disponibilizar os filtros?


 
A maneira como os olhos das pessoas se movimentam ao longo de interfaces gráficas digitais. É de extrema importância o conhecimento dos padrões de visualização de dados em telas computadorizadas, pois esta é a única maneira de posicionar, com eficácia, títulos, barras de navegação, gráficos, filtros, entre outros elementos que formam a interface.

 


 
Exploração visual e áreas de maior visibilidade da tela
De acordo com LYNCH e HORTON, ao visualizarem uma interface gráfica digital, primeiro os usuários vêem as telas como grandes massas de formatos e cores, com os elementos do primeiro plano contrastando com a área de
fundo. Em seguida, os usuários começam a identificar informações específicas, inicialmente através dos gráficos (quando presentes), e somente então eles começam a analisar gramaticalmente o texto e a ler as palavras e frases que o compõem.

Os 10 ou 12 centímetros superiores são a parte que estará mais visível. Logo, a posição dos elementos faz toda a diferença. Em interfaces projetadas para oferecer uma navegação eficiente.

 



A exploração da interface gráfica digital divide-se em 7 zonas de visualização.

  1. O olhar direciona-se para o lado superior esquerdo da tela.
  2. Depois, movimenta-se da esquerda para a direita.
  3. Em seguida, o olhar desce para a parte inferior esquerda e a partir deste ponto, passa a explorar as extremidades da tela.
  4. Explora a extremidade superior esquerda,
  5. Depois explora a extremidade superior direita.
  6. Então, o olhar dirige-se para a extremidade inferior esquerda,
  7. Finalizando com um movimento na direção da extremidade inferior direita.


Abaixo a representação a seguir, é possível observar a trajetória de exploração visual de uma interface.
 
Layout_01

Em culturas diferentes da ocidental, onde o sentido da leitura é realizado da direita para a esquerda, estes processos de exploração visual da interface gráfica digital talvez sejam inválidos.

Ainda de acordo com STEVE OUTING e LAURA RUEL, o instinto das pessoas faz com que elas olhem para a área localizada no canto superior esquerdo da tela, conforme é possível observar na representação de áreas de prioridade a seguir.
Sendo assim, ao desenvolver uma interface gráfica digital, deve-se dar grande importância para as informações que estarão contidas nestas áreas de prioridade.

Layout_02

 


 
Esses autores também descrevem que as pessoas costumam olhar para os elementos textuais da interface antes dos seus olhos se fixarem em fotos ou gráficos. Em páginas com muita informação textual captam a atenção do olhar, especialmente quando estão localizados na parte superior esquerda da tela. Fontes menores encorajam o comportamento de leitura das palavras, enquanto fontes maiores promovem a varredura da página (pessoas lêem apenas as primeiras palavras e só dão continuidade ao processo caso a sua atenção seja despertada por estas palavras).

Pessoas não estão acostumadas a observar menus de navegação no lado direito das interfaces.

Ao tratar de gráficos, os autores afirmam que tanto para imagens quanto para textos prevaleceu a regra básica: o tamanho do gráfico importa. Quanto maior a imagem, ou o banner, maior o tempo que as pessoas permaneceram olhando para a mesma.

 


Conclusão

Uma peculiaridade da mente humana é que nossa memória visual é muito mais duradoura que a memória textual. É por isso que temos muito mais facilidade de esquecer um nome que um rosto. Desta forma, a construção da interface gráfica digital deve ser simples, pois quanto mais simples, mais cognitivo. Sendo mais cognitivo, atingirá a compreensão do usuário.

Pense em sua interface como uma embalagem. Ela deve conter certas características como: facilidade de aprendizagem, simplicidade de uso e emitir clareza.

 



Em anexo, também disponibilizo uma material referente ao posicionamento de navegação e exibição do QlikView. Clique aqui para fazer o download.

Uma antiga aplicação, que não esta mais sendo utilizada, esta prestes a ser removida da pasta de acesso do QlikView Server. Sabendo que este QVW não é utilizado a décadas, logo optamos por remover essa aplicação de nosso ambiente. Lembro-me de remover as tasks de recarga e depois vou até o diretório onde o arquivo se encontra e SHIFT + DELL!
Pronto! Arquivo removido, uma aplicação a menos para dar manutenção

Um tempo se passa e chegam novas requisições de acessos para determinadas aplicações. Sem nenhuma dúvida acessamos ao nosso querido QMC, encontramos o QVW no qual solicitaram acesso e vou adicionar as licenças solicitadas, só que não... nenhuma licença disponível para alocar a novos usuários.


Indignado! Pois tempos atrás foi removido um QVW e liberada algumas Calls para utilização.
Agora verifico a parte de licenciamento em meu QMC e, novamente, vejo a informação de que todas as licenças estão alocadas.


Inicio uma varredura, QVW a QVW (ninguém merece ----- PS: no futuro disponibilizo uma app para facilitar nossa vida nesse processo!) para entender e identificar com quem esta as licenças que deveriam estar disponíveis para utilização.
QVW a QVW vou anotando a quantidade de licença e para quem foi disponibilizado.


Passado um tempo, mapeada todas as aplicações e seus respectivos usuários, identifico que alguma coisa "Pode" estar errada, o número de licenças alocadas em cada QVW não bate com o número total de licenças em que meu ambiente deveria possuir.


E agora?
...
...
...


Aff! Esqueci de remover as licenças daquele painel em que deletei! Porém essa aplicação não esta mais aparecendo em meu QMC. Como vou remover essas licenças e recupera-las para utilização?


Angustiado tento reiniciar todos os serviços do QlikView Server..... NADA!
Aflito tento remover o .SHARED daquela aplicação..... NADA!
Desesperado tento remover o .pgo do root folder.... NADA!!


E agora? Perdi a licença?


rsrsrs
Calma!


Existe uma luz!


Vamos lá

Solução 1

  1. Pare o serviço "QlikView Server".
  2. Adicione uma linha com a informação "PgoAsXmlAlso=1" logo abaixo da linha que contém a informação [Settings 7] no arquivo Settings.ini que fica no diretório "C:\ProgramData\QlikTech\QlikViewServer".
  3. Inicie o serviço "QlikView Server"
  4. Crie um documento, em branco, com o exato nome do documento que foi removido e ficou com as licenças presas.
    1. Caso não se recorde do nome do documento, encontre o arquivo CalData.pgo.xml que se encontra dentro do diretório Root
  5. Abra o QMC. Agora o documento deve reaparecer e assim será possível remover as licenças alocadas para ele.

 

Solução 2

Pare os serviços "QlikView Server" e "QlikView Management Service" e depois remova o arquivo "caldata.pgo" do diretório Root (diretório em que esta mapeado o QVS) e também do diretório "C:\ProgramData\QlikTech\QlikViewServer".

OBS: Esse método é aconselhável somente se a primeira solução não tenha dado certo.

 

 

Solução 3

Remova a licença de seu QlikView Server e aplique-a novamente.

OBS: Esse método é aconselhável somente para ambientes pequenos e caso nenhuma das outras alternativas funcione.

 

 

Pessoal, nunca se esqueçam de fazer backup dos arquivos antes de remove-los. Existe um risco grande de parar o seu ambiente.

De vez em quando aparece uma discussão aqui sobre melhores práticas de projetos em QlikView, deploy de aplicações, melhores práticas de desenvolvimento, etc.

 

A Qlik já consolida e propõe uma grande coleção de melhores práticas

Sugiro a todos participar deste grupo Qlik Deployment Framework

Aqui está o link para os documentos: QlikView Deployment Framework

 

Lógico que podemos discutir e 'tropicalizar' algumas coisas, mas é um ótimo início

 

Para ter acesso ao documento você precisa pedir para entrar no grupo, nesse link e botão

Capturar.PNG

Fala pessoal, tudo bom?

Semana passada abordamos o tema de intervalos e descobrimos que o QlikView possui uma função própria para se tratar desses casos. Não viu? Clique aqui!

  

Definições do IntervalMatch

Também quero aproveitar para relembrar algumas definições do IntervalMatch:

  • Antes do comando intervalmatch, o campo que contém os pontos de dados discretos (“Nota” no exemplo do post anterior) já deve ter sido lido no QlikView. O próprio comandointervalmatch não lê esse campo a partir da tabela da base de dados.
  • A tabela lida no comando intervalmatch deve sempre conter exatamente dois campos (“Min” e “Max” no exemplo do post anterior). Para estabelecer um link com outros campos, é necessário ler os campos de intervalo com campos adicionais em um comando load ou select separado.
  • Os intervalos estão sempre fechados, isto é, sempre contêm pontos de extremidade.
  • Os limites não numéricos fazem com que o intervalo seja desconsiderado (indefinido)
  • Os limites nulos (NULL) estendem o intervalo indefinidamente (ilimitado).
  • Os intervalos podem estar sobrepostos, ou seja, posso ter dois intervalos que contenham valores repetidos, esses valores estarão vinculados a todos os intervalos correspondentes.

  


Caso a utilizar IntervalMatch Estendido

Essa semana iremos tratar de um intervalo que não depende simplesmente do intervalo de valores, mas também depende de um segundo campo que define a qual intervalo estamos tratando. Podemos chamar esse segundo intervalo de campo chave.  Resgatando o exemplo da semana passada em que tínhamos uma tabela com a classificação das notas e outra com as notas recebidas por cada aluno, vamos adicionar uma nova coluna com o nome da escola. Imagine que o nosso professor ministre aulas em duas escolas diferentes e cada uma dessas escolas possuem a sua própria classificação das notas.  Na escola


Puríssimo a classificação é:

  • de 0 até 34 é Nota “E”
  • de 35 até 40 é Nota “D”
  • de 41 até 60 é Nota “C”
  • de 61 até 80 é Nota “B”
  • de 81 até 100 é Nota “A”


Na escola Sesi a classificação é:

  • de 0 até 15 é Nota “E”
  • de 16 até 40 é Nota “D”
  • de 41 até 60 é Nota “C”
  • de 61 até 70 é Nota “B”
  • de 71 até 100 é Nota “A”

 

Como temos classificações diferentes em duas escolas (CHAVE) diferente, então a nossa tabela de notas deve possuir a qual escola (CHAVE) aquela nota (do aluno) pertence.

  

Prática

Em primeiro lugar crie a nossa tabela com os intervalos.

 

Grade:
LOAD * INLINE [
Escola, Min, Max, Grade
Escola Puríssimo, 0, 34, E
Escola Puríssimo, 35, 40, D
Escola Puríssimo, 41, 60, C
Escola Puríssimo, 61, 80, B
Escola Puríssimo, 81, 100, A
Escola Sesi, 0, 15, E
Escola Sesi, 16, 40, D
Escola Sesi, 41, 60, C
Escola Sesi, 61, 70, B
Escola Sesi, 71, 100, A
];

 

Agora vamos criar a nossa tabela das notas por escola e aluno.

Notas:
LOAD * INLINE [
Escola, Nota, Aluno
Escola Puríssimo, 30, Yuri
Escola Puríssimo, 50, Edson
Escola Puríssimo, 99, Alan
Escola Puríssimo, 10, Geraldo
Escola Puríssimo, 93, Henrique
Escola Sesi, 27, Christian
Escola Sesi, 44, Michele
Escola Sesi, 80, Roberto
Escola Sesi, 76, Ivanir
Escola Sesi, 98, Zé
];

 

Note: A coluna “Escola” é a chave que define a nota e a classificação, sem ela não saberíamos informar a classificação da nota desse aluno, pois agora temos dois intervalos diferentes na mesma tabela.

 

Agora vamos para a utilização do IntervalMatch Estendido

 

A utilização do IntervalMatch Estendido deve-se partir da leitura da tabela de intervalos e o comando IntervalMatch deve-se relacionar com a coluna que deve ser checada dentro do intervalo e a coluna de chave:

Usando_IntervalMatch_Estendido:
IntervalMatch(Nota,Escola) //Comando IntervalMatch chamando a coluna a ser checada dentro do Intervalo e a chave para definir a qual intervalo o valor se refere.

Usando_IntervalMatch_Estendido:
IntervalMatch(Nota,Escola)  //Comando IntervalMatch chamando a coluna a ser checada dentro do Intervalo e a coluna de //chave das classificações
LOAD
Min, //Primeiro o menor valor do intervalo
Max, //depois o maior valor do intervalo
Escola //Por último a coluna chave.
RESIDENT Grade; //Tabela de Intervalos

 

Com o resultado agora teremos a tabela “Usando_IntervalMatch_Estendido” que possui as colunas: Min, Max, Nota e Escola. Essa tabela já fez a ligação entre as tabelas Nota e Grade, veja:

 

IntervalMatch Estendido 01

 

Agora é só fazer o JOIN necessário para remover essa chave sintética. Remova a parte do IntervalMatch e faça a alteração abaixo:

 

LEFT JOIN (Notas)

IntervalMatch(Nota,Escola) //Comando IntervalMatch chamando a coluna a ser checada dentro do Intervalo e a coluna de chave das classificações
LOAD
Min, //Primeiro o menor valor do intervalo
Max, //depois o maior valor do intervalo
Escola //Por último a coluna chave.
RESIDENT Grade; //Tabela de Intervalos

LEFT JOIN (Notas)

LOAD
*
RESIDENT Grade;

DROP TABLE Grade;
DROP Fields Min, Max;

  

Resultado final

IntervalMatch Estendido 02

Download da aplicação de exemplo!

  

Conclusão

Esse é um caso que mais ocorre em nosso dia a dia em relação ao caso do post anterior, pois dificilmente teremos apenas um intervalo de dados para checar.

E reforço o texto utilizado no post anterior: É uma boa prática conhecermos muitas das funções que o QlikView nos oferece, pois estas funções sempre irão nos poupar linhas e linhas de código.

 

Até a próxima semana pessoal!

Filter Blog

By date:
By tag: