Страница 1 из 1

чота не вкурю .. обновление по Tab

Добавлено: 04 июн 2013, 12:08
Masygreen
ввожу новое значение в поле таблицы browse если нажать на стрелочку то попадаем в cmUpdateRecord, если нажать Tab то нет О_о ... как лечить ?

Код: Выделить всё

tableEvent table..
cmUpdateRecord:

Re: чота не вкурю .. обновление по Tab

Добавлено: 04 июн 2013, 13:12
Masygreen
отвечу пожалуй сам себе

Код: Выделить всё

  cmCheckField:
    PutCommand(cmUpdateRecord);

Re: чота не вкурю .. обновление по Tab

Добавлено: 04 июн 2013, 15:14
edward_K
вызывайте UpdateTable - Если таблица была модифицирована, то вызовет соответственно cmUpDateRecord или cmInsertRecord(vipprogr.chm). Если же вы меняете не основную таблицу окна то может бы да - придется принудительно вызвать.

Re: чота не вкурю .. обновление по Tab

Добавлено: 05 июн 2013, 11:04
Masygreen
edward_K писал(а):вызывайте UpdateTable - Если таблица была модифицирована, то вызовет соответственно cmUpDateRecord или cmInsertRecord(vipprogr.chm). Если же вы меняете не основную таблицу окна то может бы да - придется принудительно вызвать.
да вот нифига ...уже второй раз так натыкаюсь .. может конечно в статуслайнах дело ((

Код: Выделить всё

Interface inPlanMarketDoc  'План сбыта' (,, sci13478EscA), AlwaysReturn;  
.....
browse br_Head (,,sci1478EnEscTreeI);
show(,9,,29);
Table pPMarkSP;
Fields
.....
tableEvent table pPMarkSP
cmUpdateRecord - не попадает по Tab и стрелкам
  cmCheckField: //обработка клавиш Tab + стрелки
    PutCommand(cmUpdateRecord);  

Re: чота не вкурю .. обновление по Tab

Добавлено: 05 июн 2013, 11:13
edward_K
Я про то , что вместо PutCommand(cmUpdateRecord) лучше попробовать юзать UpdateTable. cmUpdateRecord хорошо работает, когда меняется поле основной таблицы и сработает при попытке ухода из этой записи - по Tab вы с нее не уходите - во всех остальных случаях update нужно вызывать принудительно.
Я вставляю сей оператор почти во все события, и разработчик делает также.

Re: чота не вкурю .. обновление по Tab

Добавлено: 05 июн 2013, 11:41
Den
Дело в том, что CmUpdateRecord генерится в Атлантисе в момент ухода с текущей записи (как правильно заметил Edward_K) - т.е. пока вы скачите (по tab или мышой ..) по полям текущей записи оно не наступает. Вы просто заполняете поля буфера текущей таблицы...