Как написать формулу отчетов Crystal, сравнивая строку с числовым полем - PullRequest
0 голосов
/ 11 апреля 2019

У меня есть три поля.Два поля я хочу сравнить друг с другом, чтобы убедиться, что они совпадают друг с другом.Если они не равны, я хочу, чтобы другое поле в отчете отображало «ОШИБКА» вместо серийного номера, который должен отображаться, если первые два поля равны друг другу.

Я хочу сравнить эти два поля

{V_LMINVTRY_MANUFACTURED.WORKORDER_ID}) & {WORKORDER.FG_LOTNO}

И если они равны друг другу, я хочу {V_LMINVTRUR_MANF} чтобы отобразить другое, если они не равны, я хочу, чтобы оно отображало «ОШИБКА» в поле {V_LMINVTRY_MANUFACTURED.CSERIAL}.

Crystal Reports 2013

Итак, у меня было что-то вроде этогомоя формула, но хотя оба поля являются строковыми полями, он запрашивает число через ошибку для поля {WORKORDER.FG_LOTNO}, когда я проверяю формулу на правильность.

if ({V_LMINVTRY_MANUFACTURED.WORKORDER_ID}) = {WORKORDER.FG_LOTNO} then {V_LMINVTRY_MANUFACTURED.CSERIAL} else 'ERROR'

Хотите отобразить ошибку в отчете, если поля не совпадают.

Ответы [ 2 ]

0 голосов
/ 16 апреля 2019

Проверьте, действительно ли поле WorkOrder_ID является числовым.Если это так, вы можете либо преобразовать FG_LotNo в числовое значение, либо изменить WorkOrder_ID на текст, используя функции преобразования типов.

0 голосов
/ 12 апреля 2019

Изменение

if({V_LMINVTRY_MANUFACTURED.WORKORDER_ID}) = {WORKORDER.FG_LOTNO} then {V_LMINVTRY_MANUFACTURED.CSERIAL} else 'ERROR'

до

if({V_LMINVTRY_MANUFACTURED.WORKORDER_ID} = {WORKORDER.FG_LOTNO}) then {V_LMINVTRY_MANUFACTURED.CSERIAL} else 'ERROR'
...