Объединенные строки разбиваются при переходе на следующую страницу

Автор Nickolay79, 1 ноября 2018, 09:38

0 Пользователи и 1 гость просматривают эту тему.

Nickolay79

Доброе утро. Экспортирую данные с БД через С# в Calc в заготовленный шаблон. Первая колонка имеет объединенные две строки. Когда данных много и происходит переход на следующую страницу, происходит разбиение данных, часть отображается на одной странице часть на другой. Необходимо что бы данные как то перенеслись на другой лист. вручную можно было расширить высоту предыдущей строки. Но вот как сделать это автоматически не знаю. Возможно ли как то отследить это разбиение, после заполнения данными? Может просчетом высоты страницы и высоты каждой из строк? Заранее благодарен

bigor

Т.е. У Вас область печати задана, до вставки данных, а если задать ее после?
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

Nickolay79

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

bigor

Может я не так понимаю (без примера сложно), и да, не область печати, а разрыв страницы. Т.е. пусть у Вас шапка 10 строк, затем вы вставляете данных 22 строки, что бы нормально отображалось - после 20 строки вставляете разрыв страницы
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

Nickolay79

у меня изначально стоит "подогнать диапазон печати к высоте/ширине", и я так понимаю что вставить разрыв страницы не получится.

Nickolay79

и я заранее не знаю какой длинны может быть ФИО + должность. при этом автоматически подбирается высота объединенных ячеек

bigor

надо пробовать, у меня получилось так масштабирование 100%, задать разрыв страницы + указать область печати включающую все данные
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

Nickolay79


mikekaganski

Цитата: Nickolay79 от  1 ноября 2018, 15:19
у меня изначально стоит "подогнать диапазон печати к высоте/ширине", и я так понимаю что вставить разрыв страницы не получится.

Откуда это следует? Если в указанном режиме не указана высота, разрывы прекрасно работают.
С уважением,
Михаил Каганский

Nickolay79

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

bigor

Цитата: Nickolay79 от  1 ноября 2018, 13:44как в с# задать разрыв страницы?
в шарп не знаю, в starbasic как-то так:
oSheet = ThisComponent.Sheets(0)
oCell = oSheet.getCellByPosition(3, 3)
oCell.Rows.IsStartOfNewPage=True
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

bigor

Ну и зайдем с другой стороны :) а зачем объединять ячейки? Если разделить ФИО и должность, то это в одной можно:oCell.setString("Vasya Ivanov" & chr(13) & "SuperPuperManager")
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

Nickolay79

Bigor, спасибо большое за ответ. объединить нужно, так как в других колонках другая информация и она в двух строках отображается.

bigor

Ну и для полноты картины - свойства строк и столбцов (из книги Питоньяка)
Столбец Width Ширина столбца (в 0.01 мм) как длинное целое число.
Строка Height Высота строки (в 0.01 мм) как длинное целое число.
Столбец OptimalWidth Если True, столбец всегда поддерживает оптимальную ширину.
Строка OptimalHeight Если True, строка всегда поддерживает оптимальную высоту.
Оба IsVisible Если True, строка или столбец — видимы.
Оба IsStartOfNewPage Если True, горизонтальный (вертикальный) разрыв страницы
добавляется к столбцу (строке).
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

mikekaganski

Цитата: Nickolay79 от  1 ноября 2018, 15:44
пробовал уже в сформированном документе сделать разрыв. не получилось. потом где то в инете прочел что нельзя.

Можно. Только, повторюсь, нужно, чтобы в этом режиме не была ограничена высота (только ширина).
С уважением,
Михаил Каганский