Morning Guys,
我在Crystal子报表中有以下公式,并且它不会返回任何值。我知道十几条记录中存在数据,我使用了检查功能,没有给出语法错误,我已经按照以下问题给出了示例' Crystal Report: How to evaluate multiple IF statements in one formula?& #39;
公式如下;
(if {?Pm-Enquiry.EnquiryId} <1000 and
{DocumentType.DocumentSubtype} = "DocumentSubtype1" then
left ({DocumentSubtype1Table.Field1},3) else
left ({DocumentSubtype1Table.Field1},4)
);
(if {?Pm-Enquiry.EnquiryId} <1000 and
{DocumentType.DocumentSubtype} = "DocumentSubtype2" then
left ({DocumentSubtype2Table.Field1},3) else
left ({DocumentSubtype2Table.Field1},4)
);
(if {?Pm-Enquiry.EnquiryId} <1000 and
{DocumentType.DocumentSubtype} = "DocumentSubtype1" then
left ({DocumentSubtype3Table.Field1},3) else
left ({DocumentSubtype3Table.Field1},4)
);
公式应确定ID是否小于或大于三位数,并从DocumentSubtypeTable中检索前3/4位数。不幸的是,该ID已与该字段中的日期合并,使得该公式成为必要。
你们给予的任何帮助都会非常感激。
答案 0 :(得分:0)
也许因为你没有返回一个值。 尝试以下方法(定义一个变量,在其中填入结果,然后返回它。):
StringVar StrValue;
(if {?Pm-Enquiry.EnquiryId} <1000 and {DocumentType.DocumentSubtype} = "DocumentSubtype1" then
StrValue := left ({DocumentSubtype1Table.Field1},3) else
StrValue := left ({DocumentSubtype1Table.Field1},4)
);
(if {?Pm-Enquiry.EnquiryId} <1000 and {DocumentType.DocumentSubtype} = "DocumentSubtype2" then
StrValue := left ({DocumentSubtype2Table.Field1},3) else
StrValue := left ({DocumentSubtype2Table.Field1},4)
);
(if {?Pm-Enquiry.EnquiryId} <1000 and {DocumentType.DocumentSubtype} = "DocumentSubtype1" then
StrValue := left ({DocumentSubtype3Table.Field1},3) else
StrValue := left ({DocumentSubtype3Table.Field1},4)
);
StrValue;