To create a total solution for Address Line Compression in Labels, create variables like the following:
vCityStateZip = (City + ','&State&ZipCode)
vLine1 = (CFirstName&CLastName)
vLine2 = (IFEXISTS(Company,Company,Address))
vLine3 = (IFEXISTS(Company,Address,(IFNULL(Company, +
(IFEXISTS(Address2,Address2,.vCityStateZip)),.vCityStateZip))))
vLine4 = (IFEXISTS(Company,(IFEXISTS(Address2,Address2,.vCityStateZip)), +
(IFNULL(Company,(IFNULL(Address2,' ',.vCityStateZip)),' '))))
vLine5 = (IFEXISTS(Company,(IFEXISTS(Address2,.vCityStateZip,' ')), +
(IFNULL(Company,' ',' '))))
This will create a FULLY dynamic label that will adjust for missing lines as necessary when laid out like the following:
vLine1
vLine2
vLine3
vLine4
vLine5
You can build on this to virtually any level.