- При библиографической росписи периодических изданий, статей сборников в программе 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. Устанавливаем умолчание.