ФЛК - формально-логический контроль. Можно вести как для отдельного поля, так и для БД в целом (dbnflc.pft).
Например, конструкция проверяет дублетность штрих-кодов:
if p(v910^h)then
if l(|IN=|v910^h)<=0 or val(ref(l(|IN=|v910^h),mfn))=val(mfn)then/'0' else/'2Дублетный Штрих-код: 'v910^h,ref(l(|IN=|v910^h),' (см.N ',mfn,')') fi
где v910^h - подполе для штрих-кода;
IN - словарь инвентарных номеров/штрих-кодов.
Допустим, необходимо сделать проверку на дублетность фамилий
Для этого
1) введем новый префикс инверсии (возьмем неповторяющиеся поле, к примеру v20)
1020 0 mhl, if p(v20) then 'F='v20 fi
Строку прописать в файле ИмяБд.fst
2) актуализировем словарь
3) в файле dbnflc.pft (если такого файла нет, необходимо создать вручную) введем код:
if p(v20)then
if l('F='v20)<=0 or val(ref(l('F='v20),mfn))=val(mfn)then/'0' else/'2Дублетная фамилия: 'v20,ref(l('F='v20),' (см.N ',mfn,')') fi
Теперь при дублетности фамилии система видаст оповещение. Будет известно фамилия и MFN. Дублетность для всей БД проверяется при сохранении записи.
Редактировано 2 раз. Последний раз 18.02.2013 11:18 пользователем woodyfon.