Рекомендации по перерисовкам в интерфейсах Назад В начало Вперед

Для прорисовки записей служат три метода:

Каждый последующий метод вызывает предыдущий, поэтому не следует вызывать их два подряд.

ReDrawPanel

Процедура ReDrawPanel перерисовывает поля текущей записи без обращения к БД:

tableEvent table myTable
cmPick :
{
   name := 'reDraw';
   ReDrawPanel (#myTable);
}

В приведенном примере будет прорисовано новое значение name, если name - поле myTable или вычисляемое выражение от полей этой таблицы.

Тоже самое можно записать с использованием оператора set:

tableEvent table myTable
cmPick :
{
   set name := 'reDraw';
}

Вместо табличного обработчика событий tableEvent можно использовать handleEvent:

handleEvent
cmPick :
{
   set name := 'reDraw';
} 

В этом случае также будет прорисовано новое значение name. Но если таблица поля name не текущая, то дополнительно будет вызван ReDrawPanel для текущей таблицы.

ReScanPanel

Процедура ReScanPanel пересканирует содержимое панели. Для анкетного редактора действие ReScanPanel аналогично ReDrawPanel.

Для табличного редактора ReScanPanel заново считывает из базы поля всех записей, видимых на экране, КРОМЕ текущей. Затем вызывается ReDrawPanel для этой таблицы.

Т.е. код:

ReScanPanel (#myTable);
ReDrawPanel (#myTable);

или

ReDrawPanel (#myTable);
ReScanPanel (#myTable);

ничего не дает корме лишних прорисовок.

Примеры использования:

TreeJumpToRecord();
ReScanPanel(#myTable);

или

getFirst myTable;
ReScanPanel (#myTable);

RereadRecord

Процедура ReReadRecord заново считывает из базы поля текущей записи, а затем вызывает ReScanPanel для этой таблицы.

Т.е. код:

ReReadRecord (#myTable);
ReScanPanel (#myTable);
ReDrawPanel (#myTable);

равен одному вызову:

ReReadRecord (#myTable);

Примеры использования:

delete current myTable;
ReReadRecord (#myTable);

или

pushBounds (#myTable);
ReReadRecord (#myTable);

Сводная таблица

 

перечитать текущую строку из БД

перерисовать весь броузер из БД кроме текущей строки

перерисовать текущую строку без обращения к БД

RedrawPanel

-

-

+

RescanPanel

-

+

+

RereadRecord

+

+

+

Сводная таблица показывает, какие действия и в какой последовательности выполняются каждым из методов