Формула Crystal Reports — замена значения Null текстом

Итак, я гораздо лучше знаком с Transact-SQL, чем с формулами Crystal. Что я хотел бы сделать, так это преобразовать что-то вроде следующего предложения SQL where, которое будет использоваться в Crystal для условного подавления раздела: . . . AND (osAddressUse.Description ‹> 'Адрес хранителя' ИЛИ ​​( ISNULL(bcDocumentDetail.PrimaryStreet,'') = ISNULL(osaddress.PrimaryStreet,'') AND ISNULL(bcDocumentDetail.SecondaryStreet,'') = ISNULL(bcDocumentDetail.SecondaryStreet,' ') ) ). . .

По сути, этот раздел должен отображаться только в том случае, если osAddressUse.Description = «Адрес консерватора» ИЛИ как основная улица, так и вторичная улица в обеих таблицах bcDocumentDetail и osAddress не идентичны.

На данный момент я придумал следующее, но это не работает в 100% случаев:

{osAddressUse.Description} ‹> "Адрес хранителя" ИЛИ ( {bcDocumentDetail.PrimaryStreet} = {osAddress.PrimaryStreet} AND {bcDocumentDetail.SecondaryStreet} = {osAddress.SecondaryStreet})

В некоторых ситуациях данные в этих полях могут быть NULL или "". Если это значение NULL, я хочу, чтобы оно было преобразовано в "", таким образом, они технически совпадают, и раздел будет скрыт.


person Chris Miller    schedule 10.05.2018    source источник


Ответы (1)


Неважно. Мне удалось выяснить это:

TRIM ({osAddressUse.Description}) ‹> "Адрес консерватора"
ИЛИ
(
(IF ISNULL({osAddress.PrimaryStreet}) THEN "" ELSE {osAddress.PrimaryStreet}) = (IF ISNULL({bcDocumentDetail.PrimaryStreet}) THEN "" ELSE {osAddress.PrimaryStreet})
AND
(IF ISNULL({osAddress.SecondaryStreet}) THEN "" ELSE {osAddress.SecondaryStreet}) = (IF ISNULL({bcDocumentDetail.SecondaryStreet}) THEN "" ELSE {osAddress.SecondaryStreet})
)

person Chris Miller    schedule 11.05.2018