MarcSql. Устанавливаем умолчание.

При библиографической росписи периодических изданий, статей сборников в программе MarcSQL приходиться вводить одни и те же данные об источнике, чтобы избежать лишнего ввода необходимо поставить поле на умолчание, чтобы при создании записи необходимые поля уже были заполнены.
Для постановки на умолчание необходимо установить на необходимое поле скрипт, это задается в файле ScriptMap.ini в папке bin программы.
Например для поля 100а необходимо выполнить скрипт, в файле ScriptMap.iniпишем секцию
 
[100a]
Script=~CallScript(scp/default.scp)
 
запуск скрипта происходит нажатием клавиши F3, когда курсор стоит в поле 100a, в данном случае у нас будет выполняться скрипт default.scp из папки scp
 
соответственно нам необходимо создать файл default.scp в папке scp со следующим содержимым:
 
Скрипт для постановки на умолчание версия 0.0.3
~SetParam(sfil,~LoadFile (~GetUserDir()\\default\\~GetParam($Login)~GetParam($SubTag)))
~If(~GetParam(sfil),=,,~SaveFile (~GetUserDir()\\default\\~GetParam ($Login)~GetParam ($SubTag),~GetParam ($Value))~MessageBox(Умолчание установлено))
~If(~GetParam(sfil),<>,,~SaveFile (~GetUserDir()\\default\\~GetParam ($Login)~GetParam ($SubTag))~MessageBox(Умолчание снято))
 
 
данный скрипт не только устанавливает умолчание, но и снимает его. Работает он следующим образом: заходит в каталог пользователя в папку default, если нет такой папки, то автоматически она создается, ищет файл с именем состоящим из имени пользователя и кода поля, я зашел под пользователем bibl код поля 100a, следовательно файл должен быть bibl100a, если такого файла нет, то он создается и в файл помещаются данные поля, если файл существует, но он пустой, в файл записываются данные поля, таким образом устанавливается умолчание, если в файле есть данные, то они удаляются и умолчание снимается.
 
Но это ещё не всё, теперь нам надо чтобы при создании новой записи заполнялись из этих файлов значения полей.
Для выполнения скрипта при создании документа надо в файле Marc.iniиз папки bin найти секцию [Scripts] и добавить туда строчку
 
OnDocNew=~CallScript(scp/load_default.scp)
 
таким образом при создании новой записи будет выполняться скрипт load_default.scp из папки scp, теперь осталось создать нам файл load_default.scp со следующим содержанием
 
~If(~FileFind(~GetUserDir()\\default\\~GetParam ($Login)100a),<>,,~If(~LoadFile (~GetUserDir()\\default\\~GetParam($Login)100a),<>,,~SetSubTag(100a,~LoadFile (~GetUserDir()\\default\\~GetParam ($Login)100a))))
 
в данном случае для поля 100а, для других полей необходимо заменить в строке 100a на другой код поля.
 
Скачать файлы статьи.
MarcSql. Устанавливаем умолчание.

Навигация по записям