Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
АРМ Администратор :  ИРБИС Irbis
 
Убрать повторяемость в конвертере
Пользователь: SergSB (IP-адрес скрыт)
Дата: 02, February, 2009 11:52

Здравствуйте. Подскажите пожалуйста как убрать повторяемость поля 463 в конвертере marc_irb.fst
вот так выглядит поле в конвертере

463 0 (if &umarci('4461/200^a') <> '' then '^C', &umarci('4461/200^a') fi, if &umarci('4461/200^h') <> '' and &umarci('4461/200^i') <> '' then '. ', &umarci('4461/200^h'), ', ', &umarci('4461/200^i') else if &umarci('4461/200^i') <> '' then '. ', &umarci('4461/200^i') fi fi, if p(v215^c) then '^0', v215^c fi, if &umarci('4463/210^d') <> '' then '^J', &umarci('4463/210^d') fi, if &umarci('4463/200^v') <> '' then if &uf('E1', &umarci('4463/200^v')) = 'С.' or &uf('E1', &umarci('4463/200^v')) = 'C.'then '^1С.^S', &uf('F1', &umarci('4463/200^v')) else '^1', &umarci('4463/200^v') fi fi, if &umarci('4463/200^a') <> '' then &uf('+1'), if v463^a : 'Т. ' then if v463^a : 'N ' then &uf('+1W100,0#', &uf('11R, N?v463^a')), &uf('+1W101,0#', &uf('G1N', v463^a)) fi, if v463^a : 'вып. ' then if &uf('11L, вып.?v463^a') <> '' then &uf('+1W100,0#', &uf('11R, вып.?v463^a')) else &uf('+1W100,0#', &uf('11R, Вып.?v463^a')) fi , &uf('+1W101,0#', &uf('11L, ?v463^a')) fi, if v463^a : 'ч. ' then if &uf('11L, ч.?v463^a') <> '' then &uf('+1W100,0#', &uf('11R, ч.?v463^a')) else &uf('+1W100,0#', &uf('11R, Ч.?v463^a')) fi , &uf('+1W101,0#', &uf('11L, ?v463^a')) fi, else &uf('+1W101,0#', v463^a) fi, if &uf('F2', &uf('+1R100')) = '' then if &uf('+1R100') <> '' then '^v', &uf('+1R100') fi else '^vТ. ', &uf('G0.', &uf('F1', &uf('+1R100'))),'^a', &uf('F2', &uf('+1R100')) fi, if &uf('+1R101') : 'вып.' or &uf('+1R101') : 'ч.' then '^h', &uf('+1R101') else if &uf('+1R101') : '.' then '^h', &uf('G0.', &uf('+1R101')), '^i', &uf('F1', &uf('G1.', &uf('+1R101'))) else '^h', &uf('+1R101') fi fi fi/)


Решение оказалось следующим:
Перед этим назначил &unifor('+1W238#1')
и ввел проверку условия:
463 0 (if &unifor('+1R238'):'1' then &unifor('+1W238#2'), if &umarci('4461/200^a') <> '' then '^C', &umarci('4461/200^a') fi, if &umarci('4461/200^h') <> '' and &umarci('4461/200^i') <> '' then '. ', &umarci('4461/200^h'), ', ', &umarci('4461/200^i') else if &umarci('4461/200^i') <> '' then '. ', &umarci('4461/200^i') fi fi, if p(v215^c) then '^0', v215^c fi, if &umarci('4463/210^d') <> '' then '^J', &umarci('4463/210^d') fi, if &umarci('4463/200^v') <> '' then if &uf('E1', &umarci('4463/200^v')) = 'С.' or &uf('E1', &umarci('4463/200^v')) = 'C.'then '^1С.^S', &uf('F1', &umarci('4463/200^v')) else '^1', &umarci('4463/200^v') fi fi, if &umarci('4463/200^a') <> '' then &uf('+1'), if v463^a : 'Т. ' then if v463^a : 'N ' then &uf('+1W100,0#', &uf('11R, N?v463^a')), &uf('+1W101,0#', &uf('G1N', v463^a)) fi, if v463^a : 'вып. ' then if &uf('11L, вып.?v463^a') <> '' then &uf('+1W100,0#', &uf('11R, вып.?v463^a')) else &uf('+1W100,0#', &uf('11R, Вып.?v463^a')) fi , &uf('+1W101,0#', &uf('11L, ?v463^a')) fi, if v463^a : 'ч. ' then if &uf('11L, ч.?v463^a') <> '' then &uf('+1W100,0#', &uf('11R, ч.?v463^a')) else &uf('+1W100,0#', &uf('11R, Ч.?v463^a')) fi , &uf('+1W101,0#', &uf('11L, ?v463^a')) fi, else &uf('+1W101,0#', v463^a) fi, if &uf('F2', &uf('+1R100')) = '' then if &uf('+1R100') <> '' then '^v', &uf('+1R100') fi else '^vТ. ', &uf('G0.', &uf('F1', &uf('+1R100'))),'^a', &uf('F2', &uf('+1R100')) fi, if &uf('+1R101') : 'вып.' or &uf('+1R101') : 'ч.' then '^h', &uf('+1R101') else if &uf('+1R101') : '.' then '^h', &uf('G0.', &uf('+1R101')), '^i', &uf('F1', &uf('G1.', &uf('+1R101'))) else '^h', &uf('+1R101') fi fi fi fi/)



Редактировано 1 раз. Последний раз 02.02.2009 14:21 пользователем SergSB.



Извините, только зарегистрированные пользователи могут писать в этом форуме.
This forum powered by Phorum.