QlikView VBScript создает поле в сводной таблице

#vb.net #excel #vbscript #pivot-table #qlikview

#vb.net #excel #vbscript #сводная таблица #qlikview

Вопрос:

Я создаю сводную таблицу с помощью VBScript в QlikView:

 sub cleanUp()

    set sheet = ActiveDocument.Sheets("Summary")

    set summaryTable = sheet.CreatePivotTable

    summaryTable.addDimension "Product Group Desc"
    summaryTable.addDimension "Product Type Desc"
    summaryTable.addDimension "Product Sub Group Desc"
    summaryTable.addDimension "Country"
    summaryTable.addDimension "ZoneMgrName"

    summaryTable.addExpression "Sum({<[Fiscal Year]={$(vCurrentYear)}>}
                                                           [Sales Amount])"

    set props = summaryTable.getProperties
    set expr = props.Expressions.Item(0).Item(0).Data.ExpressionVisual

    expr.Label.v = "Expenses $(vCurrentYear)"
    expr.NumAdjust = 1    'center
    expr.LabelAdjust = 1    'center
    summaryTable.SetProperties props

end sub
  

Кроме того, я хотел бы создать новые поля, используемые в качестве измерений. Этих полей пока нет в моем документе QlikView. Значение для этих полей связано со значением других полей. Допустим, у меня есть страна поля в моей сводной таблице. Я хотел бы добавить новое поле «Область», которое содержит название области, к которой принадлежит страна. Чтобы значения для поля были возвращаемым значением функции, которая возвращает площадь для данной страны.

Комментарии:

1. Я часто использовал qlikview в сочетании с VBA, поэтому надеюсь, что смогу помочь. В чем именно заключается вопрос? Код работает, но вы хотите, чтобы он делал больше? Я не уверен, чего вы хотите.

2. Спасибо! Я хочу создать новое поле (поле, не существующее в документе QlikView) и создать измерение в сводной таблице на основе этого поля: `summaryTable.addDimension «Новое поле»

3. @tannman357 Я должен указать значения для нового поля: значения представляют собой возвращаемое значение функции, которая принимает в качестве аргумента значение для другого поля. Смотрите мой пример со страной и областью.

4. Как вы использовали VBA в сочетании с QlikView? С помощью VBScript или другим способом?

5. Я всегда экспортирую любые данные ИЗ qlikview в Excel, а затем обрабатываю их там с помощью макросов, которые я сохраняю на другом листе. Если вы хотите создать новые поля, это очень легко сделать один раз в Excel.

Ответ №1:

Это зависит от того, как осуществляется доступ к вашим данным «поиска» (находятся ли они в вашем документе QlikView или являются внешними), но вы можете добавлять вычисленные измерения в сводную таблицу с помощью этого addDimension метода. Например:

 summaryTable.addDimension "=if(Country='France', 'EU', 'non-EU')"
  

Вы можете использовать любое обычное выражение, которое может возвращать значимые значения для вашего измерения.

Если вы хотите присвоить измерению имя, вы можете использовать addDimension возвращаемое значение следующим образом:

 dimensionNum = summaryTable.addDimension("=if(Country='France', 'EU', 'non-EU')")

set tableProperties = summaryTable.getProperties

set calcDim = tableProperties.Dimensions.Item(dimensionNum-1)
calcDim.Title.v = "Area"

summaryTable.SetProperties tableProperties