Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PowerBuilder Новый топик    Ответить
 Как закрепить крайний левый столбец в DW?  [new]
DenisVK
Member

Откуда:
Сообщений: 98
Как закрепить крайний левый столбец в DW? Чтобы при горизонтальной прокрутке столбец(ы) всегда был виден(ы), а остальные двигались за него.
Интересны решения, кто как делал и если не жалко скинте примеры на мой ящик(я понимаю, что делается это двумя DW...).
Заранее спасибо.
7 авг 03, 18:38    [292566]     Ответить | Цитировать Сообщить модератору
 Re: Как закрепить крайний левый столбец в DW?  [new]
funikovyuri
Member

Откуда: Симферополь
Сообщений: 4045
Сюда бы такой пример тоже скинуть не мешало :)
7 авг 03, 18:41    [292569]     Ответить | Цитировать Сообщить модератору
 Re: Как закрепить крайний левый столбец в DW?  [new]
Филипп
Member

Откуда: Boston, MA, USA (c 1989 ) б. Москва
Сообщений: 1880
На самом деле кривовато можно и с одним datawindow, через HorizontalScrollSplit DataWindow object property...

А с двумя так вообще элементарно. Shareишь два dw controla, их располагаешь рядом с друг другом, в левом прячешь все колонки кроме самой левой, а в правом прячешь самую левую и включаешь Horizontal scrollbar...
7 авг 03, 22:39    [292693]     Ответить | Цитировать Сообщить модератору
 Re: Как закрепить крайний левый столбец в DW?  [new]
Mykola
Member

Откуда:
Сообщений: 615
из версией PowerBuilder идут примери. Там в разделе datawindow (если не ошибаюсь) есть такой пример.
к примеру для 9 версии нужно смотреть
раздел Events & Functions и далее вибрать Synchronized Vertical Scrolling
загрузить и посмотреть как работает. Если подойдет тогда смотрите код
8 авг 03, 09:22    [292913]     Ответить | Цитировать Сообщить модератору
 Re: Как закрепить крайний левый столбец в DW?  [new]
DenisVK
Member

Откуда:
Сообщений: 98
Спасибо за ответы, но что Вы предложили Филипп и Mykola, я и сам прекрасно знал.
А нет ли чего более изящного?
Если нет, то нет (скорее нет), и соответвенно на ентом можно обсуждение темы закрыть.
И еще раз спасибо за отклик.
8 авг 03, 10:04    [292965]     Ответить | Цитировать Сообщить модератору
 Re: Как закрепить крайний левый столбец в DW?  [new]
KOLCHOZ_POSTEVENT
Guest
I am bag pardon for english font,in this internet cafe,keybord can't speek russian.
You must create your's own scroll bar and,accordance to clicks,which it accept make width of datawindow fields equal to 0.
This solution have to keep any mathematical supply,to calculate which column must be deformated.
Create unvisible dw,without data inside,only to save original widthes.
8 авг 03, 13:32    [293432]     Ответить | Цитировать Сообщить модератору
 Re: Как закрепить крайний левый столбец в DW?  [new]
KOLCHOZ_POSTEVENT
Guest
Forget to say.
Datawindow in this solution must be Greed.
8 авг 03, 13:50    [293476]     Ответить | Цитировать Сообщить модератору
 Re: Как закрепить крайний левый столбец в DW?  [new]
KOLCHOZ_POSTEVENT
Guest
Мат.обеспечение,о котором я здесь говорил,может уместиться в 30 строках.
Допустим,у вас есть паленый скролл-бар с двумя стрелками левой и правой.
Правая-после нажатия прячет очередную колонку,левая же,наоборт раскрывет последнею из сокрытых.
Теперь давайте вспомним,что при фрмирoвании строки-критерия для комманд
describe и modify можно пользовать номер колонки,а не только ее имя.
И в то же время Greed dw располагает свои колонки в точности порядка их нумеровки.
Номер первой сгармошенной колонки мы знаем-это 2,последней-ll_counter=long(dw.object.datawindow.column.count).
При нажатии правой стрелки,вы идете циклом с шагом +1 от 2 до ll_counter,первая коонка,чья ширина <>0 ставится на 0,Exit,RETURN.
При нажатии левой стрелки,вы идете циклом с шагом -1 от ll_counter до 2,первая колонка,чья ширина =0,выставляется на оригинальную ширину из прирятаного dw,в общем-то это все.
10 авг 03, 17:45    [294971]     Ответить | Цитировать Сообщить модератору
 Re: Как закрепить крайний левый столбец в DW?  [new]
Филипп
Member

Откуда: Boston, MA, USA (c 1989 ) б. Москва
Сообщений: 1880
Ну и конечно понятно, что вариант со своим скроллбаром будет работать ТОЛЬКО если в Gride нет computed columns, обычные колонки не повторены несколько раз в detail band, а кроме того пользователь может мышью раздвигать "сгармошенные" колонки, что проваливает всю стратегию :-))
10 авг 03, 21:02    [295048]     Ответить | Цитировать Сообщить модератору
 Re: Как закрепить крайний левый столбец в DW?  [new]
DenisVK
Member

Откуда:
Сообщений: 98
А Филипп прав, вариант предложенный KOLCHOZ_POSTEVENT, как минимум не доработан, а во вторых применим только для грида, что не есть хорошо.
11 авг 03, 09:03    [295238]     Ответить | Цитировать Сообщить модератору
 Re: Как закрепить крайний левый столбец в DW?  [new]
Ermak
Member

Откуда: Tomsk
Сообщений: 811
"вариант предложенный KOLCHOZ_POSTEVENT, как минимум не доработан, а во вторых применим только для грида". По моему вариант имеет право жить, а то что он применим для grid'a - это правильно, т.к. в случае с tabular будут ограничения.
Иметь стандартно в grid'e возможность фиксации левых колонок хорошо, но если задача стоит всегда держать на глазах ключевую информацию, то я обычно для этого использую titlebar dw contol'a, Если того требует задача, при обработке Event'a RowfocusChanged формирую строку необходимых данных и вывожу на toolbar.
12 авг 03, 05:57    [296571]     Ответить | Цитировать Сообщить модератору
 Re: Как закрепить крайний левый столбец в DW?  [new]
Филипп
Member

Откуда: Boston, MA, USA (c 1989 ) б. Москва
Сообщений: 1880
Ermak, вопрос не в том, что он ТОЛЬКО для грида, а в том, что даже с гридом - шаг вправо, шаг влево, и уже не работает...
12 авг 03, 08:21    [296619]     Ответить | Цитировать Сообщить модератору
 Re: Как закрепить крайний левый столбец в DW?  [new]
KOLCHOZ_POSTEVENT
Guest
Ну,во-первых,раздвинутая пользователем колонка ничегошеньки не провалит,максимум,изменит очередность сокрытия-открытия.
Дублированные поля и computed fields можно обойти при помощи фиктивных полей в SQL предложении.
Это решение можно довести,было-б желание,оно в-общем-то не сложное.
Мне здесь больше сказать нечего,пока.
13 авг 03, 14:12    [298960]     Ответить | Цитировать Сообщить модератору
Все форумы / PowerBuilder Ответить