Формат строки поля в отчёте

Добрый день! Помогите разобратся в одном отчёте. Писали его разработчики до меня, я пока что вникаю в суть. До поры до времени работало, а в один прекрасный день стала появлятся ошибка.
Суть в том, что в одном поле есть такая строка:

[ds_CustomerAddress."AddressTypeName"]: [IIF(Length()>0,[ds_CustomerAddress."ZIP"], >, >)][IIF(Length()>0,[ds_CustomerAddress."TerritoryName"], >, >)][IIF(Length()>0,[ds_CustomerAddress."StateName"], >, >)][IIF(Length()>0,[ds_CustomerAddress."CityName"], >, >)][ds_CustomerAddress."Address"]

Я понимаю смысл того, что строка должна выдавать, но не понимаю некоторых особенностей. Объясните, что обозначает пустое место после запятой в первом iif вот здесь:
[ds_CustomerAddress."ZIP"], >

и почему в етом же iif в разделе false написано просто " >" - ето пустая строка?

И почему в данном отчёте выдаётся ошибка

Unknown variable of datafield:
Unknown variable of datafield: [ds_CustomerAddress."CityName"]
Unknown variable of datafield: [ds_CustomerAddress."TerritoryName"]
, хотя ети поля имеются в подгружаемых данных. Более того, сам отчёт формируется правильно, все значения отображаются. Откуда тогда ошибке взятся?

Нравится

2 комментария

Добрый день, Дмитрий.

Оператор "< >" в блоке false функции IIF означает пустой DataField, т.е. в отчет подставится пустое место.
По поводу пустого места после запятой, до конца не уверен, однако могу предположить, что у Вас в одном поле выводится совокупный адрес (индекс, страна, город, и пр.) соответственно такой конструкцией они выводятся через запятую с пробелом.
По поводу ошибки, к сожалению ничего конкретного сказать не могу. Возможно где-то в коде нужно заменить конструкцию [ds_CustomerAddress."TerritoryName"] на

<ds_CustomerAddress."TerritoryName">

.

Оказалось всё просто, хотя пришлось повозится. Вместо

<[ds_CustomerAddress."TerritoryName"], >

надо было написать

<ds_CustomerAddress."TerritoryName">+", "

А вместо

< >
" "

Уж не говоря о том, что в скрипте были ссылки на несуществующие выборки.

А работало до поры до времени наверняка из-за кеширования. Возможно, что у клиентов когда-то закешировался правильный вариант отчёта, на етом всё и держалось. Хотя, ето просто предположение. Спасибо за подсказку ;)

Показать все комментарии