Форум ФОСС-Он-Лайн

Обсуждение продуктов и технологий
Текущее время: 12 дек 2017, 21:54

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
СообщениеДобавлено: 14 май 2012, 15:06 
Не в сети
Разработчики FossDoc
Аватар пользователя

Зарегистрирован: 26 дек 2008, 16:03
Сообщений: 840
В FossDoc 5 была введена возможность создавать быстро новые типы документов и справочники. Но что если вам требуется не простой справочник с одним полем "Имя" а такой , в котором справочные записи будут сами состоять из нескольких полей? Пример такого справочника - справочник "Корреспонденты". В такой записи кроме имени есть и где есть адрес организации, ФИО руководителя и т.п.

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

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

1) Создаем справочное поле как обычно, сохраняем
Вложение:
Шаг1_Создаем справочное поле.jpg
Шаг1_Создаем справочное поле.jpg [ 37.94 KiB | Просмотров: 1669 ]


2) После этого у вас в библиотеке должна появиться категория для данного справочника:
Вложение:
Шаг2_Категория_справочного_поля.jpg
Шаг2_Категория_справочного_поля.jpg [ 46.9 KiB | Просмотров: 1669 ]


3) Меняем типизацию категории, сделаем ее не простым справочником а «типом документа». Для этого скопируйте в буфер обмена вот этот идентификатор: 0000000458925B5007B14F9E8701BF31A503D7D9.

4) Идем на вкладку «Объект» вашей категории справочного поля
Вложение:
Шаг3_Категория справочного поля.jpg
Шаг3_Категория справочного поля.jpg [ 33.4 KiB | Просмотров: 1669 ]


5) В поле «Категория» - вытираем то что там написано, вставляем идентификатор из буфера обмена и нажимаем Enter. У вас должно получиться как на рисунке «FossDoc.Business logic.Document type». Нажмите сохранить изменения.
Вложение:
Шаг4_Смена категории.jpg
Шаг4_Смена категории.jpg [ 7.59 KiB | Просмотров: 1669 ]


после вставки идентификатора и Enter:

Вложение:
Шаг4_Новая категория.jpg
Шаг4_Новая категория.jpg [ 7.32 KiB | Просмотров: 1668 ]


6) В ветке «Родительские категории» у вашей справочной записи удалите ссылку на категорию «Business logic.Dictionary»
Вложение:
Шаг5_Удаляем ссылку на базовую категорию справочника.jpg
Шаг5_Удаляем ссылку на базовую категорию справочника.jpg [ 17 KiB | Просмотров: 1668 ]


7) Скопируйте в буфер обмена идентификатор:
00000004D1E030D9CE6A4771B2B0546D78686020

8) Идем в ветку «Родительские категории» вашей справочной записи, и делаем «Вставить ссылку».
Вложение:
Шаг6_Наследование от документа.jpg
Шаг6_Наследование от документа.jpg [ 39.43 KiB | Просмотров: 1671 ]


9) В итоге у вас должно получиться вот так:
Вложение:
Шаг7_Финальный вид справочной записи.jpg
Шаг7_Финальный вид справочной записи.jpg [ 17.07 KiB | Просмотров: 1671 ]

Вы можете добавлять любые поля как и в тип документа.
Обратите внимание на "наследование" - изначально справочные записи наследовались от "FossDoc.Business logic.Dictionary document" (Справочная запись), а мы удалили это наследование и заменили его на "Документ" (FossDoc.Business logic.Document). Это дало возможность добавлять любые поля, аналогично как в тип документа.

10) Из под клиента это будет выглядеть вот так:
Вложение:
Шаг8_Как это выглядит у пользователя.jpg
Шаг8_Как это выглядит у пользователя.jpg [ 47.5 KiB | Просмотров: 1672 ]


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 27 окт 2016, 16:15 
Не в сети
Пользователь

Зарегистрирован: 27 июл 2016, 09:45
Сообщений: 25
Попытался создать сложный справочник с информацией о сотруднике, чтобы он содержал ФИО в разных падежах.
Все создалось. Но при заведении шаблона документа не могу найти поля, вложенные в сложный справочнике. Есть ссылки только на имя этого сложного справочника и прочие атрибуты.

То есть не удается извлечь информацию из полей, содержащихся в сложном справочнике из документа, в котором находится ссылка на сложный справочник.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 28 окт 2016, 10:12 
Не в сети
Разработчики FossDoc
Аватар пользователя

Зарегистрирован: 26 дек 2008, 16:03
Сообщений: 840
Здравствуйте!

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

Если такого нет, сделайте вот что:
1) тип документа-сложного справочника откройте, у него скопируйте идентификатор
2) откройте поле в "рабочем" документе, и проверьте на вкладке "Объект" у него свойства "Категория хранимых объектов" и "Категория вида". Эти два свойства
должны "смотреть" на тот самый тип документа который у вас является сложным справочником.
Если вдруг там не то, а например Business logic.Dictionary, следует просто в эти свойства вставить из буфера идентификатор , нажать Enter и сохранить.

После этого - перезапуск сервера, админки, и попробовать шаблонный редактор снова.

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


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 28 окт 2016, 11:50 
Не в сети
Пользователь

Зарегистрирован: 27 июл 2016, 09:45
Сообщений: 25
Благодарю, после изменения свойства "Категория хранимых объектов" и "Категория вида" и перезапуска сервера в шаблоне документа появилась возможность выбора содержимого справочника


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 13 ноя 2017, 16:22 
Не в сети
Пользователь

Зарегистрирован: 22 окт 2017, 20:52
Сообщений: 21
Пытаюсь создать сложный справочник и что-то ничего не работает, всё какие-то глюки.
Скажите, пожалуйста, а нельзя нужное количество раз скопировать "Корреспондент" и сделать так, что бы связь между ними разорвалась, что бы при изменении набора полей в одной копии они не менялись в другой? Это бы легко решило потребность в нескольких сложных справочниках.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 13 ноя 2017, 16:44 
Не в сети
Разработчики FossDoc
Аватар пользователя

Зарегистрирован: 26 дек 2008, 16:03
Сообщений: 840
Зависит от вашей задачи. Само по себе поле "Корреспондент" всего лишь "смотрит" на определенный справочник.
Допустим, у вас есть случай когда в карточке два разных поля - одно "Поле 1" и второе "Поле 2". И вам с одной стороны нужно, чтобы они оба "смотрели" на один справочник, но и нужны эти два поля в одной карточке. Это можно решить достаточно легко.

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

Какой у вас случай?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 13 ноя 2017, 17:03 
Не в сети
Пользователь

Зарегистрирован: 22 окт 2017, 20:52
Сообщений: 21
Нужен справочник с двумя полями, условно, "Тип работ" и "Цена этой работы".
Есть карточка со полями "Что нужно сделать" (справочное, многозначное) и "Общая стоимость" (числовое вычисляемое).
Пользователь повыбирает нужные ему типы работ из справочника, а поле "Общая стоимость" вычислит сумму выбранных типов работ. Вот примерно такая ситуация, но уже не на сегодня, если что )).


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 14 ноя 2017, 09:21 
Не в сети
Разработчики FossDoc
Аватар пользователя

Зарегистрирован: 26 дек 2008, 16:03
Сообщений: 840
1) создаем библиотеку "Товары и продажи"

2) в ней создаем документ "Выполняемая работа", у нее поле "Цена" и снять галочку "Заполнять имя автоматически",
чтобы имя вводить вручную.
Система создаст для вас сразу папку, это и будет "как справочник" работ, по сути разницы нет.

Теперь наполняем эту папку (создайте там парочку записей) с именами и ценой.

3) Создаем документ "Договор" (или счет, или как хотите назовите), но его смысл - быть "сборкой" всех работ и иметь поле "Итого"

У него создаем поле "Работы", по типу "Ссылки на документы". Указать папку "Выполняемая работа".

Создаем также поле "Итого стоимость работ", денежное. Это будет вычисляемое поле.
В формуле указать summ("Работы\Цена")


Все, в итоге получили несколько упрощенный но достаточно рабочий вариант, где тип работ фиксирован по цене, есть справочник,
и есть работающее поле "Итого".
Единственное что может быть необычного - что мы вместо создания сложного справочника создали свой простой тип документа,
и папка-справочник "живет" не в ветке справочников, но для системы и пользователя разницы практически нет.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 15 ноя 2017, 14:14 
Не в сети
Пользователь

Зарегистрирован: 22 окт 2017, 20:52
Сообщений: 21
Понял, спасибо, так всё работает без глюков.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 2 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB