Скрытие/вставка частей формулы в составном поле

Статус
В этой теме нельзя размещать новые ответы.

Александр

Продвинутый
Добрый день. Возник вопрос по составному полю Адреса - составляется из значений переключателя и из строчных полей (129). Но некоторые поля не есть обязательными к заполнению, и поэтому они пустые. Функция выглядит так - [Індекс], [Тип нас.пункту][НПНазва], [Тип вулиці][ВНазва], [Тип будинку][БНомер], [Тип корпусу][КНомер], [Тип квартири][КВНомер] (130). Вопрос. Как убрать лишние запятые, в данном случае в конце (131), но могут быть и в средине (132)? Или может неправильно прописана сама функция?
 

Вложения

  • 129.png
    129.png
    32.6 KB · Просмотры: 43
  • 130.png
    130.png
    51 KB · Просмотры: 45
  • 131.png
    131.png
    11.4 KB · Просмотры: 41
  • 132.png
    132.png
    18.2 KB · Просмотры: 37

Vladimir

Администратор
Команда форума
Добрый день, Александр.
Надо использовать функцию String с условием по полю.
Предполагается, что населённый пункт указывается всегда, тогда запятая после индекса убирается в зависимости от наличия индекса:
[String(Індекс=?:, )]
Такая запись означает, что содержимое поля "Індекс" сравнивается с пустым значением и если условие выполняется, то ничего не выводится (строка между вопросом и двоеточием). Если индекс не пустой, то выводится второй аргумент - запятая с пробелом (после двоеточия до закрывающей круглой скобки).
Для номера корпуса запятая убирается перед ним:
[String(Тип корпусу=?:, )] или [String(КНомер=?:, )]
или, если он указывается через чёрточку/слэш:
[String(Тип корпусу=?:-)] или [String(КНомер=?:/)]
Для квартиры:
[String(Тип квартири=?:, )] или [String(КВНомер=?:, )]

Пример составного поля с условиями вывода дополнительных символов:
[Індекс][String(Індекс=?:, )][Тип нас.пункту][НПНазва], [Тип вулиці][ВНазва], [Тип будинку][БНомер][String(КНомер=?:, )][Тип корпусу][КНомер][String(Тип квартири=?:, )][Тип квартири][КВНомер]

Кстати, таким образом можно не указывать тип корпуса/квартиры, а выводит дополнительно нужный префикс, если номер квартиры не пустой:
- если номер строка: [String(КВНомер=?:кв. )];
- если номер число: [String(КВНомер=0?:кв. )].
 

Александр

Продвинутый
Спасибо, понятно теперь. А в случае - если номер строка: [String(КВНомер=?:кв. )] - не получится, в переключателе три значения "-" (нет квартиры), "кв." (квартира), "к." (комната). Так же и по корпусу, он может быть, а может и не быть
 
Последнее редактирование модератором:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу