Руководство по программе МедКарта
Главная Статистика Содержание Назад Вперёд

Функции BlFields(), BlSource()

Вызывают форму для ввода или редактирования в виде бланка - BlFields() или списка - BlSource().
Синтаксис
BlFields(lFlag,cBlank,[lCopy])
BlSource(lFlag,cBlank,[lCopy])
Параметры
lFlag
определяет, в каком режиме открывать форму: .F. - для редактирования; .T. - для создания новой записи
cBlank
путь до формы и ее название
lCopy
если параметр задан (.T.), то при создании новой записи в нее будут переносится данные из позиции курсора текущей таблицы. Имеет смысл только при значении lFlag=.T.
Результат
возвращает .T. в переменную lFlag, если в форме нажата кнопка OK, иначе возвращает .F..
Пример 1 - открывает форму (в виде бланка) для записи из позиции курсора в режиме редактирования:
  ...
LOCAL m.lnSelect

m.lnSelect = SELECT()
IF OpenDBF(m.DirData+'IbjData.dbf','IbjBase')
   lFlag = .F.
   DO BlFields WITH lFlag,m.DirData+'Template\СТАТИСТИЧЕСКАЯ КАРТА.Bln'
   ...
ENDIF
   ...
Пример 2 - открывает форму (в виде списка) для новой записи:
  ...
LOCAL m.lnSelect

m.lnSelect = SELECT()
IF OpenDBF(m.DirData+'IbjData.dbf','IbjBase')
   lFlag = .T.
   DO BlSource WITH lFlag,m.DirData+'Template\СТАТИСТИЧЕСКАЯ КАРТА.Bln'
   ...
ENDIF
   ...
Пример 3 - открывает форму (в виде списка) для новой записи, но с заполненными данными из текущей таблицы из позиции курсора:
  ...
LOCAL m.lnSelect

m.lnSelect = SELECT()
IF OpenDBF(m.DirData+'IbjData.dbf','IbjBase')
   lFlag = .T.
   DO BlSource WITH lFlag,m.DirData+'Template\СТАТИСТИЧЕСКАЯ КАРТА.Bln',.T.
   ...
ENDIF
   ...
Пример 4 - работает только в Карте пациента. Открывает форму для новой записи, но с заполненными данными из другой таблицы:
  ...
LOCAL m.lnSelect

m.lnSelect = SELECT()
&& Открываем БД1
   IF OpenDBF(m.DirData+'IbjData.dbf','IbjBase')

&& Копируем тек.запись БД1 в Buffer01
      COPY TO(DirPriv+'Buffer01.dbf') RECORD (RECNO())
      USE IN IbjBase
   ENDIF

&& Открываем БД2
   IF OpenDBF(m.DirData+'IbjData.dbf','IbjBase')

&& Открываем форму БД2 с заполненными данными из Buffer01
      lFlag = .T.
      DO BlSource WITH lFlag,m.DirData+'Template\СТАТИСТИЧЕСКАЯ КАРТА.Bln'
   ...
   ENDIF
   ...
Примечание к примеру 4: для правильной работы данные обязательно копируются в Buffer01 по пути DirPriv (см. переменные МедКарты).

Главная Статистика Содержание Назад Вперёд

Copyright © 2003-2006 ДПБ № 6 Предложения и замечания направляйте на MedCard@dpb6.ru