|
|
|
изменение высоты колонок при autoSize`е
|
|||
|---|---|---|---|
|
#18+
Хм... то ли день сегодня какой-то неправильный, то ли я клиню по страшному, то ли это проблема реальна... Ситуация: У меня есть DW (grid). Я подсвечиваю в нем те строки (в BackGround color каждой колонки прописываю что-то типа if( highlight = 1, 16777152, 16777215 )) где не заполнены обязательные поля. Все бы хорошо, но... в общем я вынужден использовать autoSize = true (на detail и на каждой колонке). Результат (с визуальной точки зрения) ужасен! Подсвечивается только то количество строк, которое заполнено данными в каждой конкретной колонке. Решением (вроде бы) является изменение высоты колонки в зависимости от высоты текущей строки... но ведь autoSize = true для каждой колонки (и я не знаю какая колонка будет в данной строке иметь максимальную высоту). Кто может подсказать как можно решить эту проблему? Требуемый результат - "красивая" (т.е. ровная) подсветка строки по некому условию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2005, 13:56 |
|
||
|
изменение высоты колонок при autoSize`е
|
|||
|---|---|---|---|
|
#18+
Положи во всю длину строки прямоугольник (Send to Back). Задай условие его цвета. Его Height - вычисляемое по высоте Detail - Long(describe('Object.DataWindow.Detail.Height' )). Поля - transparent. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2005, 14:30 |
|
||
|
изменение высоты колонок при autoSize`е
|
|||
|---|---|---|---|
|
#18+
Эх, боюсь ввести в заблуждение, но, кажется, был такой глюк. Боролись так: если после подстветки сделать перерисовку DW ручками - SetRedraw(false) и сразу SetRedraw(true), то подсветка прорисовывется полностью и нормально... --- С уважением, IKAR ikar@ikarhomecenter.ru IkarHomeCenter ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2005, 14:57 |
|
||
|
изменение высоты колонок при autoSize`е
|
|||
|---|---|---|---|
|
#18+
2 Ikar Это не помогает... хотя выглядит, конечно, наиболее заманчиво. AIZПоложи во всю длину строки прямоугольник (Send to Back). Задай условие его цвета. Его Height - вычисляемое по высоте Detail - Long(describe('Object.DataWindow.Detail.Height' )). Поля - transparent. Это из рабочего варианта? Если "да", то как решались следующие проблемы 1. Проблема в "выбором строки", т.е. с this.selectRow( currentRow, true ). 2. Long(describe('Object.DataWindow.Detail.Height' )) при autoSize = true (на detail) у меня не работает! Я всегда получаю тот результат, который установлен в painter`е (в моем случае это 72). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2005, 15:58 |
|
||
|
изменение высоты колонок при autoSize`е
|
|||
|---|---|---|---|
|
#18+
AIZПоложи во всю длину строки прямоугольник (Send to Back). Задай условие его цвета. Его Height - вычисляемое по высоте Detail - Long(describe('Object.DataWindow.Detail.Height' )). Поля - transparent. Во первых - без Object. Во вторых - все равно не работает. Describe выдает значение выставленное в painter. Для определения высоты detail использовать функцию RowHeight() и никаких Describe. В третьих - как это вы себе представляете размещение прямоугольника в detail band во всю длину строки в Grid??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2005, 16:01 |
|
||
|
изменение высоты колонок при autoSize`е
|
|||
|---|---|---|---|
|
#18+
2 Дремучий а можно скриншотик или .srd ? а то я что то не совсем понимаю в чем проблема состоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2005, 16:11 |
|
||
|
изменение высоты колонок при autoSize`е
|
|||
|---|---|---|---|
|
#18+
C RowHeight() полностью согласен, просто забыл, что использовал именно ееБ а не describe (давно это было). А положить в Grid прямоугольник во всю длину строки не проблема. Только что еще раз проверил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2005, 16:12 |
|
||
|
изменение высоты колонок при autoSize`е
|
|||
|---|---|---|---|
|
#18+
Ну, а что касается подсветки прямоугольника, то If(CurrentRow() = GetRow(),RGB(150,200,250),Long(describe("DataWindow.Color"))) в Brush Color ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2005, 16:22 |
|
||
|
изменение высоты колонок при autoSize`е
|
|||
|---|---|---|---|
|
#18+
Это исходная проблема ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2005, 16:37 |
|
||
|
изменение высоты колонок при autoSize`е
|
|||
|---|---|---|---|
|
#18+
А это проблема с прямоугольником и "выбором строки", т.е. с this.selectRow( currentRow, true ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2005, 16:41 |
|
||
|
изменение высоты колонок при autoSize`е
|
|||
|---|---|---|---|
|
#18+
ДремучийСитуация: У меня есть DW (grid). Я подсвечиваю в нем те строки (в BackGround color каждой колонки прописываю что-то типа if( highlight = 1, 16777152, 16777215 )) где не заполнены обязательные поля. Если необходимо подсвечивать всю строку, то свойство Background надо устанавливать для Detail, а не для отдельных колонок. P.S. Только фоновый цвет полей поставить Transparent ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2005, 18:16 |
|
||
|
изменение высоты колонок при autoSize`е
|
|||
|---|---|---|---|
|
#18+
Nikulitsa A. ДремучийСитуация: У меня есть DW (grid). Я подсвечиваю в нем те строки (в BackGround color каждой колонки прописываю что-то типа if( highlight = 1, 16777152, 16777215 )) где не заполнены обязательные поля. Если необходимо подсвечивать всю строку, то свойство Background надо устанавливать для Detail, а не для отдельных колонок. P.S. Только фоновый цвет полей поставить Transparent Фоновый цвет полей тоже надо красить. Иначе можно получить черные прямоугольники вместо полей. Цвет фона в Detail считается по формуле и на строке есть редактируемые поля с прозрачным фоном. Начинаешь редактировать одно поле, все остальные редактируемые поля в этой строке чернеют. Переходишь на другую строку - цвет восстанавливается. Лечится запретом на прозрачный фон :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2005, 18:37 |
|
||
|
изменение высоты колонок при autoSize`е
|
|||
|---|---|---|---|
|
#18+
ДремучийА это проблема с прямоугольником и "выбором строки", т.е. с this.selectRow( currentRow, true ). Странно... selected row должна выделяться системными highlight text/background и что-то там цветом выделять бесполезно. разве что зюку какую повесить в первой колонке с Visible expression = if ( isSelected ( getrow() ) , if ( <надо выделить> , 1 , 0 ) , 0 ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2005, 19:17 |
|
||
|
изменение высоты колонок при autoSize`е
|
|||
|---|---|---|---|
|
#18+
В общем я решил свою проблему. Отталкивался совета: AIZПоложи во всю длину строки прямоугольник (Send to Back). Задай условие его цвета. Его Height - вычисляемое по высоте Detail - Long(describe('Object.DataWindow.Detail.Height' )). Поля - transparent. Сделано было так: Кидался прямоугольник на всю ширину строки. На Brush Color вешалось: Код: plaintext Код: plaintext Код: plaintext на каждую колонку для textColor вешалось: Код: plaintext Кроме того, везде пришлось отключать (по понятным причинам :() this.selectRow( currentRow, true ). Учитывая, что у нас это прописывалось в базовых объектах ;) пришлось где нужно добавлять this.selectRow( 0, false ) В принципе, проблема решена... но мне решение не нравится. Если есть какое-нибудь иное решение, то мне будет интересно его узнать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 12:16 |
|
||
|
изменение высоты колонок при autoSize`е
|
|||
|---|---|---|---|
|
#18+
Дремучий на width прямоугольника вешалось (это имхо, очевидно): Код: plaintext Что происходит с прямоугольником при перетаскивании и изменении ширины колонок в гриде? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 14:04 |
|
||
|
изменение высоты колонок при autoSize`е
|
|||
|---|---|---|---|
|
#18+
ЗоринАндрейЧто происходит с прямоугольником при перетаскивании и изменении ширины колонок в гриде? Перетаскивания колонок у нас отключено ;). А при изменении ширины все нормально. Работает как должно. :) Были проблемы с сортировкой по клику на заголовке... но это были проблемы из-за особенностей реализации сортировки и к сабжу это имеет слабое отношение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 18:02 |
|
||
|
изменение высоты колонок при autoSize`е
|
|||
|---|---|---|---|
|
#18+
авторФоновый цвет полей тоже надо красить. Иначе можно получить черные прямоугольники вместо полей. ничего такого не встречал. PB9 - 10.2.8100 по заданному вопросу: проблема решается очень просто, как уже писал Nikulitsa A. Все поля в DW прозрачные, а цвет фона по условию: Код: plaintext на скриншоте поля с авторесайзом: подсвечены четные строки, текущая строка - желтая (тоже по условию) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 19:33 |
|
||
|
изменение высоты колонок при autoSize`е
|
|||
|---|---|---|---|
|
#18+
Ya reshila etu problemu pomestiv "compute field" pozadi togo polya, kotoroe Autosize I nikakih zamorochek s redraw ne ponadobilos' Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2005, 05:40 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=33373651&tid=1338028]: |
0ms |
get settings: |
6ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 371ms |

| 0 / 0 |
