Страница 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 с каждой стороны ) . Насчёт многострочных я не занимался, а подгонку листбокса по ширине полей делал...