1 Reply Latest reply: Nov 18, 2014 6:02 AM by Fernando Tonial RSS

    Tabela Dinamica

    wagner fernandes

      Ola galera boa noite,

           Eu mais uma vez, eu estou para entregar um projeto, e fiz uma tabela dinamica, onde o usuario vai clicando nas dimensões e eu vou mostrando as colunas, como eu faço isso ? eu crio via inline as dimensoes disponiveis para ele clicar, no grafico dinamico eu tenho o seguinte codigo em condicional da dimensão ou das expressoes :

      =SubStringCount(Concat(Codigo_Dimensao_Beneficiario, '|'), 01) onde o numero passado é o código da tabela inline que identifica qual foi o selecionado pelo usuario, isso funciona certinho, tenho isso implementado em alguns clientes, porém nesse em especifico não esta funcionando, percebi que o qlikview deles é bem antigo, porém não consegui ver a versão do qlikview server instalado, eles ainda não atualizaram, minha pergunta é, o que eu preciso alterar ou não poderei implementar essa funcionalidade devido a versão do qlikview ? porque na minha maquina e nos clientes que instalaram qlikview agora funciona, no qlikview server desse cliente que é antigo não funciona.

        • Re: Tabela Dinamica
          Fernando Tonial

          Bom dia Wagner, essa funcionalidade de condição de dimensão e expressão foi implementada na versão 11 do QlikView. Caso seu cliente tenha a versão anterior a 11 com certeza não funcionará.

          Uma alternativa para esse caso é a criar algumas macros para adicionar dimensões e métricas.

          Para executar a macro é necessária uma ação de macro do tipo externa.

           

          Sub GerarTabela

            LimparTabela

           

            set chart = ActiveDocument.GetSheetObject("CH_DINAMICO")

           

            'clean chart

            set dims = chart.GetProperties.Dimensions

            set exps = chart.GetProperties.Expressions

           

            'msgbox("Dimensoes = " & dims.Count)

            'msgbox("Expressoes = " & exps.Count)

           

            for i=0 to dims.Count

            'msgbox("Dimensoes = " & i)

            chart.RemoveDimension i

            next

           

           

            'add dimensions

            set dimSelection = ActiveDocument.fields("Dimensao_Campo").GetPossibleValues

            set dimRotulo = ActiveDocument.fields("Dimensao_Relacao").GetSelectedValues

            for i=0 to dimSelection.Count - 1

           

               'msgbox(dimSelection.Item(i).text)

            chart.AddDimension dimSelection.Item(i).text

           

            'rename an dimension title

            set prop = chart.GetProperties

            Prop.Dimensions.Item(i).Title.v = dimRotulo.Item(i).text

           

            chart.SetProperties prop

           

            next

           

            for i=0 to exps.Count - 1

            'msgbox("Expressoes = " & i)

            chart.RemoveExpression i

            next

           

            set expValues = ActiveDocument.fields("Metrica_Calculo").GetPossibleValues

            set expSelection = ActiveDocument.fields("Metrica_Rotulo").GetPossibleValues

            'set expSelection = ActiveDocument.fields("%ExpName").GetSelectedValues

           

            for i=0 to expValues.Count - 1

               

                'msgbox(expValues.Item(i).Text)

           

            chart.AddExpression expValues.Item(i).Text

           

           

            'rename an expression label

            set p = chart.GetProperties

            set exps = p.Expressions

            set expItem = exps.Item(i).Item(0).Data.ExpressionVisual

            expItem.Label.v = expSelection.Item(i).Text

           

            'msgbox(expItem.Label.v)

            chart.SetProperties p

           

            next

           

            NroLinhas

          end sub

           

           

          Sub LimparTabela

            On Error Resume Next

            set chart = ActiveDocument.GetSheetObject("CH_DINAMICO")

           

            'clean chart

            set dims = chart.GetProperties.Dimensions

            d = dims.Count - 1

           

           

            For i = d to 0 Step -1

            chart.RemoveDimension i

            Next

           

            'msgbox("Teste 1")

           

            set exps = chart.GetProperties.Expressions

            e = exps.Count - 1

           

           

            For i = e to 0 Step -1

            chart.RemoveExpression i

            Next

           

            'msgbox("Teste 2")

          End Sub

           

          Para o funcionamento foram criadas tabelas com as informações necessárias para cada dimensão e métricas.

           

          Dimensoes_Rel:
          LOAD 
            Dimensao_Ordem,
            Dimensao_Relacao,
            Dimensao_Campo
          FROM
          [..\$(vLocalDadosExcel)Food\Metricas e Dimensoes.xls]
          (biff, embedded labels, table is Dimensoes$);
          
          
          Metricas_Rel:
          LOAD 
            Metrica_Ordem, 
            Metrica_Relacao, 
            Metrica_Calculo, 
            Metrica_Rotulo
          FROM
          [..\$(vLocalDadosExcel)Food\Metricas e Dimensoes.xls]
          (biff, embedded labels, table is Metricas$);
          

           

          Qlikfique-se.

          Tonial.