<div>Later enhancements ...</div>
<div>&nbsp;</div>
<div><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; update $dto.tableName$<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set $dto.fields : { f |<br>$if(!f.idColumn)$$if(!f.versionColumn)$$if(!f.extraColumn)$<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $f.dbColName$ = #$<a href="http://f.name">f.name</a>;format=&quot;ilc&quot;$:$f.dbColType$#$if(!f.penultimateField)$,$endif$<br>
$endif$$endif$$endif$}$<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; where current of c1; c1;</font></div>
<div><font size="2"></font>&nbsp;</div>
<div><font size="2"></font>&nbsp;</div>
<div><font size="2">But I still have the blank line problem.</font></div>
<div><font size="2"></font>&nbsp;</div>
<div><font size="2">&nbsp;</font></div><br><br>
<div><span class="gmail_quote">On 7/1/08, <b class="gmail_sendername">David Beckedorff</b> &lt;<a href="mailto:david.beckedorff@gmail.com">david.beckedorff@gmail.com</a>&gt; wrote:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<div>OK, Johannes, cool suggestion!</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>So I added boolean fields &#39;reqForUpdate&#39; and &#39;lastFieldForUpdate&quot; to my DtoField class &amp; now the template looks like this:</div>
<div>&nbsp;</div>
<div><font face="courier new,monospace"><span class="q">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; update $dto.tableName$<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set $dto.fields : { f |<br></span>$if(f.reqForUpdate)$<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $f.dbColName$ = #$<a onclick="return top.js.OpenExtLink(window,event,this)" href="http://f.name/" target="_blank">f.name</a>;format=&quot;ilc&quot;$:$f.dbColType$#$if(!f.lastFieldForUpdate)$,$endif$<br>
$endif$}$<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; where current of c1;</font></div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>which generates:</div>
<div>&nbsp;</div>
<div><font size="2"><span class="q">
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; update DP_JRNL_ENTRY<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set </p></span>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OWNR_PERS_NTL_ID = #ownerId:VARCHAR#,<span class="q"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OWNR_DP_TYPE_CD = #ownerDpType:VARCHAR#,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ATHR_PERS_NTL_ID = #authorId:VARCHAR#,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ATHR_PERS_SRC_ID = #authorSourceId:NUMERIC#,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SBJ_AREA_ID = #subjectAreaId:NUMERIC#,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DP_GOAL_TYPE_CD = #goalTypeCode:VARCHAR#,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DP_JRNL_TITLE_TX = #title:VARCHAR#,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DP_JRNL_ENTRY_TX = #entry:CLOB#,<br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DP_JRNL_ENTRY_CMNT = #comments:CLOB#,<span class="q"><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DP_JRNL_CRTN_DT = #createDate:DATE#,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DP_JRNL_UPDT_DT = #modifiedDate:DATE#,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DP_JRNL_STRT_DT = #startDate:DATE#,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DP_JRNL_END_DT = #endDate:DATE#,<br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DP_JRNL_ACHV_DT = #achievementDate:DATE#</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; where current of c1;</p>
<p align="left"></p></font>&nbsp; 
<p align="left">So, now, for the gold ring, how do I get rid of the 2 blank lines, one after &#39;set&#39; and the second after &#39;DP_JRNL_ACHV_DT = ...&#39;&nbsp; ??&nbsp;&nbsp; The $if$ test when false seems always to&nbsp;generate a blank line.<br>
</p>
<p align="left">-David</p>
<p align="left">&nbsp;</p></div>
<div><span class="e" id="q_11adf1476318779c_9">
<div><span class="gmail_quote">On 6/30/08, <b class="gmail_sendername">Johannes Luber</b> &lt;<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:jaluber@gmx.de" target="_blank">jaluber@gmx.de</a>&gt; wrote:</span> 
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">David Beckedorff schrieb:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid"><span>Dear String Templaters,<br>&nbsp;I have a ST template that generates a SQL update statement::<br>&nbsp;dtoSqlMap(service,dto) ::= &lt;&lt;<br>
...<br>update $dto.tableName$<br>set $dto.fields : { f |<br></span>&nbsp;$f.dbColName$ = #$<a onclick="return top.js.OpenExtLink(window,event,this)" href="http://f.name/" target="_blank">f.name</a> &lt;<a onclick="return top.js.OpenExtLink(window,event,this)" href="http://f.name/" target="_blank">http://f.name</a>&gt;;format=&quot;ilc&quot;$:$f.dbColType$#}; separator=&quot;,&quot;$ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;== &quot;ilc&quot; means to format the initial letter lowercase<span><br>
where current of c1;<br>...<br>&nbsp;&gt;&gt;<br>&nbsp;which in a specific case generates the following code:<br>&nbsp;update DP_JRNL_ENTRY<br>set<br>&nbsp;DP_JRNL_ENTRY_ID = #id:NUMERIC,<br>&nbsp;OWNR_PERS_NTL_ID = #ownerId:VARCHAR,<br>&nbsp;OWNR_DP_TYPE_CD = #ownerDpType:VARCHAR,<br>
&nbsp;ATHR_PERS_NTL_ID = #authorId:VARCHAR,<br>&nbsp;ATHR_PERS_SRC_ID = #authorSourceId:NUMERIC,<br>&nbsp;SBJ_AREA_ID = #subjectAreaId:NUMERIC,<br>&nbsp;DP_GOAL_TYPE_CD = #goalTypeCode:VARCHAR,<br>&nbsp;DP_JRNL_TITLE_TX = #title:VARCHAR,<br>&nbsp;DP_JRNL_ENTRY_TX = #entry:CLOB,<br>
&nbsp;DP_JRNL_CRTN_DT = #createDate:DATE,<br>&nbsp;DP_JRNL_UPDT_DT = #modifiedDate:DATE,<br>&nbsp;DP_JRNL_STRT_DT = #startDate:DATE,<br>&nbsp;DP_JRNL_END_DT = #endDate:DATE,<br>&nbsp;DP_JRNL_ACHV_DT = #achievementDate:DATE,<br>&nbsp;VER_NBR = #version:NUMERIC &nbsp; &nbsp; &nbsp; &nbsp; where current of c1;<br>
&nbsp;&nbsp;However, I want to suppress the DP_JRNL_ENTRY_ID and VER_NBR fields. The former is implied by &quot;where current of c1&quot; and the latter is updated by a trigger, so should be omitted from the update statement. But they are valid fields of the Data Transfer Object (DTO).<br>
&nbsp;It appears that the $if(...)$ construct allows to test for the presence of an attribute or the value of a boolean. But I don&#39;t think it allows to test for: &nbsp;if &nbsp;( $f.dbColName$ == &quot;DP_JRNL_ENTRY_ID&quot; ).<br>&nbsp;Is there some other way to accomplish this?<br>
&nbsp;Thanks,<br>David<br></span></blockquote><br>Create a new attribute IsdbColNameJournalEntry.<br><span><br>Johannes<br></span></blockquote></div><br></span></div></blockquote></div>