powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Изменить свойство колонки не зная имени.
11 сообщений из 11, страница 1 из 1
Изменить свойство колонки не зная имени.
    #34810594
pb_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Количество и имена колонок в дв заранее неизвестны.
Как изменить свойство колонок?

integer ls_count
DWObject ldwo

ls_count = integer(dw_1.Describe("DataWindow.Column.Count"))


for i = 1 to ls_count
Как добраться до свойств колонок?
next
...
Рейтинг: 0 / 0
Изменить свойство колонки не зная имени.
    #34810720
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pb_new wrote:

> Количество и имена колонок в дв заранее неизвестны.
> Как изменить свойство колонок?

По номерам. "#1" - колонка No1. Если не понял, о чём я, то не лезь в дебри.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Изменить свойство колонки не зная имени.
    #34810800
pb_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
integer ls_colcount, i
string s_param


ls_colcount = integer(dw_1.Describe("DataWindow.Column.Count"))

//делаем столбцы доступными для редактирования
for i = 1 to ls_colcount
s_param = "#" + string(i) + ".Protect=1"
dw_1.Modify(s_param)
next

Только при изменении данного свойства происходит событие RowFocusChanging. Может кто пояснит?
...
Рейтинг: 0 / 0
Изменить свойство колонки не зная имени.
    #34810956
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pb_new wrote:

> //делаем столбцы доступными для редактирования
> for i = 1 to ls_colcount
> s_param = "#" + string(i) + ".Protect=1"

Тогда уж НЕдоступными ;).
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Изменить свойство колонки не зная имени.
    #34811227
pb_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ок.

Сейчас интересует почему происходит событие RowFocusChanging, а точнее как его обойти. В хелепе в описании свойства протект и в описании события ничего о данной связи не нашел.
...
Рейтинг: 0 / 0
Изменить свойство колонки не зная имени.
    #34811300
PaulJB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>> Сейчас интересует почему происходит событие RowFocusChanging, а точнее как его обойти.

Замечено, что при изменении св-ва protect ПБ устанавливает курсор на первую строку.
И еще замечено, что это зависит от билда ПБ ...

Обойтить ... :

Сделайте так, что-бы во время процесса изменения свойств колонок в событие RowFocusChanging возвращало 1.
По идее, это запретит изменять строку.
Ну а потом, понятное дело, нада вернуть все взад ... (это для события RowFocusChanging)
...
Рейтинг: 0 / 0
Изменить свойство колонки не зная имени.
    #34811376
pb_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot PaulJB
Замечено, что при изменении св-ва protect ПБ устанавливает курсор на первую строку.
[/quot]
Да, так и есть курсор переходит на первую строку

PaulJB
И еще замечено, что это зависит от билда ПБ ...

v9,0,3 B8456. под рукой ничего другого нет

PaulJB
Сделайте так, что-бы во время процесса изменения свойств колонок в событие RowFocusChanging возвращало 1.
По идее, это запретит изменять строку.
Ну а потом, понятное дело, нада вернуть все взад ... (это для события RowFocusChanging)


Можно по подробнее?
...
Рейтинг: 0 / 0
Изменить свойство колонки не зная имени.
    #34811549
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если нельзя просто вернуться на нужную строку, то можно извратиться как-нибудь так:
Добавить в DW пустое поле, менять его значение, а protect привязать к этому полю в expressions. Но это уже в крайнем случае.
...
Рейтинг: 0 / 0
Изменить свойство колонки не зная имени.
    #34811841
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pb_new PaulJB
Сделайте так, что-бы во время процесса изменения свойств колонок в событие RowFocusChanging возвращало 1.
По идее, это запретит изменять строку.
Ну а потом, понятное дело, нада вернуть все взад ... (это для события RowFocusChanging)


Можно по подробнее?
Примерно так можно попробовать:
Код: plaintext
1.
2.
//declare instance variable
boolean ib_RestrictRowFocusChange
Код: plaintext
1.
2.
3.
4.
5.
6.
//RowFocusChanging event
if ib_RestrictRowFocusChange then 
  ib_RestrictRowFocusChange = false
  return  1 
end if
...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
integer ls_colcount, i
string s_param

ib_RestrictRowFocusChange = true
ls_colcount = integer(dw_1.Describe("DataWindow.Column.Count"))

//делаем столбцы НЕдоступными для редактирования
for i =  1  to ls_colcount
  s_param += "#" + string(i) + ".Protect=1" + "~n"
next
dw_1.Modify(s_param)
...
Рейтинг: 0 / 0
Изменить свойство колонки не зная имени.
    #34811842
edmikeca
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странно, обычно этот эффект проявляется при использовании dot notation, а не при использовании Modify. В любом случае может у Вас есть возможность менять свойство колонки до Retrieve. А вообще скачайте последний build для PB 9.0.3
...
Рейтинг: 0 / 0
Изменить свойство колонки не зная имени.
    #34812150
pb_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to PL99
Спасибо, но уже сделал через TabSequence.

Вынос Modify из цикла принемается.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Изменить свойство колонки не зная имени.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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