Страница 1 из 1
Положить в очередь табличное событие?
Добавлено: 14 ноя 2011, 19:13
Robis
Реально?
Немного поясню ))
Код: Выделить всё
tableEvent table blabla;
cmUpdateRecord:
{
... логика
}
end;
function FAIL() : void;
{
blabla.field1 := 1;
blabla.field2 := 4;
<<- и вот тут, чтобы не переписывать всю логику cmUpdateRecord для таблы blabla хотелось бы его поюзать.
}
Понадобилось при докомпиляции...
Re: Положить в очередь табличное событие?
Добавлено: 14 ноя 2011, 19:21
Алексей
putCommand(cmUpdateTable); не покатит?
Re: Положить в очередь табличное событие?
Добавлено: 14 ноя 2011, 19:22
Алексей
а ещё проще логику вынести в функцию, и когда надо - вызывать функцию.
и её же в cmupdaterecord
Re: Положить в очередь табличное событие?
Добавлено: 14 ноя 2011, 19:58
Robis
Алексей писал(а):putCommand(cmUpdateTable); не покатит?
Не покатит.
Алексей писал(а):а ещё проще логику вынести в функцию, и когда надо - вызывать функцию.
и её же в cmupdaterecord
Дублирование кода + если потом разработчик изменит что-то в cmUpdateRecord мне надо будет в своём коде это править. Как раз именно от этого я и хочу уйти.
Re: Положить в очередь табличное событие?
Добавлено: 15 ноя 2011, 07:57
n0where
ДОкомпиляцией. Там же можно вызвать свою логику до, после, или вместо cmUpdateTable.
Re: Положить в очередь табличное событие?
Добавлено: 15 ноя 2011, 10:33
oiko
Функция UpDateTable
Назначение
Если таблица была модифицирована, то вызовет соответственно cmUpDateRecord или cmInsertRecord.
Re: Положить в очередь табличное событие?
Добавлено: 15 ноя 2011, 12:51
LaaLaa
UpDateTable приведет к каскадному выполнению всех cmUpdateRecord и cmInsertRecord. Если в GUI-контролы интерфейса обнаружат что были изменения в значениях полей.
Искусственно установить флаг модификации полей можно с помощью оператора SET
Код: Выделить всё
function FAIL() : void;
{
blabla.field1 := 1;
blabla.field2 := 4;
...
SET blabla.field100 := 4;
UpDateTable;
}
SET надо писать на последнем операторе из цепочки присвоений, т.к. каждый раз при вызове SET происходит перерисовка экрана.
Еще есть процедура SetModified. Установка флага модификации текущей записи текущей области ввода. С ее помощью можно достичь того же эффекта:
Код: Выделить всё
function FAIL() : void;
{
blabla.field1 := 1;
blabla.field2 := 4;
...
blabla.field100 := 4;
SetModified(true);
UpDateTable;
}
Re: Положить в очередь табличное событие?
Добавлено: 15 ноя 2011, 15:09
Robis
Laa, спасибо. Плюсанул.
Re: Положить в очередь табличное событие?
Добавлено: 15 ноя 2011, 16:17
Robis
Рановато плюсанул ))
Не работает, не вызываются события.
Re: Положить в очередь табличное событие?
Добавлено: 15 ноя 2011, 21:42
LaaLaa
еще важно какая таблица является текущей? curtable