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

我在QLikView中用VBScript创build一个数据透视表:

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 

另外我想创build新的字段作为维度。 到目前为止,这些字段不在我的QLikView文档中。 这些字段的值链接到其他字段的值。 说我在我的数据透视表中有一个字段国家。 我想添加一个新的字段“区域”,其中包含该国所属区域的名称。 因此,该字段的值将是返回给定国家/地区的函数的返回值。

这取决于您的“查找”数据如何被访问(不pipe它是否在您的QlikView文档中,或者是外部的),但是您可以通过addDimension方法自由地将计算的维度添加到您的数据透视addDimension 。 例如:

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

您可以使用任何可以为您的维度返回有意义的值的正则expression式。

如果你想命名维度,你可以使用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