Удалить подполе

Общий форум по вопросам поддержки АИБС МаркSQL

Удалить подполе

Сообщение ase301 » Пт авг 17, 2018 5:49 pm

Стоит задача удалить в документах ключевые слова с одним из трех значений: ЭБС Лань, ЭБС Юрайт, ЭБС IPRbooks.
Из меню отчетов запускаю скрипт:

~IntCompare(~GetDocCount(),0,,~MessageBox(~T(Подмножество документов не отобрано!),FatalError))
~SetParam(RET,~MessageBoxEx(YESNO ICONQUESTION,Удалить ключевые поля,Выполнить обработку ~GetDocCount() документов?))
~SetParam(NN,0)
~If(~GetParam(RET),=,YES,
~ForEveryDoc(
~AddParam(NN,1)\
~ForSubTags(653a,PV,\
~If(~GetParam(PV),=,ЭБС Лань,~DelSubTag(653a))\
~If(~GetParam(PV),=,ЭБС Юрайт,~DelSubTag(653a))\
~If(~GetParam(PV),=,ЭБС IPRbooks,~DelSubTag(653a))\
)\
)\
~MessageBox(Из ~GetDocCount() документов обработано ~GetParam(NN))

Из групповой обработки запускаю скрипт:
~ForSubTags(653a,PV,\
~If(~GetParam(PV),=,ЭБС Лань,~DelSubTag(653a,))\
~If(~GetParam(PV),=,ЭБС Юрайт,~DelSubTag(653a,))\
~If(~GetParam(PV),=,ЭБС IPRbooks,~DelSubTag(653a,))\
)\
Результат один - в документах, в которых имеются ключевые слова с такими значениями удаляется подполе 653а, расположенное в карточке документа первым, независимо от его значения.

Я что-то не так делаю?
Сергей Атаманов,
программист НБ ДВИУ РАНХиГС, г.Хабаровск
ase301@gmail.com
http://biblio.dviu.ranepa.ru/
ase301
 
Сообщения: 97
Зарегистрирован: Ср дек 24, 2014 11:04 am
Откуда: Хабаровск, ДВИУ РАНХиГС

Re: Удалить подполе

Сообщение vvv75 » Ср авг 22, 2018 10:36 am

Добрый день!
Надо через массив:
~ArrayClear(a)
~ArrayFromString(a,~GetAllSubTags(653a,;),;)
~DelSubTag(653a,ALL)
~Repeat(b,~ArrayCount(a),
~SetParam(f,0)
~If(~ArrayGet(a,~GetParam(b)),=,ЭБС Лань,~SetParam(f,1))
~If(~ArrayGet(a,~GetParam(b)),=,ЭБС Юрайт,~SetParam(f,1))
~If(~ArrayGet(a,~GetParam(b)),=,ЭБС IPRbooks,~SetParam(f,1))
~IntIf(~GetParam(f),=,0,~AddSubTag(653a,~ArrayGet(a,~GetParam(b))))
)

Удаляем все, добавляем нужные. Если терм не нужен, то флаг=1, если флаг=0, то добавление
Василий Вячин
Специалист-разработчик
ООО НПО Информ-Система
Tel: +7 499 121 70 97
E-mail: vasilii@informsystema.ru
Skype: IS.Vasilii
Аватара пользователя
vvv75
Site Admin
 
Сообщения: 491
Зарегистрирован: Чт сен 18, 2014 10:26 pm


Вернуться в МаркSQL

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 1

cron