Как установить итоговую строку заголовка нижнего колонтитула и итоговые значения в одной строке в UltraGrid

Я оцениваю контроль UltraGrid для моего приложения Windows Forms. Я заметил, что итоговая строка отображается отдельно, а значение, полученное по формуле, отображается в отдельной строке.

Кто-нибудь знает, как объединить эти 2 строки.
Например, SubTotal значение1 значение2 значение3

Спасибо,
Виджай

1 ответ

Я не думаю, что это возможно. Одна проблема может заключаться в том, чтобы выбрать, в какой столбец помещать текст заголовка, что если пользователь переместит столбец? Что делать, если заголовок охватывает более одного столбца?

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

SummarySettings ss = grid.DisplayLayout.Bands[0].Summaries.Add("SummaryKeyName", 
                     SummaryType.Custom, new FakeCaptionSummary(), 
                     grid.DisplayLayout.Bands[0].Columns["ColumnUsedForCaption"],  
                     SummaryPosition.UseSummaryPositionColumn, 
                     grid.DisplayLayout.Bands[0].Columns["ColumnUsedForCaption"]);
ss.DisplayFormat = "Subtotals";

затем создайте класс, который реализует ICustomSummaryCalculator интерфейс

internal class FakeCaptionSummary : ICustomSummaryCalculator
{
    public FakeCaptionSummary()
    {
         // Empty constructor
    }
    // Called at the start of the custom summary calculation
    public void BeginCustomSummary(SummarySettings summarySettings, RowsCollection rows)
    {}
    // Called for each row in band of this summary
    public void AggregateCustomSummary(SummarySettings summarySettings, UltraGridRow row)
    {}
    // Called to get the return value to put in the SummaryRpw at the specified column
    public object EndCustomSummary(SummarySettings summarySettings, RowsCollection rows)
    {
        return "";
    }
}

Имейте в виду, однако, что это решение имеет все недостатки, которые я изложил в начале этого ответа.

Другие вопросы по тегам