Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
vek21 Участник со стажем
Вступление в Клуб: 20.09.2007
|
Ср Авг 19, 2015 15:07  Перерисовка грида |
|
Полезность: Нет оценки
|
Уважаемые знатоки!
Почему-то не наблюдаю в документации по гриду никаких процедур перерисовки оного. На форме грид, под ним отдельная кнопка редактирования, по нажатию которой вызывается операция редактирования текущей записи грида(это важно - отдельная операция, а не редактирование строки грида прямо на экранной форме!). Так вот, после окончания операции редактирования на гриде никаких изменений не видно, несмотря на вызов процедуры RefreshGrid типа вот такой:
Код: |
procedure RefreshGrid(zay ref [KOU_DECL_ZALOG]) is
begin
V_ZALOGS.delete;
v_index := 0;
for (select x(x: ID)
in ::[ZAL_BODY_REF] all
where x%collection = zay.[ZALOGS]
)
loop
v_index := v_index + 1;
V_ZALOGS(v_index) := x.ID;
end loop;
end;
|
Здесь V_ZALOGS - это тот самый грид...
А вот если закрыть операцию и снова в нее зайти - в гриде все изменения становятся видны!
Как добиться того, чтобы результаты были видны сразу после редактирования, может, кто-то знает? |
|
 |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Ср Авг 19, 2015 15:16   |
|
Полезность: Нет оценки
|
А если commit поставить перед end ? |
|
 |
vek21 Участник со стажем
Вступление в Клуб: 20.09.2007
|
Ср Авг 19, 2015 16:00   |
|
Полезность: Нет оценки
|
К сожалению, ничего не изменилось... Да и не должно было - в процессе работы RefreshGrid можно вывести в пайпу значения и увидеть, что они уже изменились... Но почему-то грид этого замечать не желает! |
|
 |
vek21 Участник со стажем
Вступление в Клуб: 20.09.2007
|
Ср Авг 19, 2015 16:11   |
|
Полезность: 2
|
Yes!
Сам нашел. Оказывается, прежде, чем вызывать RefreshGrid, надо сделать вызов Grid1.Clear (в клиент-скрипте). вот тогда RefreshGrid все честно перерисовывает  |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|