iTextSharp: нужна помощь, чтобы повторить некоторые столбцы в 1-й строке таблицы после разрыва страницы - PullRequest
0 голосов
/ 17 августа 2011

Я создаю PDF-документ, используя iTextSharp.Документ представляет собой набор таблиц.Некоторые таблицы занимают несколько страниц.

Первый столбец - это дата.Если несколько строк таблицы имеют одинаковую дату в 1-м столбце, только я выводю дату только в первой строке, в следующих строках есть пустой столбец - до тех пор, пока не изменится дата.

Я делаю это, сохраняя значение последней колонки в переменной и сравнивая ее перед добавлением ячейки в новую строку.

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

Моя таблица имеет заголовок, и он отлично повторяется на новых страницах (я устанавливаю PdfPTable.HeaderRows).

Я пытался очистить свою переменную, в которой хранится последняя напечатанная дата, в onStartPage и onEndPage, но это не помогло.

В основном я хочу что-то вроде этого:

(Началотаблица)


=======================================================
  Date           Something related to the date        
======================================================= 
  01/01/2011     Something happened on January 1
                 Something else happened on this day
  01/05/2011     Here is another day
  01/07/2011     New day
                 Still 01/07/2011
                 Still there

(после разрыва страницы - таблица продолжается и дата повторяется в 1-й строке)

=======================================================
  Date           Something related to the date        
======================================================= 
  01/07/2011     It is still January 7th but the date 
                 column repeats as this is a new page
                 And still the 7th
  01/15/2011     New day now
  01/17/2011     And another day

Любая помощь будет оценена.

Спасибо

1 Ответ

0 голосов
/ 25 августа 2011

Рассмотрите возможность группировки вашего списка по дате, прежде чем добавлять его в PdfTable. Этого легко добиться с помощью LINQ. После группировки выполните итерацию для каждой группы и добавьте значение группы дат в первом столбце, а затем выполните итерации по каждому члену группы и добавьте их все (значения, относящиеся к дате) вверх во втором столбце.

...