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

 
 
  ГлавнаяСправкаПоискВходРегистрация  
 
Переключение на Главную Страницу Страниц: 1
Послать Тему Печать
"Декодирование связей" (Прочитано 984 раз)
Lev
Профи
****
Вне Форума



Сообщений: 141
Санкт-Петербург
"Декодирование связей"
25.12.2019 :: 16:15:38
 
Может уже было, но не нашел не на форуме, не справочнике по формулам.

Задача следующая есть таблица Лица (ЛЦ) содержащая поля

ЛЦ4 ФИО (текстовое поле)
ЛЦ7 Связан с   (Сложное связное множественное поле)
         Лицами
         Предприятиями

Создаю дополнительные текстовые поля
ЛЦ107 Связан с  Лицами
ЛЦ108 Связан с Предприятиями.

Задача записать в эти поля ФИО из связанных записей в данной таблице Лица из поля ЛЦ1 и Названия предприятий из другой таблицы Предприятия (РГ) из поля РГ1
Соответственно формула:
ЛЦ107:=ЛЦ7_ЛЦ;
ЛЦ108:=ЛЦ7_РГ;
тащит, что естественно, только системные номера связанных записей.

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


Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


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

Сообщений: 2 746
Санкт-Петербург
Re: "Декодирование связей"
Ответ #1 - 25.12.2019 :: 17:37:32
 
Код:
ЛЦ107:=CAT(ЛЦ7_ЛЦ,ЛЦ4<<";") 


Нужно только предусмотреть обработку пустых записей и удаление незначащих ";", а также пересчет поля при изменении связанных, как "изнутри" записи, так и для "внешних" записей.
Наверх
 
 
IP записан
 
Пытливый
Профи
****
Вне Форума



Сообщений: 381
Мурманск
Re: "Декодирование связей"
Ответ #2 - 25.12.2019 :: 17:54:53
 
А разве CAT будет обрабатывать сваязанную запись при таком подходе? Он вытянет значения 4 поля текущей записи, а не связанной, тут ViewRecord() или Loop() нужен.
Наверх
 
 
IP записан
 
Энкан
Профи
****
Вне Форума



Сообщений: 357
Владивосток
Re: "Декодирование связей"
Ответ #3 - 25.12.2019 :: 18:07:04
 
а если записей больше 1 то лучше еще и цикл применить...
Наверх
 
 
IP записан
 
Lev
Профи
****
Вне Форума



Сообщений: 141
Санкт-Петербург
Re: "Декодирование связей"
Ответ #4 - 25.12.2019 :: 18:34:08
 
Zuluss писал(а) 25.12.2019 :: 17:37:32:
Код:
ЛЦ107:=CAT(ЛЦ7_ЛЦ,ЛЦ4<<";") 


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


Спасибо! Отлично работает. Цикл не нужен. Вытаскивает все. Обработка пустых записей то же не нужна, они и остаются пустыми.
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


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

Сообщений: 2 746
Санкт-Петербург
Re: "Декодирование связей"
Ответ #5 - 25.12.2019 :: 19:49:07
 
10 лет назад было интересное сообщение.
Наверх
 
 
IP записан
 
Lev
Профи
****
Вне Форума



Сообщений: 141
Санкт-Петербург
Re: "Декодирование связей"
Ответ #6 - 25.12.2019 :: 20:20:34
 
Перерыв был большой в работе, была абсолютно другая сфера, много подзабылось
Наверх
 
 
IP записан
 
Пытливый
Профи
****
Вне Форума



Сообщений: 381
Мурманск
Re: "Декодирование связей"
Ответ #7 - 25.12.2019 :: 20:33:31
 
Да, действительно Cat() может так работать, это я его с CatVal() перепутал, но как-то привык я использовать Loop и ViewRecord для таких задач.
Наверх
 
 
IP записан
 
Переключение на Главную Страницу Страниц: 1
Послать Тему Печать