Страница 1 из 1

Автоматическая ширина колонок таблицы

Добавлено: 25 сен 2013, 13:37
Andrey_Bliznev
Доброго времени суток

Ищу способ по согласованию ширины колонок заголовка таблицы с шириной колонок таблицы с данными. В данный момент используется Table и ColumnHeaderBand с текстовыми полями постоянной ширины. Данные в таблице простые: числа и строки (например ФИО), размеры листа (page) значения не имеет, т.к. в конечном итоге создается файл, не предназначенный для печати.

Подскажите пожалуйста способ (возможно программный - в коде дизайнера) согласовать таблицу и заголовок (не важно какие компоненты будут использоваться - лишь бы они могли отобразить таблицу)

Re: Автоматическая ширина колонок таблицы

Добавлено: 25 сен 2013, 16:36
HighAley
Здравствуйте.

Опишите, пожалуйста, более подробно проблему, с которой вы столкнулись. Желательно со скриншотами, а также укажите версию используемого продукта.

Спасибо.

Re: Автоматическая ширина колонок таблицы

Добавлено: 25 сен 2013, 19:37
Andrey_Bliznev
Aleksey Andreyanov писал(а):Здравствуйте.

Опишите, пожалуйста, более подробно проблему, с которой вы столкнулись. Желательно со скриншотами, а также укажите версию используемого продукта.

Спасибо.
Здравствуйте, версия Reports .Net 2012.2.1400
Подскажите пожалуйста как можно отправить вам файл.

Re: Автоматическая ширина колонок таблицы

Добавлено: 26 сен 2013, 15:18
HighAley
Здравствуйте.

Вы можете отправить файлы на support@stimulsoft.com со ссылкой на эту тему.

Спасибо.

Re: Автоматическая ширина колонок таблицы

Добавлено: 26 сен 2013, 17:21
Andrey_Bliznev
Добрый вечер
Отправил архив с тестовым отчетом.
В файле Result.xslx - результат, в NeedSomthingLikeThis.xlsx - примерно необходимый результат.

Проблема заключается в том, что лист MS Excel не имеет фиксированного размера и длинна строк входных данных тоже различна. Необходимо выставить/расчитать/... ширину колонок для содержимого таблицы вручную (если возможно) или автоматически (если возможно), чтобы результат был похож на NeedSomthingLikeThis.xlsx
Используемые компоненты не имеют значения: лишь бы можно было вывести таблицу.
Еще одна проблема: непонятное объединения ячеек в компоненте "Таблица". Почему-то текст, написанный в начале ячейки, выводится так, будто ячейка все еще разделена, и текст написан в последней из них.

Re: Автоматическая ширина колонок таблицы

Добавлено: 27 сен 2013, 12:03
Summit
Здравствуйте!
В случае с таблицей вы можете обойтись вообще без ColumnHeaderBand, поскольку первые строки в таблице можно делать заголовочными, при этом определить для них свой стиль. В дизайнере количество заголовочных строк устанавливается свойством Header Rows Count в разделе Table, а в коде через одноименное свойство StiTable. При таком подходе Ваша проблема отпадает сама собой.

Re: Автоматическая ширина колонок таблицы

Добавлено: 27 сен 2013, 15:42
HighAley
Здравствйте, Андрей.

В MS Excel есть большая проблема с сопоставлением размера текста и ячеек.
В приложениях MS-Office функция WYSIWYG часто работает некорректно.
Например, ваш отчет в EXCEL в режиме редактирования и в предпросмотре печати выглядит по-разному, еще больше различий вы увидите, если в режиме редактирования начнете менять масштаб страницы от 50% до 200% - самый длинный текст на странице будет обрезаться на разное количество строчек в зависимости от масштаба. Вы поджете увидеть этот эффект при изменении масштаба в приложенном файле.
Также отрисовка текста в Excel осуществляется собственными методами, и не совпадает ни с GDI+ (Standard, Typographic), ни с GDI (WYSIWYG).
Особенно это заметно на междустрочном расстоянии - оно больше, чем в GDI/GDI+ процентов на 20..25, поэтому последняя строка текста может не помещаться в ячейку.
К сожалению, в Excel до сих пор нельзя изменять междустрочное расстояние, поэтому данная проблема не решается автоматически, и поэтому нельзя точно передать вид текста в превью.
Варианты примерного решения проблемы:
1. Попробовать выбрать для текста разные шрифты; для каждого шрифта попробовать разный TextQuality - выбрать тот, при котором строка текста получается самой длинной.
2. В конце каждого текста добавлять пустую строку для компенсации погрешности изображения.
3. Установить для текста Margins, чтобы получался запас пустого места для текста (в Excel нет полей ячейки, поэтому это место будет как резерв для текста).
Глюки Wysiwyg в MS-Excel.xls
(27 КБ) 220 скачиваний
По поводу объединения ячеек почитайте, пожалуйста нашу документацию. http://www.stimulsoft.com/ru/documentat ... export.htm

Спасибо.

Re: Автоматическая ширина колонок таблицы

Добавлено: 30 сен 2013, 11:18
Andrey_Bliznev
Здравствуйте, Алексей

Благодарю за помощь.

Summit писал(а):Здравствуйте!
В случае с таблицей вы можете обойтись вообще без ColumnHeaderBand, поскольку первые строки в таблице можно делать заголовочными, при этом определить для них свой стиль. В дизайнере количество заголовочных строк устанавливается свойством Header Rows Count в разделе Table, а в коде через одноименное свойство StiTable. При таком подходе Ваша проблема отпадает сама собой.
Спасибо за ваш ответ, в своем последнем "эксперименте" так и сделал.

Re: Автоматическая ширина колонок таблицы

Добавлено: 01 окт 2013, 14:29
HighAley
Здравствуйте.

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

Спасибо.