QLikView VBScript在数据透视表中创建字段

时间:2014-06-29 15:57:09

标签: vb.net excel vbscript pivot-table qlikview

我在QLikView中使用VBScript创建了一个数据透视表:

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文档中。这些字段的值链接到其他字段的值。假设我的数据透视表中有一个字段国家/地区。我想添加一个新的Field“Area”,其中包含该国家所属区域的名称。因此,该字段的值将是返回给定国家/地区的区域的函数的返回值。

1 个答案:

答案 0 :(得分: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