Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
АРМ Книговыдача :  ИРБИС Irbis
 
Статическая форма - Распределение числа читателей по возрасту, образованию, и группам за период!
Пользователь: mzv100 (IP-адрес скрыт)
Дата: 13, October, 2014 16:37

Доброго времени суток уважаемые участники форума. Возник вопрос относительно того, как можно реализовать вывод более сложной статической формы, чем те, что предложены в программе, в Арм "Книговыдача".

Необходима форма в которой для каждого отдела просчитывается:


1. Возраста читателя, который делится по градациям - до 14, 14-21, 22-24 и т.д.
2. В этой же форме подсчитывается образование - Высшее, среднее и т.д.
3. И в завершении группа читателя.
4. Да, и естественно общее число читателей за период.

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

[yadi.sk]



Редактировано 1 раз. Последний раз 14.10.2014 09:34 пользователем mzv100.

Re: Статическая форма - Распределение числа читателей по возрасту, образованию, и группам за период!
Пользователь: mzv100 (IP-адрес скрыт)
Дата: 14, October, 2014 10:02

Прикрепил форму, которой должна соответствовать исходная таблица. Вообще интересно, может ли АРМ "Книговыдача" создавать подобные таблицы или я немного не понимаю логики. Также не понимаю, как прикрепить в книговыдачу - сложную табличную форму. Надеюсь на ответ. Спасибо!

[yadi.sk]

Re: Статическая форма - Распределение числа читателей по возрасту, образованию, и группам за период!
Пользователь: mzv100 (IP-адрес скрыт)
Дата: 14, October, 2014 14:58

Также не менее интересно, на форуме есть живые души? Или может мой вопрос не совсем понятен? Так я могу исправится!

Re: Статическая форма - Распределение числа читателей по возрасту, образованию, и группам за период!
Пользователь: Дунаевская (IP-адрес скрыт)
Дата: 15, October, 2014 14:41

Форма, которая вам нужна, не стандартная, чтобы ее получить потребуется от Вас значительных трудов.
Подобной таблицы в ИРБИСе нет, я думаю. можно пойти по такому пути.
В генераторе табличных форм нужно будет создать таблицу, каждый столбец которой будет определять конкретный разрез, т.е. состоящую из суммарного числа нужных результирующих данных.
Затем определить многострочный формат ИТОГОВ из этих данных и формат многоуровневой шапки к нему, а саму форму сохранить в виде Итоговой таблицы.

Формат для подсчета возрастного интервала (на основании года рождения и места регистрации читателя) может быть, например, таким (для интервала 14-21)

if p(v51) then if v51^c:'отдел библиотеки' then if val(&uf('30'))-val(v21)> 14 and val(&uf('30'))-val(v21) < 21 then '1' fi fi fi

Re: Статическая форма - Распределение числа читателей по возрасту, образованию, и группам за период!
Пользователь: mzv100 (IP-адрес скрыт)
Дата: 16, October, 2014 09:49

А если каждый пункт разбить на отдельные таблицы? Будет легче? Так у нас получится три основные формы:
1. Читатели по возрасту
2. Читатели по образованию
3. Группы читателей (уч.школ, дошкольник и т.д.)

Мне больше не понятно, куда прописывать таблицы, в каталогизатор? И нужно ли после создания каждой из таблиц делать постредактирование?

Да, спасибо за отдельный формат возраста..

>Подобной таблицы в ИРБИСе нет, я думаю. можно пойти по такому пути
>В генераторе табличных форм нужно будет создать таблицу, каждый столбец
>которой будет определять конкретный разрез, т.е. состоящую из суммарного
>числа нужных результирующих данных.

Вот тут хотелось бы максимально на пальцах smiling smiley

>Затем определить многострочный формат ИТОГОВ из этих данных и формат
>многоуровневой шапки к нему, а саму форму сохранить в виде Итоговой
>таблицы.

А готовой формы, хотя бы отдаленно похожей на ту что нужно нет? Я бы ковырял ее, максимально подгоняя под нужный вариант???



Редактировано 2 раз. Последний раз 16.10.2014 10:29 пользователем mzv100.

Re: Статическая форма - Распределение числа читателей по возрасту, образованию, и группам за период!
Пользователь: Дунаевская (IP-адрес скрыт)
Дата: 16, October, 2014 12:01

Пожалуй, я Вам предложила сложный способ. Думаю проще создать статистическую форму (см. инструкцию).

Re: Статическая форма - Распределение числа читателей по возрасту, образованию, и группам за период!
Пользователь: mzv100 (IP-адрес скрыт)
Дата: 16, October, 2014 12:26

Да, но статистическая форма не будет работать с выборкой по возрастам, так как это нужно для нескольких возрастных категорий. Как в вашем формате есть от 14-21 так она и выберет, а для возрастов 15-21, 22-24, нужно делать еще две формы? Я правильно понимаю? Тогда получается чтобы создать самый простой отчет, нужно печатать порядка 6 форм.

Еще хотел спросить, как называется справочник выходных форм в "Каталогизаторе" для БД RDR. Спасибо



Редактировано 1 раз. Последний раз 16.10.2014 12:34 пользователем mzv100.

Re: Статическая форма - Распределение числа читателей по возрасту, образованию, и группам за период!
Пользователь: Дунаевская (IP-адрес скрыт)
Дата: 16, October, 2014 14:07

А если так
if p(v51) then
if v51^c:'<Отд. 1>' then
if val(&uf('30'))-val(v21)< 14 then '1' else
if val(&uf('30'))-val(v21)> 14 and val(&uf('30'))-val(v21) < 21 then '2' else
if val(&uf('30'))-val(v21)> 21 then '3'
fi fi fi fi fi

А значения 1, 2 и 3 для <Отд. 1> ввести в меню

Re: Статическая форма - Распределение числа читателей по возрасту, образованию, и группам за период!
Пользователь: mzv100 (IP-адрес скрыт)
Дата: 16, October, 2014 16:29

На самом деле я и не надеялся, что получится с первого раза, поэтому, если есть время, помогите мне разобраться, так как в целом - это облегчит картину понимания.
Прикладываю форму которая у меня получилась, точнее не получилась, там много ошибок, я понимаю, может это даже покажется "легким" бредом, но я все равно очень хочу все понять. Спасибо!

[yadi.sk]



Редактировано 1 раз. Последний раз 16.10.2014 16:30 пользователем mzv100.

Re: Статическая форма - Распределение числа читателей по возрасту, образованию, и группам за период!
Пользователь: Дунаевская (IP-адрес скрыт)
Дата: 16, October, 2014 21:55

Если нужно получить распределение по возрасту читателей и опираться при этом на дату и место записи читателя в библиотеку (поле 51, первое повторение), то попробуйте так, как показано ниже.


02_Form2a
if p(v51) then &uf('Av51^c#1') else '*' fi
kv.mnu
if p(v51) then if v51.6>=&uf('Av1000^a#1') and v51.6<=&uf('Av1000^b#1') then if val(&uf('30'))-val(v21)< 14 then '1' else if val(&uf('30'))-val(v21)> 14 and val(&uf('30'))-val(v21) < 21 then '2' else if val(&uf('30'))-val(v21)> 21 then '3' fi fi fi else '*' fi fi,
vz1.mnu
2,4
9999.wss,1000
'Распределение числа читателей по возрасту за период с ',v1000^A*6.2".",v1000^A*4.2".",v1000^A.4,' по ',v1000^B*6.2".",v1000^B*4.2".",v1000^B.4
1,1

Re: Статическая форма - Распределение числа читателей по возрасту, образованию, и группам за период!
Пользователь: mzv100 (IP-адрес скрыт)
Дата: 17, October, 2014 11:10

Странно, добавил все, как показано выше, но на выходе получается пустая форма.. Форму и файлы прилагаю..

[yadi.sk]

Re: Статическая форма - Распределение числа читателей по возрасту, образованию, и группам за период!
Пользователь: Дунаевская (IP-адрес скрыт)
Дата: 17, October, 2014 11:40

mzv100 написал(а):
-------------------------------------------------------
> Странно, добавил все, как показано выше, но на
> выходе получается пустая форма.. Форму и файлы
> прилагаю..

Добавили, но при переносе в файле stf имена меню заканчиваются пробелом, которого быть не должно.
Посмотрите еще готовые стат.формы, проверьте свой xls файл

Re: Статическая форма - Распределение числа читателей по возрасту, образованию, и группам за период!
Пользователь: mzv100 (IP-адрес скрыт)
Дата: 17, October, 2014 12:46

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

rccpv2
if p(v51) then &uf('Av51^c#1') else '*' fi
kv.mnu
if p(v51) then if v51.6>=&uf('Av1000^a#1') and v51.6<=&uf('Av1000^b#1') then if p(v40) then if v40^D>=&uf('Av1000^a#1') and v40^D<=&uf('Av1000^b#1') if val(&uf('30'))-val(v21)< 14 then '1' else if val(&uf('30'))-val(v21)> 14 and val(&uf('30'))-val(v21) < 21 then '2' else if val(&uf('30'))-val(v21)> 21 then '3' fi fi fi fi fi else '*' fi fi,
vz1.mnu
2,4
9999.wss,1000
'Распределение числа читателей по возрасту за период с ',v1000^A*6.2".",v1000^A*4.2".",v1000^A.4,' по ',v1000^B*6.2".",v1000^B*4.2".",v1000^B.4
1,1

Re: Статическая форма - Распределение числа читателей по возрасту, образованию, и группам за период!
Пользователь: Дунаевская (IP-адрес скрыт)
Дата: 17, October, 2014 13:20

1. В вашем формате пропущено then (Генератор форматов используете для отладки ?)
2. Если должна вестись выборка из числа читателей посетивших отдел за период хотя бы раз, то разбивать их на возрастные группы можно так, как показано ниже (поле 51 - дата записи в б-ку - здесь не нужно вообще), но в РЛ опроса нужно указывать отдел (у Вас это подполе 1 в 9999.wss)).

if rsum((if p(v40) then if v40^D>=&uf('Av1000^a#1') and v40^D<=&uf('Av1000^b#1') and and v40^v=&uf('Av1000^1#1') then '1;' fi fi))>0 then
if val(&uf('30'))-val(v21)< 14 then '1' else
if val(&uf('30'))-val(v21)> 14 and val(&uf('30'))-val(v21) < 21 then '2' else
if val(&uf('30'))-val(v21)> 21 then '3' fi fi fi
else '*' fi



Редактировано 1 раз. Последний раз 17.10.2014 13:38 пользователем Дунаевская.

Re: Статическая форма - Распределение числа читателей по возрасту, образованию, и группам за период!
Пользователь: mzv100 (IP-адрес скрыт)
Дата: 21, October, 2014 10:17

Прошу прощения, за то, что не смог сразу вас поблагодарить, - пропустил это сообщение. Вы действительно очень сильно помогли, сейчас попробую это форму. И отпишусь о работоспособности, и еще раз спасибо!

Re: Статическая форма - Распределение числа читателей по возрасту, образованию, и группам за период!
Пользователь: mzv100 (IP-адрес скрыт)
Дата: 21, October, 2014 11:08

Странно, подставил формат, но форма все равно выдает все по нулям.

Ссылка на измененный формат [yadi.sk]

Re: Статическая форма - Распределение числа читателей по возрасту, образованию, и группам за период!
Пользователь: Дунаевская (IP-адрес скрыт)
Дата: 21, October, 2014 13:03

Что-то Вы не анализируете то, что пишете - даже скопировали мою ошибку (and and).
Наверное, Вам не нужно условие and v40^v=&uf('Av1000^1#1').

Отлаживайте формат в Редакторе форматов на отдельной записи БД RDR, введя в нее поле 1000 (на закладке "модельные записи")

Re: Статическая форма - Распределение числа читателей по возрасту, образованию, и группам за период!
Пользователь: mzv100 (IP-адрес скрыт)
Дата: 21, October, 2014 15:47

Да, я не разбираюсь в инструментах разработчика на должном уровне, и не привык первым делом запихивать формат в редактор для проверки (хотя понимаю, что это нужно делать как раз, - первым делом), думаю это придет с практикой.
Изменил формат как вы указали, только проблема в том, что совершенно не понятно как программа высчитывает посещения. Поясню. Если выставить Значение 1 равное 57 - отдел, почему то в выходной форме залезают цифры для других отделов? С чем это может быть связано?

Все формы прилагаю [yadi.sk]

Re: Статическая форма - Распределение числа читателей по возрасту, образованию, и группам за период!
Пользователь: Дунаевская (IP-адрес скрыт)
Дата: 21, October, 2014 18:53

mzv100 написал(а):
-------------------------------------------------------
> Да, я не разбираюсь в инструментах разработчика на
> должном уровне, и не привык первым делом
> запихивать формат в редактор для проверки (хотя
> понимаю, что это нужно делать как раз, - первым
> делом), думаю это придет с практикой.
Если хотите делать свои формы и другие доработки самостоятельно, придется изучать инструменты разработчика

> Изменил формат как вы указали, только проблема в
> том, что совершенно не понятно как программа
> высчитывает посещения. Поясню. Если выставить
> Значение 1 равное 57 - отдел, почему то в выходной
> форме залезают цифры для других отделов? С чем это
> может быть связано?
>
Отдел, указанный в <значение 1>, - это запрошенное место ВЫДАЧИ (в вашей терминологии - "отдел, который посетил читатель"), а отделы, указанные в столбце формы - это первый из отделов, в которых читатель зарегистрирован &uf('A51^c#1')

<Если выставить Значение 1 равное 57 - отдел, почему то в выходной форме залезают цифры для других отделов? С чем это может быть связано?>
Это значит, что в отделе 57 получал книгу читатель, который зарегистрирован не в единственном отделе, и ПЕРВОЕ место регистрации у него - другой отдел

Если удалить, как я предлагала, фрагмент формата и не указывать МЕСТО ВЫДАЧИ (т.е. место посещения), то получите распределение по возрасту читателей, зарегистрированных в разных отделах, которые хоть раз брали книгу независимо от места выдачи

Re: Статическая форма - Распределение числа читателей по возрасту, образованию, и группам за период!
Пользователь: mzv100 (IP-адрес скрыт)
Дата: 24, October, 2014 11:42

Теперь все предельно ясно. Спасибо большое за помощь, и поддержку в решение не легких задач, связанных со статическими формами - вы очень сильно помогли!



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