<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Murray Hopkins' Weblog</title>
	<atom:link href="http://murrayhopkins.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://murrayhopkins.wordpress.com</link>
	<description>Mostly programming stuff - but who knows what might happen ??</description>
	<lastBuildDate>Wed, 17 Dec 2008 04:01:45 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='murrayhopkins.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/a27b7b78765e16a17aecc115196c6791?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Murray Hopkins' Weblog</title>
		<link>http://murrayhopkins.wordpress.com</link>
	</image>
			<item>
		<title>#Value! error when using builtin POI in ColdFusion MX7</title>
		<link>http://murrayhopkins.wordpress.com/2008/12/17/value-error-when-using-builtin-poi-in-coldfusion-mx7/</link>
		<comments>http://murrayhopkins.wordpress.com/2008/12/17/value-error-when-using-builtin-poi-in-coldfusion-mx7/#comments</comments>
		<pubDate>Wed, 17 Dec 2008 04:01:45 +0000</pubDate>
		<dc:creator>Murray Hopkins</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://murrayhopkins.wordpress.com/?p=37</guid>
		<description><![CDATA[CF 7 (and 8, I think) has the java POI library builtin which means that (amongst other things) you can create native Excel spreadsheet files. cfSearching and Ben Nadel&#8217;s great blogs have more details.
I used Ben&#8217;s great POI Utility which is a set of custom tags that allows easy creation of XLS files with CSS [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=murrayhopkins.wordpress.com&blog=1878301&post=37&subd=murrayhopkins&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>CF 7 (and 8, I think) has the java POI library builtin which means that (amongst other things) you can create native Excel spreadsheet files. <a href="http://cfsearching.blogspot.com/2008/08/poi-examples-part-i.html">cfSearching</a> and <a href="http://www.bennadel.com/projects/poi-utility.htm">Ben Nadel&#8217;s</a> great blogs have more details.</p>
<p>I used Ben&#8217;s great POI Utility which is a set of custom tags that allows easy creation of XLS files with CSS styles for formatting. Fantastic stuff. However, when I created a cell containing the Excel COUNTIF() function, the cell displayed the <strong>#Value!</strong> error even though there was no error. By double clicking the cell then pressing enter, the error went away and the correct result was displayed.</p>
<p>After some googling I discovered that there was a bug in earlier versions of the POI java library that is shipped with CF7 (and 8??). So, nothing to do with the POI Utility, everything to do with the underlying Java.</p>
<p>Time to get the latest version of the POI Java jars and use Mark Mandel&#8217;s brilliant <a href="http://www.compoundtheory.com/?action=javaloader.index">JavaLoader.cfc</a> to load them into CF. If you need to know how to do that, see <a href="http://cfsearching.blogspot.com/2008/08/how-to-install-poi-on-coldfusion-8.html">cfSearching&#8217;s post</a> on that.</p>
<p>Once installed, the question was then how to change Ben&#8217;s POI Utility custom tags to use the new version of the jars instead of the builtin version. What I did was the following which solved the problem. I should say at the outset that I am not fluent in cf custom tags (I use objects instead) so there might be a more elegant way to acheive this.</p>
<p>First, add the following function to the POI/document.cfm page:</p>
<pre class="brush: xml;">
&lt;cffunction name=&quot;getJavaClass&quot; returntype=&quot;any&quot; hint=&quot;&quot; access=&quot;public&quot;&gt;
	&lt;cfargument name=&quot;javaLoader&quot; type=&quot;any&quot; required=&quot;yes&quot; hint=&quot;&quot;&gt;
	&lt;cfargument name=&quot;className&quot; type=&quot;string&quot; required=&quot;yes&quot; hint=&quot;&quot;&gt;
 &lt;cfscript&gt;
	if (isObject(arguments.javaLoader)) {
		return arguments.javaLoader.create(arguments.className);
	} else {
		return CreateObject(&quot;java&quot;, arguments.className);
	}
&lt;/cfscript&gt;
&lt;/cffunction&gt;
</pre>
<p>This function will be used to load the java jars using the javaLoader if it is passed in, or the normal CreateObject if there is no javaLoader passed in.</p>
<p>Then, in <strong>poi/document.cfm</strong>:<br />
after</p>
<pre class="brush: xml;">
		&lt;cfparam
			name=&quot;ATTRIBUTES.Style&quot;
			type=&quot;string&quot;
			default=&quot;&quot;
			/&gt;
</pre>
<p>add the following attribute and variables declaration:</p>
<pre class="brush: xml;">
		&lt;cfparam
			name=&quot;ATTRIBUTES.javaLoader&quot;
			type=&quot;any&quot;
			default=&quot;&quot;
			/&gt;

		 &lt;cfset variables.javaLoader = ATTRIBUTES.javaLoader&gt;
</pre>
<p>Then, change all occurrances of</p>
<pre class="brush: xml;">
CreateObject( &quot;java&quot;,
eg
&lt;cfset VARIABLES.WorkBook = CreateObject( &quot;java&quot;, &quot;org.apache.poi.hssf.usermodel.HSSFWorkbook&quot; ).Init(
</pre>
<p>to</p>
<pre class="brush: xml;">
getJavaClass(ATTRIBUTES.javaLoader,
eg
&lt;cfset VARIABLES.WorkBook = getJavaClass(ATTRIBUTES.javaLoader, &quot;org.apache.poi.hssf.usermodel.HSSFWorkbook&quot; ).Init(
</pre>
<p>Now, in <strong>poi/cell.cfm</strong>, change:</p>
<pre class="brush: xml;">
CreateObject( &quot;java&quot;, &quot;org.apache.poi.hssf.util.Region&quot; ).Init(
</pre>
<p>to</p>
<pre class="brush: xml;">
VARIABLES.DocumentTag.getJavaClass(VARIABLES.DocumentTag.javaLoader, &quot;org.apache.poi.hssf.util.Region&quot; ).Init(
</pre>
<p>That fragment uses the function and variables that are located on the document.cfm page.</p>
<p>Finally, when you use the <strong>poi:document</strong> tag on your page, pass the instance of your javaLoader, eg:</p>
<pre class="brush: xml;">
&lt;poi:document
	javaLoader=&quot;#variables.javaLoader#&quot;
	name=&quot;REQUEST.ExcelData&quot;
	file=&quot;#xlsfname#&quot;
	style=&quot;font-family: verdana ; font-size: 10pt ; color: black ; white-space: nowrap ;&quot;&gt;
</pre>
<p>After those small changes, the #Value! error went away! Yay!!</p>
<p>Thanks again to Mark, Ben and Leigh for making all this possible in the first place.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/murrayhopkins.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/murrayhopkins.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/murrayhopkins.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/murrayhopkins.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/murrayhopkins.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/murrayhopkins.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/murrayhopkins.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/murrayhopkins.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/murrayhopkins.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/murrayhopkins.wordpress.com/37/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=murrayhopkins.wordpress.com&blog=1878301&post=37&subd=murrayhopkins&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://murrayhopkins.wordpress.com/2008/12/17/value-error-when-using-builtin-poi-in-coldfusion-mx7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bab3d6eac3bdc2e530db285f993b1f0d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">murrah</media:title>
		</media:content>
	</item>
		<item>
		<title>MySQL &#8211; left join on last (or first) record in the right table</title>
		<link>http://murrayhopkins.wordpress.com/2008/10/28/mysql-left-join-on-last-or-first-record-in-the-right-table/</link>
		<comments>http://murrayhopkins.wordpress.com/2008/10/28/mysql-left-join-on-last-or-first-record-in-the-right-table/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 07:18:22 +0000</pubDate>
		<dc:creator>Murray Hopkins</dc:creator>
				<category><![CDATA[MySql]]></category>

		<guid isPermaLink="false">http://murrayhopkins.wordpress.com/?p=19</guid>
		<description><![CDATA[After spending a few hours searching and testing this one I thought I&#8217;d better share it since I found many similar questions but no answers. I am not a MySQL expert so there may be a better way to do this. Please tell me if there is!!
This is a simplified example. I have a table [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=murrayhopkins.wordpress.com&blog=1878301&post=19&subd=murrayhopkins&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>After spending a few hours searching and testing this one I thought I&#8217;d better share it since I found many similar questions but no answers. I am not a MySQL expert so there may be a better way to do this. Please tell me if there is!!</p>
<p>This is a simplified example. I have a table of customers and any sales they may have made. I want to list ALL customers together with the LAST sale they made. ie even if there was no sale at all, I still want the customer data listed with NULLS for the sale data.</p>
<p>Sample Customer data:</p>
<table style="height:94px;" border="1" width="285">
<tbody>
<tr>
<td class="medium" bgcolor="silver">custID</td>
<td class="medium" bgcolor="silver">custFirst</td>
<td class="medium" bgcolor="silver">custLast</td>
</tr>
<tr>
<td class="normal" valign="top">1</td>
<td class="normal" valign="top">John</td>
<td class="normal" valign="top">Smith</td>
</tr>
<tr>
<td class="normal" valign="top">2</td>
<td class="normal" valign="top">Sally</td>
<td class="normal" valign="top">Fields</td>
</tr>
<tr>
<td class="normal" valign="top">3</td>
<td class="normal" valign="top">Winston</td>
<td class="normal" valign="top">Churchill</td>
</tr>
</tbody>
</table>
<p>Sample Sales data:</p>
<table style="height:130px;" border="1" width="365">
<tbody>
<tr>
<td class="medium" bgcolor="silver">saleID</td>
<td class="medium" bgcolor="silver">saleDate</td>
<td class="medium" bgcolor="silver">saleAmount</td>
<td class="medium" bgcolor="silver">custID</td>
</tr>
<tr>
<td class="normal" valign="top">1</td>
<td class="normal" valign="top">2008-10-20 09:12:00</td>
<td class="normal" valign="top">20</td>
<td class="normal" valign="top">1</td>
</tr>
<tr>
<td class="normal" valign="top">2</td>
<td class="normal" valign="top">2007-12-03 18:45:00</td>
<td class="normal" valign="top">14</td>
<td class="normal" valign="top">1</td>
</tr>
<tr>
<td class="normal" valign="top">3</td>
<td class="normal" valign="top">2008-02-13 16:00:00</td>
<td class="normal" valign="top">10</td>
<td class="normal" valign="top">3</td>
</tr>
<tr>
<td class="normal" valign="top">4</td>
<td class="normal" valign="top">2006-07-08 18:00:00</td>
<td class="normal" valign="top">30</td>
<td class="normal" valign="top">3</td>
</tr>
<tr>
<td class="normal" valign="top">5</td>
<td class="normal" valign="top">2007-05-14 14:48:00</td>
<td class="normal" valign="top">18</td>
<td class="normal" valign="top">3</td>
</tr>
<tr>
<td class="normal" valign="top">6</td>
<td class="normal" valign="top">2008-10-22 19:00:00</td>
<td class="normal" valign="top">57</td>
<td class="normal" valign="top">1</td>
</tr>
</tbody>
</table>
<p>And the result set from the query below:</p>
<table style="height:76px;" border="1" width="513">
<tbody>
<tr>
<td class="medium" bgcolor="silver">custID</td>
<td class="medium" bgcolor="silver">custFirst</td>
<td class="medium" bgcolor="silver">custLast</td>
<td class="medium" bgcolor="silver">saleID</td>
<td class="medium" bgcolor="silver">saleDate</td>
<td class="medium" bgcolor="silver">saleAmount</td>
<td class="medium" bgcolor="silver">custID</td>
</tr>
<tr>
<td class="normal" valign="top">1</td>
<td class="normal" valign="top">John</td>
<td class="normal" valign="top">Smith</td>
<td class="normal" valign="top">6</td>
<td class="normal" valign="top">2008-10-22 19:00:00</td>
<td class="normal" valign="top">57</td>
<td class="normal" valign="top">1</td>
</tr>
<tr>
<td class="normal" valign="top">2</td>
<td class="normal" valign="top">Sally</td>
<td class="normal" valign="top">Fields</td>
<td class="normal" valign="top">(NULL)</td>
<td class="normal" valign="top">(NULL)</td>
<td class="normal" valign="top">(NULL)</td>
<td class="normal" valign="top">(NULL)</td>
</tr>
<tr>
<td class="normal" valign="top">3</td>
<td class="normal" valign="top">Winston</td>
<td class="normal" valign="top">Churchill</td>
<td class="normal" valign="top">3</td>
<td class="normal" valign="top">2008-02-13 16:00:00</td>
<td class="normal" valign="top">10</td>
<td class="normal" valign="top">3</td>
</tr>
</tbody>
</table>
<p>For John and Winston we have the most recent sale they made. Sally hasnt purchased anything yet.</p>
<p>This is the SQL:</p>
<pre style="font-size:10pt;">SELECT
    customers.*, sale_tmp.*
FROM
    customers

    LEFT JOIN ( SELECT s1.*
		FROM sales as s1
		LEFT JOIN sales AS s2
		     ON s1.custID = s2.custID AND s1.saledate &lt; s2.saledate
		WHERE s2.custID IS NULL ) as sale_tmp

    ON (customers.custID = sale_tmp.custID)</pre>
<p>This relies on a couple of sql concepts linked together. The first is the idea that you can LEFT JOIN a temporary table just like a &#8220;real&#8221; table. So, this bit:</p>
<pre style="font-size:10pt;">( SELECT s1.*
		FROM sales as s1
		LEFT JOIN sales AS s2
		     ON s1.custID = s2.custID AND s1.saledate &lt; s2.saledate
		WHERE s2.custID IS NULL ) as sale_tmp</pre>
<p>creates a temporary table called &#8220;sale_tmp&#8221; that we are LEFT JOINing to the customers table via the common custID columns. Dont worry about the table construction, just note that a table is being created here.</p>
<p>The second concept is called a <em>within-group aggregate</em> and this is the way that we get the most recent sale for each custID in the sales table. There is a very good explanation of that here:</p>
<p><a href="http://www.artfulsoftware.com/infotree/queries.php?&amp;bw=1395#101">http://www.artfulsoftware.com/infotree/queries.php?&amp;bw=1395#101</a></p>
<p>So, to sum up, the technique is to create a temporary table (sale_tmp) that contains just the most recent sales for each custID in the sales table, then left join sale_tmp to customers.</p>
<p>If you wanted their first purchases, simply change</p>
<pre style="font-size:10pt;">s1.saledate &lt; s2.saledate</pre>
<p>to</p>
<pre style="font-size:10pt;">s1.saledate &gt; s2.saledate</pre>
<p>Here is the db dump if you want to play around.</p>
<pre style="font-size:10pt;">

CREATE TABLE `customers` (
  `custID` int(10) NOT NULL auto_increment,
  `custFirst` varchar(50) default NULL,
  `custLast` varchar(50) default NULL,
  PRIMARY KEY  (`custID`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

/*Data for the table `customers` */

insert  into `customers`(`custID`,`custFirst`,`custLast`) values (1,'John','Smith'),(2,'Sally','Fields'),(3,'Winston','Churchill');

/*Table structure for table `sales` */

CREATE TABLE `sales` (
  `saleID` int(10) NOT NULL auto_increment,
  `saleDate` datetime default NULL,
  `saleAmount` double default NULL,
  `custID` int(10) default '0',
  PRIMARY KEY  (`saleID`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;

/*Data for the table `sales` */

insert  into `sales`(`saleID`,`saleDate`,`saleAmount`,`custID`) values (1,'2008-10-20 09:12:00',20,1),(2,'2007-12-03 18:45:00',14,1),(3,'2008-02-13 16:00:00',10,3),(4,'2006-07-08 18:00:00',30,3),(5,'2007-05-14 14:48:00',18,3),(6,'2008-10-22 19:00:00',57,1);</pre>
<p>Now I have that off my chest I can go back to using this in my real application.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/murrayhopkins.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/murrayhopkins.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/murrayhopkins.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/murrayhopkins.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/murrayhopkins.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/murrayhopkins.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/murrayhopkins.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/murrayhopkins.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/murrayhopkins.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/murrayhopkins.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=murrayhopkins.wordpress.com&blog=1878301&post=19&subd=murrayhopkins&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://murrayhopkins.wordpress.com/2008/10/28/mysql-left-join-on-last-or-first-record-in-the-right-table/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bab3d6eac3bdc2e530db285f993b1f0d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">murrah</media:title>
		</media:content>
	</item>
		<item>
		<title>Looping over a query with CFScript</title>
		<link>http://murrayhopkins.wordpress.com/2008/10/23/looping-over-a-query-with-cfscript/</link>
		<comments>http://murrayhopkins.wordpress.com/2008/10/23/looping-over-a-query-with-cfscript/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 23:52:17 +0000</pubDate>
		<dc:creator>Murray Hopkins</dc:creator>
				<category><![CDATA[Coldfusion]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://murrayhopkins.wordpress.com/?p=9</guid>
		<description><![CDATA[It is often convenient to be able to loop over a coldfusion query with CFScript. There is a way to do this even though CF7 does not provide a documented way to do it (and I dont know about CF8).
By harnessing the underlying Java you can do the following:
while( qry.Next() ) {
    [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=murrayhopkins.wordpress.com&blog=1878301&post=9&subd=murrayhopkins&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>It is often convenient to be able to loop over a coldfusion query with CFScript. There is a way to do this even though CF7 does not provide a documented way to do it (and I dont know about CF8).</p>
<p>By harnessing the underlying Java you can do the following:</p>
<pre style="font-size:10pt;">while( qry.Next() ) {
    qryRow = queryRowToStruct(qry);
    writeOutput( "name=" &amp; qryRow.firstname );
}</pre>
<p>(subsititute your relevant column name for &#8220;firstname&#8221;)</p>
<p>The <code>Next()</code> method is a Java iterator method and can be used on CF queries.</p>
<p>The <code>queryRowToStruct()</code> function is a modified version of the one found at<br />
<a href="http://cflib.org/index.cfm?event=page.udfbyid&amp;udfid=358">CFLib.org</a></p>
<p>The purpose of the function is to return a CF structure containing the data at the specified query row number. See the link above for details.</p>
<p>You just need to modify the line<br />
<code>var row = 1;</code><br />
to<br />
<code>var row = query.getRow();</code></p>
<p><code>getRow()</code> is another Java iterator method and it returns the sequential row number from the query. The Next() method increments the row counter on the query and since the query is passed into the queryRowToStruct() function by reference, each call the getRow() will return the current row number, starting at 1.</p>
<p>Addendum: In order to allow the queryRowToStruct() function to be used as it was originally intended, you need to make another small change so that you can use the function without the iterator and only one parameter ie so that queryRowToStruct(query) will return the first record from the query.</p>
<p>Here is the complete (modified) function (credits to Nathan Dintenfass (nathan@changemedia.com)):</p>
<pre style="font-size:10pt;">

function queryRowToStruct(query){
	// By default, do this to the first row of the query
	//var row = 1;
	// No. By using getRow() we can call this function sequentially and get the next record each time.
	// Or, we can pass the row number we want as the 2nd parameter as before.
	var row = query.getRow();
	//a var for looping
	var ii = 1;
	//the cols to loop over
	var cols = listToArray(query.columnList);
	//the struct to return
	var stReturn = structnew();

	// getRow() will return 0 if next() hasnt been called.
	// So, to allow this function to work by calling it with one parameter and no previous call to next(),
	// we need the following:
	if (row eq 0) row = 1; 

	//if there is a second argument, use that for the row number
	if(arrayLen(arguments) GT 1)
		row = arguments[2];
	//loop over the cols and build the struct from the query row
	for(ii = 1; ii lte arraylen(cols); ii = ii + 1){
		stReturn[cols[ii]] = query[cols[ii]][row];
	}
	//return the struct
	return stReturn;
}
</pre>
<p>You can also still do this<br />
<code>qryRow = queryRowToStruct(query,3);</code><br />
to get the third row (as per the original use of the function).</p>
<p>For other info on using Java and queries see:<br />
<a href="http://www.bennadel.com/blog/204-Using-ColdFusion-Query-s-Underlying-Java-Methods-For-Query-Manipulation-And-Logic.htm">href=&#8221;http://www.bennadel.com/blog/204-Using-ColdFusion-Query-s-Underlying-Java-Methods-For-Query-Manipulation-And-Logic.htm&#8221;</a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/murrayhopkins.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/murrayhopkins.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/murrayhopkins.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/murrayhopkins.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/murrayhopkins.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/murrayhopkins.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/murrayhopkins.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/murrayhopkins.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/murrayhopkins.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/murrayhopkins.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=murrayhopkins.wordpress.com&blog=1878301&post=9&subd=murrayhopkins&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://murrayhopkins.wordpress.com/2008/10/23/looping-over-a-query-with-cfscript/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bab3d6eac3bdc2e530db285f993b1f0d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">murrah</media:title>
		</media:content>
	</item>
		<item>
		<title>Ext &#8211; Adding a tree to the portal example</title>
		<link>http://murrayhopkins.wordpress.com/2007/10/12/ext-adding-a-tree-to-the-portal-example/</link>
		<comments>http://murrayhopkins.wordpress.com/2007/10/12/ext-adding-a-tree-to-the-portal-example/#comments</comments>
		<pubDate>Fri, 12 Oct 2007 06:03:39 +0000</pubDate>
		<dc:creator>Murray Hopkins</dc:creator>
				<category><![CDATA[Coldfusion]]></category>
		<category><![CDATA[Ext JS]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ext]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://murrayhopkins.wordpress.com/2007/10/12/ext-adding-a-tree-to-the-portal-example/</guid>
		<description><![CDATA[For a project I am working on I wanted to add a tree to a viewport. There is a portal example on the Ext web site that features an accordion control in the west panel. It took a while to figure out how to replace that accordion with a tree even though the method turned [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=murrayhopkins.wordpress.com&blog=1878301&post=4&subd=murrayhopkins&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>For a project I am working on I wanted to add a tree to a viewport. There is a portal example on the Ext web site that features an accordion control in the west panel. It took a while to figure out how to replace that accordion with a tree even though the method turned out to be quite simple.</p>
<p>See this post on the Ext forum for the key piece of information from another Ext user:<br />
<a href="http://extjs.com/forum/showthread.php?t=14445">http://extjs.com/forum/showthread.php?t=14445</a></p>
<p>See this working version (and files to download) on my web site:<br />
<a href="http://www.murrah.com.au/samples/ext/portal/portal.cfm" target="_blank">http://www.murrah.com.au/samples/ext/portal/portal.cfm</a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/murrayhopkins.wordpress.com/4/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/murrayhopkins.wordpress.com/4/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/murrayhopkins.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/murrayhopkins.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/murrayhopkins.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/murrayhopkins.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/murrayhopkins.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/murrayhopkins.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/murrayhopkins.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/murrayhopkins.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/murrayhopkins.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/murrayhopkins.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=murrayhopkins.wordpress.com&blog=1878301&post=4&subd=murrayhopkins&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://murrayhopkins.wordpress.com/2007/10/12/ext-adding-a-tree-to-the-portal-example/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bab3d6eac3bdc2e530db285f993b1f0d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">murrah</media:title>
		</media:content>
	</item>
		<item>
		<title>Ext JS library and Coldfusion</title>
		<link>http://murrayhopkins.wordpress.com/2007/10/12/ext-js-library-and-coldfusion/</link>
		<comments>http://murrayhopkins.wordpress.com/2007/10/12/ext-js-library-and-coldfusion/#comments</comments>
		<pubDate>Fri, 12 Oct 2007 05:47:24 +0000</pubDate>
		<dc:creator>Murray Hopkins</dc:creator>
				<category><![CDATA[Coldfusion]]></category>
		<category><![CDATA[Ext JS]]></category>
		<category><![CDATA[Ext]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://murrayhopkins.wordpress.com/2007/10/12/ext-js-library-and-coldfusion/</guid>
		<description><![CDATA[I am enjoying using the Ext JS 2.0 library and at the same time finding it very frustrating due to a lack of well documented examples. The library is a very comprehensive object oriented Javascript library that is aimed at building data rich web applications.
To help others (especially Coldfusion programmers like me) I have started [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=murrayhopkins.wordpress.com&blog=1878301&post=3&subd=murrayhopkins&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I am enjoying using the Ext JS 2.0 library and at the same time finding it very frustrating due to a lack of well documented examples. The library is a very comprehensive object oriented Javascript library that is aimed at building data rich web applications.</p>
<p>To help others (especially Coldfusion programmers like me) I have started an Ext &amp; Coldfusion wiki page on the Ext site that will, I hope, become a central place for CF programmers to leave tips about how to integrate CF and Ext.</p>
<p>The wiki is at <a href="http://extjs.com/learn/Manual:Resources:ColdFusion" target="_blank">http://extjs.com/learn/Manual:Resources:ColdFusion</a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/murrayhopkins.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/murrayhopkins.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/murrayhopkins.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/murrayhopkins.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/murrayhopkins.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/murrayhopkins.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/murrayhopkins.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/murrayhopkins.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/murrayhopkins.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/murrayhopkins.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/murrayhopkins.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/murrayhopkins.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=murrayhopkins.wordpress.com&blog=1878301&post=3&subd=murrayhopkins&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://murrayhopkins.wordpress.com/2007/10/12/ext-js-library-and-coldfusion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bab3d6eac3bdc2e530db285f993b1f0d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">murrah</media:title>
		</media:content>
	</item>
		<item>
		<title>Hello all!</title>
		<link>http://murrayhopkins.wordpress.com/2007/10/09/hello-world/</link>
		<comments>http://murrayhopkins.wordpress.com/2007/10/09/hello-world/#comments</comments>
		<pubDate>Tue, 09 Oct 2007 22:31:48 +0000</pubDate>
		<dc:creator>Murray Hopkins</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[My blogging starts here.
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=murrayhopkins.wordpress.com&blog=1878301&post=1&subd=murrayhopkins&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>My blogging starts here.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/murrayhopkins.wordpress.com/1/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/murrayhopkins.wordpress.com/1/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/murrayhopkins.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/murrayhopkins.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/murrayhopkins.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/murrayhopkins.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/murrayhopkins.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/murrayhopkins.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/murrayhopkins.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/murrayhopkins.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/murrayhopkins.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/murrayhopkins.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=murrayhopkins.wordpress.com&blog=1878301&post=1&subd=murrayhopkins&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://murrayhopkins.wordpress.com/2007/10/09/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bab3d6eac3bdc2e530db285f993b1f0d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">murrah</media:title>
		</media:content>
	</item>
	</channel>
</rss>