Как изменить сводную таблицу, чтобы она отображала данные требуемым образом?

Я смог перетащить сводную таблицу на танцпол, но не смог заставить ее закипеть - кажется, мы продолжаем наступать друг другу на ноги. У меня уже есть данные на листе, из которых можно построить сводную таблицу. Этот класс описывает эти данные:

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») на листе содержит значения единиц измерения, второй столбец («B») отображает значения ShortName и т. Д.

Я использую следующий код для создания сводной таблицы из этих данных:

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

Следует признать, что жесткое кодирование значений диапазона немного глупо, но это экспериментальный проект, который всегда будет возвращать один и тот же (объем) данных, поэтому в этом случае он работает с этим несколько надуманным случаем.

Приведенный выше код добавляет сводную таблицу к листу, но он предоставляет скудное значение средства просмотра, поскольку он не имеет особого смысла (последние несколько строк необработанных данных показаны вверху; сводная таблица начинается со строки 1602):

Я понимаю, что проблема существует, потому что я не определяю правильные PivotFields как xlPageField, xlColumnField [s], xlRowField [s] и xlDataField [s]. Проблема в том, что с моей стороны нет безумия; вместо того чтобы сосредоточиться на этих данных, мое серое вещество лежит вялым под углом покоя вдоль валов сводной таблицы.

Что мне нужно сделать, чтобы изменить внешний вид сводной таблицы, чтобы она отображала:

Итого по каждому ItemCode (например, «110051») независимо от ShortName.

... и, возможно, в другой сводной таблице:

Итоговые значения для каждого ShortName (например, «T & T») независимо от ItemCode.

???

ОБНОВИТЬ

Вдохновленный комментариемВотЯ добавил заголовки столбцов, которые немного изменили сводную таблицу:

ОБНОВЛЕНИЕ 2

Вот поддельно сгенерированная (с графическим интерфейсом, а не в коде) сводная таблица, которую я хочу создать в коде:

Какой код необходим для указания «SHORT NAME» в качестве «фильтра отчетов», чтобы он генерировал раскрывающийся список, как показано выше, с возможностью выбора различных значений ShortName?

ОБНОВЛЕНИЕ 3

Это было мое лучшее предположение:

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

... но было не лучше, чем бросать код в стену, так как это не сработало:

Ответы на вопрос(1)

Решение Вопроса

то, что я сделал, чтобы начать, как выполнить то, что мне нужно, показано в моем автоответе на другой вопросВот.

Ваш ответ на вопрос