Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
АРМ Книговыдача :  ИРБИС Irbis
 
Форма книговыдачи для нескольких категорий пользователей
Пользователь: sovlib (IP-адрес скрыт)
Дата: 09, December, 2019 14:52

Здравствуйте! Помогите пожалуйста разобраться.

Необходима форма для распределения книговыдачи по категориям читателей. Для этих целей отлично подходит Form5 из стандартных форм. Имеющая следующий код.

Form5
&uf('&'),&uf('+7W40#',(v40/)),&uf('+7U40#',&uf('7RDR_ARH,!RI=',v30,'!,(v40/)')),(if p(g40) then if (g40^a<>'') and (g40^d>=&uf('Av1000^a#1')) and (g40^d<=&uf('Av1000^b#1')) then if g40^v<>'' then g40^v else '*' fi/ fi fi),
kv_STF.mnu
if p(v50) then &uf('Av50#1') else '*' fi
kat_STF.mnu

Форма работает, но у одного пользователя может быть несколько категорий одновременно. Для этого переделываем строку распределения книговыдачи по категориям на:
if p(v50) then (v50/) else '*' fi

Теперь форма разносит книговыдачу по нескольким категориям, но по одному экземпляру книговыдачи на одну категорию для одного человека (например пользователь имеет категорию служащие и пожилые, в таблице ставиться единица в графу служащие и пожилые), но по факту этому пользователю выдано не один экземпляр, а 2 (должно ставиться в категорию служащие 2 и категорию пожилые 2).

Делаем по другому:
if p(v50) then &uf('Av50#1') fi / if p(v50) then &uf('Av50#2') fi / if p(v50) then &uf('Av50#1') fi/
Или так
if p(v50) then &uf('Av50#1')/ &uf('Av50#2') / &uf('Av50#3') fi/

Получаем то же самое - на одного пользователя одна книговыдача, но зато для разных категорий.

Подскажите пожалуйста, в чем проблема, почему заносятся не все книговыдачи.

Re: Форма книговыдачи для нескольких категорий пользователей
Пользователь: elkinaos (IP-адрес скрыт)
Дата: 09, December, 2019 15:34

Но ведь поле 50 (категория) неповторяющееся. Как может быть 2 категории?
Если читателю выдана книга, она же не может 2 раза посчитаться в разных столбцах. Иначе суммарно не сойдётся.

Re: Форма книговыдачи для нескольких категорий пользователей
Пользователь: sovlib (IP-адрес скрыт)
Дата: 09, December, 2019 15:46

Да вы абсолютно правы, но у нас один человек может занимать несколько категорий одновременно, например пенсионер и рабочий. Можно в эксель настроить суммарную книговыдачу как захочешь.

Например плюсовать только по возрастам, добавив возрастные категории if v21 <= '2004' and v21 >= '2001' then '*2' fi/ где '*2' - скрытая категория (переменная) от 15 до 18 лет.

А можно плюсовать по категориям которые не могут дублироваться (у нас это рабочие + служащие + школьники + студенты + прочие). У нас нужно обязательно выбрать одну из этих категорий.

Я настроил таким образом форму 12 для перерегистрации пользователь, но вот с книговыдачей не могу разобраться.



Редактировано 2 раз. Последний раз 09.12.2019 15:48 пользователем sovlib.

Re: Форма книговыдачи для нескольких категорий пользователей
Пользователь: Chaser (IP-адрес скрыт)
Дата: 11, December, 2019 09:21

Для решения этой задачи Вам нужно размножать результат выполнения этой конструкции:

if g40^v<>'' then g40^v else '*' fi


на количество категорий пользователя.

Re: Форма книговыдачи для нескольких категорий пользователей
Пользователь: sovlib (IP-адрес скрыт)
Дата: 11, December, 2019 22:10

Chaser написал(а):
-------------------------------------------------------
> Для решения этой задачи Вам нужно размножать
> результат выполнения этой конструкции:
>
>
> if g40^v<>'' then g40^v else '*' fi
>
>
>
> на количество категорий пользователя.

Спасибо огромное! Ваш ответ мне очень помог (правда применил размножение результата на другой форме, выводил данные с 3-х разных баз данных). Думаю и эта форма будет работать!



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