Formula won't display when certain fields are null

若如初见. 提交于 2019-12-13 06:40:05

问题


Similar to my first question. I want to show my address in a text box containing the fields as follows

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

The line that concerns me (and hopefully some of you guys) is {ZIP} {City} {State}. What I want to produce is a consistent addressing format, so that there will be no blank space or indentation even if a ZIP, City or State field has been left blank in the DB. This line should still line up with the rest of the rows and not be indented. I also wish to insert commas between zip, state, city where they are relevant and leave them out where not. For this I have written a formula. Below:

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}))

The problem is that when there is only a city (no state or zip entered) the formula itself will not display. It does however display when the others are present.

Can anyone see a bug in this code??? Its killing me

Thanks for the help.

Look forward to hearing from you guys!


回答1:


Create a formula field for each database field. For example:

// {@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})

Embed each formula field in a text object.

Format text object and its fields to meet your need.

** edit **

I you have data-quality issues, address them in the STATE and ZIP formulas (because they will be a constant length). I would add the commas and spacing the text object.




回答2:


There are a whole lot of if-then-elses going on in that formula so it's hard to tell, but if it's not displaying anything that probably means that you're using a field somewhere without handling its null condition first. Something simpler might be your best bet:

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)


来源:https://stackoverflow.com/questions/12095314/formula-wont-display-when-certain-fields-are-null

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!