Шаблон  Button_Copy     

B_Copy.gif (195 bytes)  Это control-шаблон, который реализует кнопку копирования текущей записи в новую запись.  Не понимаю, почему TopSpeed не сделала эту кнопку в стандартных шаблонах?

#!=================================================================================
#CONTROL (Button_Copy, 'Кнопка Копирования записи')
CONTROLS
  BUTTON,AT(,,16,16),MSG('Копировать в новую запись'), TIP('Копировать'), USE(?Copy),  ICON('COPY_REC.ICO')
END
#!=================================================================================
#DISPLAY ('')
#DISPLAY ('Кнопка Копирования текущей записи')
#DISPLAY ('')
#!
#ATSTART
#DECLARE (%ButtonCopy)
#FOR (%Control), WHERE(%ControlInstance = %ActiveTemplateInstance)
  #SET (%ButtonCopy, %Control)
#ENDFOR
#ENDAT
#!
#! ------ После нажатия кнопки ------
#AT (%ControlPostEventHandling, '?Copy', 'Accepted')
#EMBED(%BrowseBeforeCopy,'Browse Box, Before Copy'), %ActiveTemplateInstance, MAP(%ActiveTemplateInstance, %ActivetemplateInstanceDescription)
  LocalRequest = InsertRecord
  do BRW1::CallUpdate
  if GlobalResponse = RequestCompleted
    BRW1::LocateMode = LocateOnEdit
    do BRW1::LocateRecord
  else
    BRW1::RefreshMode = RefreshOnQueue
    do BRW1::RefreshPage
  .
  do BRW1::InitializeBrowse
  do BRW1::PostNewSelection
  select(?Browse:1)
  LocalRequest = OriginalRequest
  LocalResponse = RequestCancelled
  do RefreshWindow
#ENDAT

В embed вставку 'Browse Box, Before Copy' удобно вставлять код, инициализирующий некоторые поля новой записи.

Кнопка работает только с первым browse box-ом в окне (с именем ?Browse:1).  Я думаю, это не является существенным ограничением, а писать более универсальный код лень....

Hosted by uCoz