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



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

这取决于你的"查找"数据是如何被访问的(无论它是驻留在你的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

最新更新