Solved

Adobe Report Writer CF 8 - Mailing Label Woes

Posted on 2008-10-17
1
454 Views
Last Modified: 2013-12-24
I am tryibng to create some maining labels from a select set in ColdFusion. I have edited my Avery_5160.cfr so that it contains 4 lines:
query.name
query.names2
query.address
query.city & ", " & query.state & " " & query.zip

I have no problem printing a label with for lines except when there is no value for query.names2 for a record. It prints a blank space. What I am trying to do is, if query.names2 is empty then put a black in the first line and put query.name into the second line.
Here is my CF code to do this:
...................
<cfquery name="QryData" datasource="#session.controller.datasource#">
 SELECT *
 FROM #rd_info.TABLE_NAME#
 WHERE results_session_id = #get_res_sess_id.results_session_id#
 </cfquery>
 
<cfset QryLabels = QueryNew("name,names2,street,city,state,zip")>
 
<cfloop query="QryData">
 	<cfset tmp = QueryAddRow(QryLabels)>
 
 <cfif len(trim(attributes.attribute12))> 
    <cfset tmp = QuerySetCell(QryLabels, "name", QryData[#attributes.attribute11#][CurrentRow])>
    <cfset tmp = QuerySetCell(QryLabels, "names2", QryData[#attributes.attribute12#][CurrentRow])>	
<cfelseif len(trim(attributes.attribute11))>
	    	<cfset tmp = QuerySetCell(QryLabels, "names2", QryData[#attributes.attribute11#][CurrentRow])>
 <cfelse>
  	<cfoutput><script>alert('No name fields selected');self.history.back();</script></cfoutput>
  	<cfabort>
 </cfif>
 
 <cfif len(trim(attributes.attribute21)) and len(trim(attributes.attribute22)) and len(trim(attributes.attribute23)) >
  <cfset tmp = QuerySetCell(QryLabels, "street", QryData[#attributes.attribute21#][CurrentRow] & " " & 
 
QryData[#attributes.attribute22#][CurrentRow] & " " & QryData[#attributes.attribute23#][CurrentRow])>
 <cfelseif len(trim(attributes.attribute21)) and len(trim(attributes.attribute22)) >
  <cfset tmp = QuerySetCell(QryLabels, "street", QryData[#attributes.attribute21#][CurrentRow] & " " & 
 
QryData[#attributes.attribute22#][CurrentRow])>
 <cfelseif len(trim(attributes.attribute21)) >
  <cfset tmp = QuerySetCell(QryLabels, "street", QryData[#attributes.attribute21#][CurrentRow])>
 <cfelse>
  <cfoutput><script>alert('No address fields selected');self.history.back();</script></cfoutput>
  <cfabort>
 </cfif>
 
 <cfif len(trim(attributes.attribute31)) and len(trim(attributes.attribute32)) and len(trim(attributes.attribute33)) >
  <cfset tmp = QuerySetCell(QryLabels, "city", QryData[#attributes.attribute31#][CurrentRow])>
  <cfset tmp = QuerySetCell(QryLabels, "state", QryData[#attributes.attribute32#][CurrentRow])>
  <cfset tmp = QuerySetCell(QryLabels, "zip", QryData[#attributes.attribute33#][CurrentRow])>
 <cfelseif len(trim(attributes.attribute31)) and len(trim(attributes.attribute32)) >
  <cfset tmp = QuerySetCell(QryLabels, "city", QryData[#attributes.attribute31#][CurrentRow])>
  <cfset tmp = QuerySetCell(QryLabels, "state", QryData[#attributes.attribute32#][CurrentRow])>
 <cfelseif len(trim(attributes.attribute31)) and len(trim(attributes.attribute33)) >
  <cfset tmp = QuerySetCell(QryLabels, "city", QryData[#attributes.attribute31#][CurrentRow])>
  <cfset tmp = QuerySetCell(QryLabels, "zip", QryData[#attributes.attribute33#][CurrentRow])>
  <cfif Len(Trim(attributes.default_state_value))>
  <cfset tmp = QuerySetCell(QryLabels, "state", attributes.default_state_value)>
  </cfif>
 <cfelseif len(trim(attributes.attribute31)) >
  <cfset tmp = QuerySetCell(QryLabels, "city", QryData[#attributes.attribute31#][CurrentRow])>
 <cfelse>
  <cfoutput><script>alert('No city, state, name fields selected');self.history.back();</script></cfoutput>
  <cfabort>
 </cfif>
</cfloop>
................

Open in new window

0
Comment
Question by:apwbe
1 Comment
 
LVL 10

Accepted Solution

by:
Mause earned 350 total points
ID: 22954667
I think you should change the cfif statement because the value of attributes.attribute12 is not changing but the query values are:

<cfif len(trim( QryData[#attributes.attribute12#][CurrentRow]))>
   <cfset tmp = QuerySetCell(QryLabels, "name", QryData[#attributes.attribute11#][CurrentRow])>
   <cfset tmp = QuerySetCell(QryLabels, "names2", QryData[#attributes.attribute12#][CurrentRow])>  
<cfelseif len(trim( QryData[#attributes.attribute11#][CurrentRow]))>
                <cfset tmp = QuerySetCell(QryLabels, "names2", QryData[#attributes.attribute11#][CurrentRow])>
 <cfelse>
        <cfoutput><script>alert('No name fields selected');self.history.back();</script></cfoutput>
        <cfabort>
 </cfif>

0

Featured Post

Easy, flexible multimedia distribution & control

Coming soon!  Ideal for large-scale A/V applications, ATEN's VM3200 Modular Matrix Switch is an all-in-one solution that simplifies video wall integration. Easily customize display layouts to see what you want, how you want it in 4k.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

CFGRID Custom Functionality Series -  Part 1 Hi Guys, I was once asked how it is possible to to add a hyperlink in the cfgrid and open the window to show the data. Now this is quite simple, I have to use the EXT JS library for this and I achiev…
Recently while working on a project I got a very annoying cfdocument has no body error message. I had never seen this error before. So I checked the code. The code was pretty simple; it was Just showing me the cfdocumnt tag and inside that tag a …
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…
In an interesting question (https://www.experts-exchange.com/questions/29008360/) here at Experts Exchange, a member asked how to split a single image into multiple images. The primary usage for this is to place many photographs on a flatbed scanner…

713 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question