Wie kann ich meine PivotTable so ändern, dass die Daten auf die gewünschte Weise angezeigt werden?

Ich konnte einen PivotTable auf die Tanzfläche ziehen, konnte ihn aber nicht zum Boogie-Down bringen - anscheinend treten wir uns gegenseitig auf die Zehen. Ich habe bereits Daten auf dem Blatt, aus denen die Pivot-Tabelle erstellt werden soll. Diese Klasse beschreibt diese Daten:

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; }
}

Die erste Spalte ("A") auf dem Blatt enthält die Einheitenwerte, die zweite Spalte ("B") zeigt die ShortName-Werte usw. an.

Ich verwende den folgenden Code, um eine PivotTable aus diesen Daten zu erstellen:

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;
}

Zugegeben, die Hardcodierung der Bereichswerte ist ein bisschen doofusesque, aber dies ist ein experimentelles Projekt, das immer die gleiche (Menge) Daten zurückgibt, so dass es in diesem Fall mit diesem etwas erfundenen Fall funktioniert.

Der obige Code fügt dem Blatt zwar eine PivotTable hinzu, liefert jedoch den vom Betrachter nicht relevanten Wert (die letzten Zeilen mit Rohdaten werden oben angezeigt; die PivotTable beginnt in Zeile 1602):

Ich weiß, dass das Problem besteht, weil ich die richtigen PivotFields nicht als xlPageField, xlColumnField [s], xlRowField [s] und xlDataField [s] bezeichne. Das Problem ist die Groblosigkeit von meiner Seite; Anstatt mich mit diesen Daten zu beschäftigen, liegt meine graue Substanz schlaff in einem Winkel der Ruhe entlang der Wälle des PivotTable.

Was muss ich tun, um das Erscheinungsbild der PivotTable so zu ändern, dass Folgendes angezeigt wird:

Totals für jeden ItemCode (z. B. "110051"), unabhängig von ShortName.

... und vielleicht in einer anderen PivotTable:

Gesamte für jeden Kurznamen (z. B. "T & T"), unabhängig von ItemCode.

???

AKTUALISIERE

Inspiriert von einem KommentarHie, Ich habe Spaltenüberschriften hinzugefügt, die die PivotTable ein wenig verändert haben:

UPDATE 2

Hier ist eine falsch generierte (mit der GUI, nicht im Code) PivotTable, die ich im Code erstellen möchte:

Welcher Code wird benötigt, um "KURZNAME" als "Berichtsfilter" anzugeben, damit ein Dropdown-Menü wie oben gezeigt mit den verschiedenen auswählbaren Werten für "Kurzname" erstellt wird?

UPDATE 3

Dies war meine beste Vermutung:

// 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;

... war aber nicht besser als Code an die Wand zu werfen, da es nicht funktionierte:

Antworten auf die Frage(2)

Ihre Antwort auf die Frage