Como posso alterar minha Tabela Dinâmica para que ela exiba os dados da maneira desejada?

Consegui arrastar uma Tabela Dinâmica para a pista de dança, mas não consegui fazê-la dançar - parece que continuamos pisando nos dedos uns dos outros. Já tenho dados na planilha para criar a tabela dinâmica. Esta classe descreve esses dados:

public class PriceVarianceData
{
    public String Unit { get; set; }
    public String ShortName { get; set; }
    public String ItemCode { get; set; }
    public String Description { get; set; }
    public String PriceWeek { get; set; }
    public String Week { get; set; }
    public String Price { get; set; }
    public String Variance { get; set; }
    public String VarianceAverage { get; set; }
    public int RegionOrder { get; set; }
    public int ContractPrice { get; set; }
}

A primeira coluna ("A") na planilha contém os valores da Unidade, a segunda coluna ("B") exibe os valores de ShortName, etc.

Estou usando o código a seguir para criar uma Tabela Dinâmica a partir desses dados:

private void AddPivotTable()
{
    pivotData = _xlSheet.Range["A1:K1600"];
    pivotDestination = _xlSheet.Range["A1602", useDefault];

    _xlBook.PivotTableWizard(
        Excel.XlPivotTableSourceType.xlDatabase,
        pivotData,
        pivotDestination,
        pivotTableName,
        true,
        true,
        true,
        true,
        useDefault,
        useDefault,
        false,
        false,
        Excel.XlOrder.xlDownThenOver,
        0,
        useDefault,
        useDefault
    );

    // Set variables used to manipulate the Pivot Table.
    pivotTable = (Excel.PivotTable)_xlSheet.PivotTables(pivotTableName);

    shortnamePivotField = (Excel.PivotField)pivotTable.PivotFields(2);
    itemcodePivotField = (Excel.PivotField)pivotTable.PivotFields(3);
    descriptionPivotField = (Excel.PivotField)pivotTable.PivotFields(4);
    priceweekPivotField = (Excel.PivotField)pivotTable.PivotFields(5);
    weekPivotField = (Excel.PivotField)pivotTable.PivotFields(6);
    regionorderPivotField = (Excel.PivotField)pivotTable.PivotFields(10);

    // Format the Pivot Table.
    pivotTable.Format(Excel.XlPivotFormatType.xlReport2);
    pivotTable.InGridDropZones = false;
    pivotTable.SmallGrid = false;
    pivotTable.ShowTableStyleRowStripes = true;
    pivotTable.TableStyle2 = "PivotStyleLight1";

    // The PivotFields have the following interesting properties:
    // Orientation, Function, Calculation

    // Page Field
    //shortnamePivotField.Orientation = Excel.XlPivotFieldOrientation.xlPageField;

    // Column Field
    priceweekPivotField.Orientation = Excel.XlPivotFieldOrientation.xlColumnField;

    // Row Fields
    descriptionPivotField.Orientation = Excel.XlPivotFieldOrientation.xlRowField;
    //regionorderPivotField.Orientation = Excel.XlPivotFieldOrientation.xlRowField;

    // Data Fields
    //contractPricePivotField.Orientation = Excel.XlPivotFieldOrientation.xlDataField;
    //contractPricePivotField.Function = Excel.XlConsolidationFunction.xlSum;
    itemcodePivotField.Orientation = Excel.XlPivotFieldOrientation.xlDataField;
    itemcodePivotField.Function = Excel.XlConsolidationFunction.xlSum;
}

É certo que a codificação dos valores do intervalo é um pouco inútil, mas este é um projeto experimental que sempre retornará os mesmos (quantidade de) dados, por isso funciona neste caso com este caso um tanto artificial.

O código acima adiciona uma tabela dinâmica à planilha, mas fornece o valor escasso do visualizador, pois faz pouco sentido (as últimas linhas de dados brutos são mostradas na parte superior; a tabela dinâmica começa na linha 1602):

Sei que o problema existe porque não estou designando os PivotFields corretos como xlPageField, xlColumnField [s], xlRowField [s] e xlDataField [s]. O problema é de falta de nervosismo da minha parte; em vez de compreender esses dados, minha massa cinzenta está flácida em um ângulo de repouso ao longo das muralhas da Tabela Dinâmica.

O que preciso fazer para alterar a aparência da Tabela Dinâmica para que ela mostre:

Totais para cada ItemCode (como "110051"), independentemente do ShortName.

... e talvez em outra tabela dinâmica:

Totais para cada Nome abreviado (como "T&T"), independentemente do ItemCode.

???

ATUALIZAR

Inspirado por um comentárioaqui, Adicionei títulos de coluna, que alteraram um pouco a tabela dinâmica:

ATUALIZAÇÃO 2

Aqui está uma tabela dinâmica gerada de maneira falsa (com a GUI, não no código) que eu quero criar no código:

Qual código é necessário para especificar "SHORT NAME" como o "Filtro de relatório", para gerar um menu suspenso, como mostrado acima, com os vários valores de ShortName selecionáveis?

ATUALIZAÇÃO 3

Este foi o meu melhor palpite:

// Page Field
shortnamePivotField.Orientation = Excel.XlPivotFieldOrientation.xlPageField;

// Row Fields
descriptionPivotField.Orientation = Excel.XlPivotFieldOrientation.xlRowField;
itemcodePivotField.Orientation = Excel.XlPivotFieldOrientation.xlRowField;

// Data Fields
pricePivotField.Orientation = Excel.XlPivotFieldOrientation.xlDataField;
pricePivotField.Function = Excel.XlConsolidationFunction.xlSum;

... mas não era melhor do que jogar código na parede, pois não funcionava: