Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
sffogaca
Contributor II
Contributor II

Verificar código de geração de objeto - Macro

Amigos, Bom dia.

Estou em um projeto onde pensei em criar objetos dinamicamente via Macro, porém não domino muito o código.

Gostaria de saber se é possível "verificar o código gerado" de um objeto manualmente.

Ex: criei manualmente um gráfico, existe algum "ver código fonte" que eu possa ver o código dele para ter um norte de como fazer a macro?

Algo neste sentido

  1.   Set chart = ActiveDocument.ActiveSheet.CreateStraightTable
  2.   chart.AddDimension "VENDEDOR"  ' você terá que fazer um "for" buscando todos as dimensões a exibir
  3.   chart.AddExpression "SUM(VALOR)"
5 Replies
Thiago_Justen_

Sebastiao,

Pode fazer algo nessa linha: Create Custom Chart with Macro

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
sffogaca
Contributor II
Contributor II
Author

Neste caso ele ja tem uma macro pronta, eu gostaria de ver o código gerado a partir de um objeto que criei manualmente

"Titulo, dimensão, expressão, tamanho, posição, etc"

Thiago_Justen_

Não entendi bem o que tu queres...você quer saber quais instruções são executadas pelo QlikView ao criar uma tabela? É isso?

Veja, não sei se conseguimos isso mas baseando-se no código desse exemplo você consegue entender o mecanismo:

sub CreateCustomChart

Set chart = ActiveDocument.GetSheetObject("CH09")

'clean dimensions from chart

Set vDimensions = chart.GetProperties.Dimensions

For i=0 to vDimensions.Count

chart.RemoveDimension 0

Next

'add dimensions

Set vDimensionsSelection = ActiveDocument.fields("Dimension").GetSelectedValues

For i=0 to vDimensionsSelection.Count - 1

chart.AddDimension vDimensionsSelection.Item(i).text

Next

'clean expressions from chart

Set vExpressions = chart.GetProperties.Expressions

For i=0 to vExpressions.Count - 1

chart.RemoveExpression 0

Next

'add expressions

Set vExpressionValues = ActiveDocument.fields("Expression").getPossibleValues

Set vExpressionSelection = ActiveDocument.fields("ExpressionName").GetSelectedValues

For i=0 to vExpressionValues.Count - 1

chart.AddExpression vExpressionValues.Item(i).Text

'rename the expression label

Set vProperties = chart.GetProperties

Set vExpressions = vProperties.Expressions

Set vExpressionItem = vExpressions.Item(i).Item(0).Data.ExpressionVisual

vExpressionItem.Label.v = vExpressionSelection.Item(i).Text

'fix expression number format

set vFormat = vExpressions.Item(i).Item(0).Data.ExpressionVisual.NumberPresentation

vFormat.Type = 11 'fixed decimal

vFormat.nDec = 0

vFormat.Fmt = "# ##0"

' np.Dec = "."

' np.Thou = " "

' np.UseThou = 1

chart.SetProperties vProperties

Next

'Clean up

Set chart = nothing

Set vDimensions = nothing

Set vDimensionsSelection = nothing

Set vExpressions = nothing

Set vExpressionValues = nothing

Set vExpressionSelection = nothing

Set vProperties = nothing

Set vExpressionItem = nothing

Set vFormat = nothing

End Sub

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
sffogaca
Contributor II
Contributor II
Author

Não me expressei corretamente,
Olha só deixa te resumir meu projeto, eu trabalho com setores, cada setor tem seus inúmeros indicadores, em média 30.

Eu tenho que gerar todos os indicadores deste setor conforme o usuário marca ele no filtro

Então para criar um gráfico por exemplo pela macro será necessário passar todas as propriedades dele, EX:

Titulo, Dimensão, Expressão, Posição, Tamanho, ETC.

Thiago_Justen_

Isso não usa macro mas é algo simples que fiz pra tentar ajudar a um colega aqui:

Re: Criar Indicadores dinâmicos na Dimensão

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago