Browse header - название

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

Browse header - название

Сообщение gopstop2007 »

Длинное название колонок которые не вмещаются, обрезаются границей колонки.

Код: Выделить всё

Например:              Цена продажи
Стандартный вид:       Цена прод| 
Мне нужно:             Цена п...|
Если ли готовое решение, в виде шаблона, строки кода?
Спасибо за внимание.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Browse header - название

Сообщение kreator »

Вообще реализация несложная, как мне представляется. Зашить бы в RTL!
We are hard at work… for you. :)
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

Browse header - название

Сообщение gopstop2007 »

думал уже есть готовое :) ручками докидывать - геморно
реализация действительно не сложная, при открытии browse и resize column
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Browse header - название

Сообщение Дед Пахом »

Есть способ определить, обрезана строка или нет?
С уважением, ДП
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

Browse header - название

Сообщение 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
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Browse header - название

Сообщение Дед Пахом »

я насчитал 3 (три) листа в этом коде: ?list, ?ListSale, ?ListProd.
Вижу, исправлено.
С уважением, ДП
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

Browse header - название

Сообщение gopstop2007 »

на коленке, скопировал готовый код :)
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Browse header - название

Сообщение Дед Пахом »

А, я прочитал невнимательно, надо ... добавлять в заголовке, а не в ячейке.
gopstop2007 писал(а): 06 Апрель 2019, 15:28IF LEN(?List{PROPLIST:HEADER,r_num}) > ?List{PROPLIST:width,r_num}
Не понял, сравнивается ширина заголовка в символах с шириной колонки в точках на дюйм?
С уважением, ДП
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

Browse header - название

Сообщение gopstop2007 »

мда, лажа, поспешил :(
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Browse header - название

Сообщение kreator »

Ну уж не так просто. Я бы предложил вот так. Создаётся невидимое поле типа String на окне с шириной default. В него пишется строка заголовка столбца. Сравнивается получившаяся ширина этого поля и ширина столбца. В цикле убирается по одной букве с конца до тех пор пока не влезет. Но, если заголовок многострочный, нужно использовать поле Text, разбивать его на строки и подгонять каждую строку.
Можно попроще, если использовать моноширенный шрифт. Но это не универсально.
We are hard at work… for you. :)
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Browse header - название

Сообщение Yufil »

Если используется шрифт по умолчанию, всё проще - каждый символ имеет ширину 4 . Поэтому поле @s20, например, должно иметь ширину 80. И ещё могут быть заданы отступы текста от начала поля ( например, 1 с каждой стороны ) . Насчёт многострочных я не занимался, а подгонку листбокса по ширине полей делал...
Ответить