cro-logo      
Добро пожаловать, Гость. Пожалуйста, выберите Вход

 
 
  ГлавнаяСправкаПоискВход  
 
Переключение на Главную Страницу Страниц: 1
Послать Тему Печать
Поиск по потомкам (Прочитано 1 470 раз)
Максим
Пользователь
**
Вне Форума



Сообщений: 23
Поиск по потомкам
27.09.2021 :: 08:55:40
 
При создании словаря возможно организовать его в иерархическую структуру с предками и потомками.
А возможно ли использовать записи "предки" , чтобы отобрать всех потомков?
Пример
Словарь "страны мира"  есть запись "СНГ"  потомками которой являются "Россия" "Беларусь" и так далее. Можно ли создать запрос для отбора всех записей, с этими странами, используя именно понятие "СНГ"  из словаря?
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


Старинный пользователь
Кронос

Сообщений: 3 025
Санкт-Петербург
Re: Поиск по потомкам
Ответ #1 - 27.09.2021 :: 10:59:12
 
Без использования специальных методов не получится. Родовое понятие "СНГ" может и не иметь кода, его выбрать вообще не получится, да и в банке записи с таким кодом, вернее его отсутствием, появиться не может. Самые простые способы это использовать в сложном запросе режим "в интервале" или выбрать все иерархически подчиненные "СНГ" понятия.
Можно использовать форму ввода и программным способом отбирать все иерархически подчиненные "СНГ" понятия, сформировав затем и выполнив строчный запрос.
Наверх
 
 
IP записан
 
Максим
Пользователь
**
Вне Форума



Сообщений: 23
Re: Поиск по потомкам
Ответ #2 - 08.10.2021 :: 09:04:02
 
Использовать "в интервале"  хороший вариант, но мне не подходит: для этого придётся менять структуру словаря (делать много замен, чтобы выстроить коды понятий нужным образом),  да в словаре "потомки"  часто перемещаются между предками и частая смена кодов понятий в словаре не есть хорошо и может приводить к колизиям.

А возможен ли поиск по словарному полю, но не по коду, а по понятию?
Идея такова, что в понятие расширить типа "СНГ_Россия"
И искать по типу "СНГ_*"?

В голову пришёл третий вариант :
Использовать то что коды являются символьными.
Пересоздать словарь уже без иерархии, а коды понятий делать вида
0001СНГ
0002СНГ
0003ЕВР
Но тогда вопрос. Как искать по словарю коды с использованием масок "*" или "?"
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


Старинный пользователь
Кронос

Сообщений: 3 025
Санкт-Петербург
Re: Поиск по потомкам
Ответ #3 - 08.10.2021 :: 11:29:46
 
Варианты нехорошие.
Цитата:
Использовать "в интервале"  хороший вариант, но мне не подходит: для этого придётся менять структуру словаря (делать много замен, чтобы выстроить коды понятий нужным образом),  да в словаре "потомки"  часто перемещаются между предками и частая смена кодов понятий в словаре не есть хорошо и может приводить к колизиям.
Это разовая работа и не такая уж обременительная. Выгружаете весь словарь в список. Сортируете как удобно и расставляете коды. Всего стран не более 300. Это мелочи. Перемещать и перекодировать данные в словаре нежелательно. Например, была Британия в Евросоюзе, а потом Брекзит. В словаре она как была, так и должна остаться.
Цитата:
А возможен ли поиск по словарному полю, но не по коду, а по понятию?
Идея такова, что в понятие расширить типа "СНГ_Россия"
И искать по типу "СНГ_*"?
На этапе подготовки запроса понятия словаря заменяются на коды. В процессе показа записей коды меняются на понятия. Если кода нет, то и искаться не будет и предъявляться тоже.
Цитата:
Использовать то что коды являются символьными.
Пересоздать словарь уже без иерархии, а коды понятий делать вида
0001СНГ
0002СНГ
0003ЕВР
Но тогда вопрос. Как искать по словарю коды с использованием масок "*" или "?"

Возвращаемся к примеру с Британией. Плюс к этому в словарном поле невозможно осуществлять поиск с шаблонами.

Можно использовать следующие варианты:
Банк Пример
Сложный запрос - Лицо - Гражданство - Словарь - СНГ - (открываем иерархию) - V (Галочка, выбрать все) - Выполнить

В версии 7 появилась возможность реализовать то, что Вы хотите. Появился вид сравнения для словарных полей «Равно иерархически». Т.е. если Вы выбираете код СНГ, то будут искаться все иерархически подчиненные понятия. Единственное условие, родовому понятию СНГ необходимо присвоить код.
Наверх
 
 
IP записан
 
Максим
Пользователь
**
Вне Форума



Сообщений: 23
Re: Поиск по потомкам
Ответ #4 - 13.10.2021 :: 09:25:20
 
Цитата:
Это разовая работа и не такая уж обременительная. Выгружаете весь словарь в список. Сортируете как удобно и расставляете коды. Всего стран не более 300. Это мелочи. Перемещать и перекодировать данные в словаре нежелательно. Например, была Британия в Евросоюзе, а потом Брекзит. В словаре она как была, так и должна остаться.

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

Мой словарь это "сотрудник, принесший проект" и иерархия там по отделам. Помимо этого есть поля "сотрудник ведущий проект " и "отдел, ведущий проект" и они само собой могут отличаться от принесшего проект и ещё сотрудник, ведущий проект не обязательно относится к отделу, за которым закреплен проект. (Да, вот такой у нас бардак )


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

Есть, конечно ещё вариант вместо словарного поля использовать связанную базу и там отдельными полями прописать сотрудников и их подразделения, настроить идентификацию,  и проч, но очень не хотелось бы перегружать структуру банка.
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


Старинный пользователь
Кронос

Сообщений: 3 025
Санкт-Петербург
Re: Поиск по потомкам
Ответ #5 - 13.10.2021 :: 09:56:41
 
Немного странная организация структуры. А если ведущий проект перестал его вести? Сотрудники прыгают, а проекты тоже? А историю ведения проектов уже не вычислить?
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


Старинный пользователь
Кронос

Сообщений: 3 025
Санкт-Петербург
Re: Поиск по потомкам
Ответ #6 - 13.10.2021 :: 09:59:56
 
Пока писал, исходное сообщение уже изменилось  Улыбка
Наверх
 
 
IP записан
 
Максим
Пользователь
**
Вне Форума



Сообщений: 23
Re: Поиск по потомкам
Ответ #7 - 13.10.2021 :: 10:07:18
 
Цитата:
Немного странная организация структуры. А если ведущий проект перестал его вести? Сотрудники прыгают, а проекты тоже? А историю ведения проектов уже не вычислить?


Всё ещё хуже) всё это безобразие находится в связанной базе "ведение проекта " где каждая новая запись и создаётся смене отдела, сотрудника или стадии проекта
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


Старинный пользователь
Кронос

Сообщений: 3 025
Санкт-Петербург
Re: Поиск по потомкам
Ответ #8 - 13.10.2021 :: 10:07:19
 
На организацию структуры посмотрите тут
Добавляете туда базы проект и отношение к проекту (даты начала окончания, категория (принес, ведет), Лицо/Подразделение). Это будет более верное решение.
Наверх
 
 
IP записан
 
Максим
Пользователь
**
Вне Форума



Сообщений: 23
Re: Поиск по потомкам
Ответ #9 - 13.10.2021 :: 10:42:38
 
Спасибо за ссылку, в целом натолкнуло на мысли о глобальных изменениях в структуре банка.  (Банк достался "по наследству" и в структуру лезть было неохота, но видимо, настало время)
Наверх
 
 
IP записан
 
Переключение на Главную Страницу Страниц: 1
Послать Тему Печать