Отчет о кристаллах условных формул - PullRequest
0 голосов
/ 28 октября 2011

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

может кто-нибудь объяснить возможный обходной путь.может быть ссылка на условную таблицу, если это возможно?Спасибо ND

if Len("" + {invhdr.ACCT}) > 0 then if {invhdr.ACCT} = 'CASH' then {CashCust.CUSTOM1}<br> else if {invhdr.ACCT} <> 'CASH' then {Lookup.VATREGNO} else "";

, так что если invhdr.ACCT = 'test', то, похоже, по-прежнему нужна ссылка на {CashCust.CUSTOM1}, все мои таблицы связаны как внутреннее соединение, а неисполнение

1 Ответ

1 голос
/ 28 октября 2011

Я предлагаю изменить внутренние объединения на левые внешние объединения (из таблицы invhdr в таблицы CashCust и Lookup, чтобы invhdr находился внутри объединений).Это не связано с формулой - если вы внутренне соединили все три таблицы, то для всех строк, которые должны быть возвращены, должны быть соответствующие записи во всех трех таблицах;это определение внутреннего соединения.

После этого вы можете столкнуться с проблемами с формулой, если invhdr.ACCT имеет значение null - причудой более старых версий Crystal было то, что если какая-либо часть формулы была оценена как нулевая,вся формула оценивается как ноль.Это поведение могло быть исправлено в более поздних версиях Crystal, но если нет, то "" + {invhdr.ACCT} может оцениваться как нулевое - попробуйте проверить значение с помощью функции IsNull.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...