powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / ReadOnly Grid с перемещением по строкам и столбцам
5 сообщений из 5, страница 1 из 1
ReadOnly Grid с перемещением по строкам и столбцам
    #32959286
lbaron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос к корифеям PowerBuilder.

Есть такое представление datawindow как grid. Все бы хорошо но нет такого режима отображения данных для чтения как в 1С. Типа можно ходить по строкам и колонкам, а для редактирования нужно нажать заветную комбинацию (типа Enter). Т.е. конечно не все так просто и не совсем так в PB...

Но, например, есть DW типа grid. Нам нужно сделать его только для просмотра и при этом дать возможность пользователю перемещаться по строкам и столбцам, чтобы он видел в любой момент в какой ячейке он находится, например, для последующего наложения фильтра и т.д.(Protect не подходит т.к. блокирует вообще доступ, taborder тоже не дает получить фокус). Решение типа return 2 в событии itemchanged не подходит, т.к. юзер изменяет данные на экране при нажатии на батоны на клавиатуре, а результат возвращается к исходному только после смены колонки или строки. Здесь вообще проблемы: "Я же все вводил, куда все пропало?". В событии editchanged нет возможности заблокировать стандартную обработку ввода.

Колонки с со стилем Edit можно установить DisplayOnly, для EditMask можно установить ReadOnly. Проблемы начинаются когда в DW появляется DDDW. Нет возможности перехватить событие нажатия клавиш "стрелка вверх" и "стрелка вниз". Соответсвенно юзер хочет переместиться на предыдущую строку и получается изменяет dddw.

Вообщем не долго мучаясь я решил реализовать все на фильтрах в child. Т.е. при попадании фокуса в dddw накладывается динамический фильтр (а при потери фокуса снимается) в котором только значение отображаемое на экране. При этом при нажатии стрелки вверх/вниз изменение значения не просходит, но все равно отследить их нажатие не возможно.

Еще чуть не забыл... Есть решение: dw_1.Modify("DataWindow.ReadOnly=Yes"). Но опять же нет возможно перемещаться по колонкам.


Может я просто не нашел решения. Может уже кто-то решал подобную проблему. Подскажите решение plz.
...
Рейтинг: 0 / 0
ReadOnly Grid с перемещением по строкам и столбцам
    #32959330
gal20
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lbarondw_1.Modify("DataWindow.ReadOnly=Yes"). Но опять же нет возможно перемещаться по колонкам.


Хорошее решение. Именно так у нас интерфейс и реализован. То есть user бегает по DW в режиме просмотра, а для редактирования нажимает Enter или DoubleClick мыши.
Для отображения текущей позиции (ячейки) использовали варианты:
- изменение цвета фона (а ля 1C)
- прорисовка вокруг ячейки цветного прямоугольника (а ля Excel)

Программирование подсветки (прямоугольника) производится на событии ItemFocusChanged.
...
Рейтинг: 0 / 0
ReadOnly Grid с перемещением по строкам и столбцам
    #32959524
lbaron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А нельзя ли что-то типа примерчика... plz
...
Рейтинг: 0 / 0
ReadOnly Grid с перемещением по строкам и столбцам
    #32959571
gal20
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
column = GetColumnName()

st = column+'.Background.Color'
S_Color = Describe(st)
i = Pos(S_Color,'~t')

if (i = 0) then
s = '"'+S_Color+'~tif(currentrow() = getrow(),'+String(color)+','+S_Color+')"'
else
s = Replace(S_Color,i,1,'~tif(currentrow() = getrow(),'+String(color)+',')
s = Replace(s,len(s)-1,0,')')
end if

Modify(st+'='+s)
...
Рейтинг: 0 / 0
ReadOnly Grid с перемещением по строкам и столбцам
    #32959660
lbaron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Thank you very match.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / ReadOnly Grid с перемещением по строкам и столбцам
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]