ReScanPanel

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

sth73
Постоянный гость
Сообщения: 52
Зарегистрирован: 29 ноя 2005, 19:47

Сообщение sth73 »

если в cmInit: есть Abort, то он закроется с cmCancel и в параметре ничего не вернет. Если надо что-то вернуть из такого интерфейса в параметре, то его (интерфейс) надо описывать как AlwaysReturn. Тогда интерфейс закроется с cmDefault и вернет значение в параметре. В документации это, насколько я помню, описано.
поЧитатель
Посетитель
Сообщения: 44
Зарегистрирован: 27 янв 2006, 14:21

Сообщение поЧитатель »

to sth73

Спасибо.

про AlwaysReturn у меня не было документации.
Screw
Слесарь-системщик
Сообщения: 304
Зарегистрирован: 29 мар 2005, 17:49
Откуда: р.Беларусь, Унитарное предприятие "ТОП СОФТ"
Контактная информация:

Сообщение Screw »

if( VMain.getFirst tpFirstGuiltyDep <> tsOk)
reScanPanel(tntpFirstGuiltyDep);
В этом коде есть очевидный баг: пересканирование не будет выполнено, если позиционирование прошло успешно. Луше записать это дело вот так:

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

if VMain.getFirst tpFirstGuiltyDep <> tsOk {}
reScanPanel(tntpFirstGuiltyDep);
Либо остановиться на таком варианте

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

ReReadRecord(tntpFirstGuiltyDep);
Далее, сущность panel считается устаревшей, а связь "редактор значений полей таблицы" - "обработчик табличных событий" реализуется следующим образом:

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

  browse|screen|tree ...;
    table XXX;
    ...
  end;

  ...
  tableevent table XXX;
    cmInsertRecord: 
      ...
    ...
  end;
И, наконец, дополнительные логические таблицы (вьюхи) вам помогут лишь немного сократить время загрузки большого интерфейса. А в остальном они представляют собой только лишний геморрой. Насколько мне известно, поля дополнительных логических таблиц не могут фигурировать в browse|screen|tree, поэтому имеет смысл использовать их только в реализации неких расчетных алгоритмов. Инициализация дополнительной ЛТ происходит только в момент первого к ней обращения (основная ЛТ инициализируется во время загрузки интерфейса), за счет этого и достигается "экономия".
Виталий
Ответить