#crystal-reports #crystal-reports-2008
#кристалл-отчеты #crystal-отчеты-2008
Вопрос:
У меня проблема с одним из моих отчетов Crystal, и это условная формула. Формула приведена ниже. У меня есть две таблицы, содержащие разную информацию о клиентах, которые ссылаются на мою таблицу invhdr. когда код счета — cash, мне нужно получить поле из одной таблицы и наоборот.. Проблема в том, что crystal, похоже, игнорирует условную формулу, как написано ниже, и, похоже, требует, чтобы ссылка на поле существовала, даже если формула должна предотвращать требование извлечения поля..
кто-нибудь может объяснить возможный обходной путь. может быть, условная ссылка на таблицу, если это возможно? Спасибо и
if Len("" {invhdr.ACCT}) > 0 then
if {invhdr.ACCT} = 'CASH' then {CashCust.CUSTOM1}
else if {invhdr.ACCT} <> 'CASH' then {Lookup.VATREGNO}
else "";
так сказать, если invhdr.ACCT =’test’ похоже, все еще нужна ссылка на {CashCust .CUSTOM1} все мои таблицы связаны как внутреннее соединение, а не принудительно
Ответ №1:
Я предлагаю изменить внутренние соединения на левые внешние соединения (из таблицы invhdr в таблицы CashCust и Lookup, чтобы invhdr находился внутри соединений). Это не имеет отношения к формуле — если у вас есть внутреннее соединение всех трех таблиц, то соответствующие записи должны существовать во всех трех таблицах, чтобы возвращались строки; это определение внутреннего соединения.
Затем вы можете столкнуться с проблемами с формулой, если invhdr .Значение ACCT равно нулю — особенностью более старых версий Crystal было то, что если какая-либо часть формулы оценивается как null, то вся формула оценивается как null. Это поведение, возможно, было изменено в более поздних версиях Crystal, но если нет, то "" {invhdr.ACCT}
может оцениваться как null — попробуйте вместо этого проверить значение с IsNull
помощью функции.
Комментарии:
1. хорошая отметка,, я дам ему удар и посмотрю, что я получу, спасибо за предложение..
2. хорошие новости .. следуя вашему предложению, левое внешнее соединение все еще бомбило отчет, но изменение обеих ссылок на полное внешнее соединение взломало его.. большое спасибо, что указали мне правильный путь..