crystal-reports-xi - 某些字段为空时,公式将不显示

  显示原文与译文双语对照的内容
0 0

我的第一个问题类似。 我想在一个包含如下字段的文本框中显示我的地址

{Company}
{AddLine1}
{AddLine2}
{ZIP}{State}{City} 
{Country}

有关( 希望你们中的一些)的行是 {ZIP} {City} {State}. 我想生成的是一致的寻址格式,因这里即使 ZIP 。城市或者状态字段在数据库中留空。 行仍应与其他行对齐,而不缩进。 我也希望在 zip 。州。城市之间插入逗号,并将它们保留在不在哪里。 为此我写了一个公式。 以下:

If isnull({BILL_TO.ZIP}) or trim({BILL_TO.ZIP})="" Then"" else {BILL_TO.ZIP}
+
(If isnull({BILL_TO.State}) or trim({BILL_TO.State})="" Then""
 else(If not isnull({BILL_TO.ZIP}) and length(trim({BILL_TO.ZIP})) <> 0 Then"," else"") + {BILL_TO.State})
+
(If isnull({BILL_TO.CITY}) or length(trim({BILL_TO.CITY})) = 0 Then""
 else(
 If (not isnull({BILL_TO.State}) and length(trim({BILL_TO.State})) <> 0) 
 or
 (not isnull({BILL_TO.Zip}) and length(trim({BILL_TO.Zip})) <> 0)
 Then"," else"")+ {BILL_TO.CITY}))

问题是,当只有一个城市( 未输入状态或者邮政编码) 时,公式本身将不会显示。 但是当其他的显示时它就会显示出来。

谁能看到这段代码中的Bug? 它杀死我

谢谢 帮忙.

期待你们的消息 !

时间:原作者:2个回答

0 0

为每个数据库字段创建一个公式字段。 例如:

//{@CITY}
If Isnull({BILL_TO.CITY}) Then
""
Else 
 Trim({BILL_TO.CITY})
//{@STATE}
If Isnull({BILL_TO.STATE}) Then
 Space(2)
Else
 Trim({BILL_TO.STATE})
//{@ZIP}
If Isnull({BILL_TO.ZIP}) Then
 Space(5)//adjust to meet your needs
Else
 Trim({BILL_TO.ZIP})

将每个公式字段嵌入到文本对象中。

设置文本对象及其字段的格式以满足你的需要。

** 编辑 **

我你有数据质量问题,在状态和邮政公式( 因为它们是固定长度的) 中解决它们。 我将添加逗号并使文本对象间距。

原作者:
0 0

这个公式中有很多 if-then-elses,但是如果没有显示任何可以能意味着你在不处理空条件的情况。 更简单的事情可能是你最好的选择:

local stringvar output;
if not(isnull({Customer.Postal Code})) then output:=trim({Customer.Postal Code}) + ', ';
if not(isnull({Customer.Region})) then output:=output + trim({Customer.Region}) + ', ';
if not(isnull({Customer.City})) then output:=output + trim({Customer.City}) + ', ';
left(output,length(output)-2)
原作者:
...