Використання довідників в довідниках. Вкладеність

Обсуждение Модуля "Заявки"
Ответить
Donnie2Darko
Новичок
Сообщения: 1
Зарегистрирован: 04 апр 2013, 15:29
2 + 2 = ?: 4

Використання довідників в довідниках. Вкладеність

Сообщение Donnie2Darko » 05 апр 2013, 08:31

Доброго дня!
Така ситуація: є заявка на встановлення програмного комплексу і АРМів цього комплексу користувачу. Чи можна в дочірньому документі(наприклад Ресурси) реалізувати такі 3 поля:
1 поле. Вибір програмного комплексу
2 поле. В залежності від вибраного програмного комплексу в другому полі вибрати лише ті(або той) АРМ, який належить цьому програмному комплексу.
3 поле. Надати права, скасувати, підключити і т.д.
(Для прикладу моделі, як на сайті пошуку авто: вибираєш марку, а в залежності від марки в другому полі з'являються моделі цієї марки.)
І ще невеличке питання - якщо є Довідники в Довідниках (приклад Довідник Прог. компл.->Довідник АРМів(цього Прог. компл.)->Документи(кожен документ на АРМ)), то як пов'язати поле з вкладеним довідником(щоб створити залежність між прог. компл. та Арм)


Друге питання: Чи можна реалізувати вибір великої кількості користувачів для встановлення однієї і тої ж програми чи АРМу і т.д.?(подивився по форуму, але ще не спробували на практиці http://community.foss.kharkov.ua/forum/ ... ?f=8&t=495 - це відповідь на питання, щоб не повторюватись :) )

p.s. Буду вдячний за хоч якусь відповідь!

Аватара пользователя
Andrew
Разработчики FossDoc
Сообщения: 875
Зарегистрирован: 26 дек 2008, 16:03

Re: Використання довідників в довідниках. Вкладеність

Сообщение Andrew » 05 апр 2013, 10:32

Добрый день!

Итак, имеем задачу: есть заявка, и есть вкладка "Программные комплексы". Комплексы разные, и у них разные свои АРМЫ. Нужно "надати-скасувати" (выдать-забрать) определенные из них.

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

Вместо этого есть другой подход:

1) Мы создаем базовый тип документа "Программный комплекс базовый":
-создаем тип документа "Программный комплекс базовый". В него не добавляем никаких полей.
-ставим свойство "Абстрактная" в "Истина" на вкладке объект у него - чтобы пользователи не могли его создавать
-Удаляем объект скрипта на данном типе документа (см.вкладку "Скрипты").

-В базовом типе документа должно быть поле "Надати-скасувати"
-В базовом типе документа должно быть поле "Армы". Оно справочное, но этот справочник реально применяться НЕ будет.

2) Мы создаем типы документа "Программный комплекс A", "Программный комплекс Б" (делаете свои правильные имена)

3) Каждый тип документа-комплекс наследуете от "Программный комплекс базовый"
(копировать-вставить ссылку на тип документа "Программный комплекс базовый" в ветку "Родительские категории" в ваш тип документа).

4) Чтобы сделать РАЗНОЕ поле "Армы" для каждого типа комплекса, нам нужно применить хитрость: создайте в каждом типе свое поле "Армы", на свой справочник.
Потом, откройте свойства поля "Армы" у БАЗОВОГО типа комплекса, и скопируйте себе "Идентификатор свойства" (он будет иметь вид шест.числа 0x8054). Также скопируйте "Уникальное имя" (оно будет, скорее всего "Армы").

Теперь идем на свое поле "Армы" уже в реальном комплексе, и идем на вкладку "Объект" поля, а далее -- заменяем "Идентификатор свойства" на тот, что в базовом,
и меняем если нужно "Уникальное имя".

Для чего это мы делали: FossDoc считает одинаковыми поля если у них один тег и одинаковое уникальное имя. В базовом "Программный комплекс базовый" у нас есть поле-заглушка "Армы", но мы должны придерживаться стиля - а именно иметь такое же поле в "реальных" типах документа, которые НАСЛЕДОВАНЫ от базового.

5) поле в Заявке "Программные комплексы" (по типу "Дочерние документы") делаете с таким расчетом, чтобы оно "хранило" в себе "Программный комплекс базовый".

В результате: когда человек нажмет "Создать" на вкладке "Программные комплексы", ему будет предложен ВЫБОР из списка, какой тип дочернего документа создавать. А именно: "Программный комплекс А" или "Программный комплекс Б". В каждом из ваших типов комплексов уже будет поле "Надати-скасувати" (оно пройдет по наследованию). Также, в каждом типе должно быть "свое" перекрытое поле "Армы", смотрящее на свой справочник, но имеющее одинаковый с базовым идентификатор тега и уникальное имя.

Теперь, когда ваши люди выбирают , скажем "Программный комплекс А", то у них просто не будет возможности выбрать НЕ тот вариант в поле "Армы", учитывая что поле в этом типе документа свое и смотрит на правильный справочник.

academic
Пользователь
Сообщения: 19
Зарегистрирован: 10 апр 2013, 10:33
2 + 2 = ?: 4

Re: Використання довідників в довідниках. Вкладеність

Сообщение academic » 10 апр 2013, 10:39

Добрый день!
В продолжении затронутой темы. Как можно получить имя программного комплекса, в случае если выбраны армы для разных программных комплексов? Это нужно для того, чтобы в одной заявке можно было указать армы для разных программных комплексов. Мне нужно чтобы в табличке в первой колонке указывался программный комплекс, во второй наименование АРМ и в третьей - надати або скасувати.

Аватара пользователя
Andrew
Разработчики FossDoc
Сообщения: 875
Зарегистрирован: 26 дек 2008, 16:03

Re: Використання довідників в довідниках. Вкладеність

Сообщение Andrew » 10 апр 2013, 11:16

Думаю, вам как раз подойдет предыдущая рекомендация - попробуйте проделать ее по порядку, результат вас должен устроить, судя по описанию.

academic
Пользователь
Сообщения: 19
Зарегистрирован: 10 апр 2013, 10:33
2 + 2 = ?: 4

Re: Використання довідників в довідниках. Вкладеність

Сообщение academic » 10 апр 2013, 11:22

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

Аватара пользователя
Andrew
Разработчики FossDoc
Сообщения: 875
Зарегистрирован: 26 дек 2008, 16:03

Re: Використання довідників в довідниках. Вкладеність

Сообщение Andrew » 10 апр 2013, 11:40

Смотрите - один "дочерний документ" который вы создаете - это и есть по сути, "программный комплекс". Поэтому если вам нужен "другой АРМ", то вам надо создавать еще один документ в этой вкладке, и там выбрать другой Арм.

По поводу названия: имя типа документа вам должно подойти, т.е. вставьте в таблицу "Категория\Имя" (чтобы это увидеть включите показ скрытых полей).

academic
Пользователь
Сообщения: 19
Зарегистрирован: 10 апр 2013, 10:33
2 + 2 = ?: 4

Re: Використання довідників в довідниках. Вкладеність

Сообщение academic » 10 апр 2013, 11:47

Большое Спасибо! Именно это мне и было нужно.

Ответить

Вернуться в «Модуль "Заявки"»