Страница 1 из 1
Browse header - название
Добавлено: 06 Апрель 2019, 13:21
gopstop2007
Длинное название колонок которые не вмещаются, обрезаются границей колонки.
Код: Выделить всё
Например: Цена продажи
Стандартный вид: Цена прод|
Мне нужно: Цена п...|
Если ли готовое решение, в виде шаблона, строки кода?
Спасибо за внимание.
Browse header - название
Добавлено: 06 Апрель 2019, 15:07
kreator
Вообще реализация несложная, как мне представляется. Зашить бы в RTL!
Browse header - название
Добавлено: 06 Апрель 2019, 15:14
gopstop2007
думал уже есть готовое
ручками докидывать - геморно
реализация действительно не сложная, при открытии browse и resize column
Browse header - название
Добавлено: 06 Апрель 2019, 15:15
Дед Пахом
Есть способ определить, обрезана строка или нет?
Browse header - название
Добавлено: 06 Апрель 2019, 15:28
gopstop2007
Дед Пахом писал(а): ↑06 Апрель 2019, 15:15Есть способ определить, обрезана строка или нет?
а зачем? берем всю строку и width колонки и все
например
Код: Выделить всё
Loop r_num = 1 to ?List{PropList:Exists,0} by 1
IF ?List{PropList:Exists,r_num} = True
IF LEN(?List{PROPLIST:HEADER,r_num}) > ?List{PROPLIST:width,r_num}
?List{PROPLIST:HEADER,r_num} = SUB( ?List{PROPLIST:HEADER,r_num}, 1, ?List{PROPLIST:width,r_num}-4) &'...'
END
END
END
Browse header - название
Добавлено: 06 Апрель 2019, 15:30
Дед Пахом
я насчитал 3 (три) листа в этом коде: ?list, ?ListSale, ?ListProd.
Вижу, исправлено.
Browse header - название
Добавлено: 06 Апрель 2019, 15:37
gopstop2007
на коленке, скопировал готовый код
Browse header - название
Добавлено: 06 Апрель 2019, 15:37
Дед Пахом
А, я прочитал невнимательно, надо ... добавлять в заголовке, а не в ячейке.
gopstop2007 писал(а): ↑06 Апрель 2019, 15:28IF LEN(?List{PROPLIST:HEADER,r_num}) > ?List{PROPLIST:width,r_num}
Не понял, сравнивается ширина заголовка в символах с шириной колонки в точках на дюйм?
Browse header - название
Добавлено: 06 Апрель 2019, 16:05
gopstop2007
мда, лажа, поспешил
Browse header - название
Добавлено: 06 Апрель 2019, 17:59
kreator
Ну уж не так просто. Я бы предложил вот так. Создаётся невидимое поле типа String на окне с шириной default. В него пишется строка заголовка столбца. Сравнивается получившаяся ширина этого поля и ширина столбца. В цикле убирается по одной букве с конца до тех пор пока не влезет. Но, если заголовок многострочный, нужно использовать поле Text, разбивать его на строки и подгонять каждую строку.
Можно попроще, если использовать моноширенный шрифт. Но это не универсально.
Browse header - название
Добавлено: 06 Апрель 2019, 22:42
Yufil
Если используется шрифт по умолчанию, всё проще - каждый символ имеет ширину 4 . Поэтому поле @s20, например, должно иметь ширину 80. И ещё могут быть заданы отступы текста от начала поля ( например, 1 с каждой стороны ) . Насчёт многострочных я не занимался, а подгонку листбокса по ширине полей делал...