Поле формулы отображает пробелы вместо желаемого результата

Я застрял на проблеме с полем формулы в Crystal Reports, и я продолжаю ходить по кругу. Я постараюсь объяснить это.

Отчет, который я создаю, будет экспортирован как файл данных. Он использует 3 таблицы с work_table в качестве основной таблицы. work_table соединяется с представлением order_item_with_aux с помощью двух полей, orderhdr_id и order_item_seq; это внутреннее соединение. Я не думаю, что это имеет большое значение для моей проблемы, но work_table также присоединен к таблице customer_address на customer_id и customer_address_seq.

В свой вывод я включил несколько полей из всех трех таблиц. Я застрял в создании поля формулы для заполнения поля @Split. Вот что я пишу в своей формуле:

if {order_item_with_aux.zzaux_no_renewal_notices} = "Y" then "B"
else {work_table.split_value}

Это приводит к тому, что поле @Split заполняется «B» для записей в work_table, чья соответствующая запись в представлении order_item_with_aux имеет zzaux_no_renewal_notices, равное «Y». Значение @Split для всех остальных отображаемых записей пусто. Я пробовал несколько вариантов приведенной выше формулы, но все безрезультатно. Я также пытался установить переменную и обработать ее таким образом, но опять же, безуспешно.

У кого-нибудь есть идеи? Пожалуйста, дайте мне знать, если есть дополнительная информация, которую я могу предоставить.


person Spencer R    schedule 27.08.2011    source источник


Ответы (1)


Сначала вам нужно проверить нулевые значения:

if isnull({order_item_with_aux.zzaux_no_renewal_notices}) then
  "missing value"
else if {order_item_with_aux.zzaux_no_renewal_notices} = "Y" then 
  "B"
else 
  {work_table.split_value}
person craig    schedule 29.08.2011
comment
о горе! Я думал о нулевых значениях ранее сегодня, но я не ставил это в качестве первого теста. Я только что попробовал ваше решение, и оно сработало отлично. Большое спасибо! - person Spencer R; 30.08.2011