<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Script Triggers: Filter as You Type</title>
	<atom:link href="http://sixfriedrice.com/wp/script-triggers-filter-as-you-type/feed/" rel="self" type="application/rss+xml" />
	<link>http://sixfriedrice.com/wp/script-triggers-filter-as-you-type/</link>
	<description>smart business solutions</description>
	<lastBuildDate>Sun, 05 Sep 2010 17:37:44 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: robear</title>
		<link>http://sixfriedrice.com/wp/script-triggers-filter-as-you-type/comment-page-1/#comment-1912</link>
		<dc:creator>robear</dc:creator>
		<pubDate>Tue, 09 Mar 2010 18:23:53 +0000</pubDate>
		<guid isPermaLink="false">http://sixfriedrice.com/wp/script-triggers-filter-as-you-type/#comment-1912</guid>
		<description>Now with the advent of FMP 11 and the &quot;Quick Find&quot; script step, all *elected fields are included in this search.

Set Variable [$currentObject; Value:Get( ActiveLayoutObjectName )]
Set Variable [$query; Value:Get( TABLE::g_search_field )]
Commit Records/Requests [ ]
Perform Quick Find [$query]
Go to Object [Object name: $currentObject]

*fileds can included in the Quick Find by selecting the checkbox in the new Inspector / Data tab / Behavior section.

robear</description>
		<content:encoded><![CDATA[<p>Now with the advent of FMP 11 and the &#8220;Quick Find&#8221; script step, all *elected fields are included in this search.</p>
<p>Set Variable [$currentObject; Value:Get( ActiveLayoutObjectName )]<br />
Set Variable [$query; Value:Get( TABLE::g_search_field )]<br />
Commit Records/Requests [ ]<br />
Perform Quick Find [$query]<br />
Go to Object [Object name: $currentObject]</p>
<p>*fileds can included in the Quick Find by selecting the checkbox in the new Inspector / Data tab / Behavior section.</p>
<p>robear</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Fairhead</title>
		<link>http://sixfriedrice.com/wp/script-triggers-filter-as-you-type/comment-page-1/#comment-1795</link>
		<dc:creator>Jonathan Fairhead</dc:creator>
		<pubDate>Mon, 08 Jun 2009 15:35:11 +0000</pubDate>
		<guid isPermaLink="false">http://sixfriedrice.com/wp/script-triggers-filter-as-you-type/#comment-1795</guid>
		<description>I had an hour or so free this morning so decided to see if I could create my own take on this (and fix the first word filtering problem whilst I was at it). It requires a couple of new functions-

I&#039;ve called the first one: TextToList (String ; Numeric )

Let ( [

Counter = Length ( GetValue ( String ; 1 ) ) ;

NewCounter = Numeric ;

NewList = String &amp; “¶” &amp; Left ( GetValue ( String ; 1 ) ; NewCounter ) ;

NewCounter = NewCounter+1 ] ;

If ( NewCounter  1 ; TextToList ( MiddleWords ( String ; NewCounter ; 1 ) ; 1 ) ; “” ) ;

NewCounter = NewCounter+1 ] ;

If ( NewCounter ? Counter ; TextWordToList ( String ; NewCounter ; NewList ); NewList ) )

Once again, you’ll need to call this with a Numeric value of 1 and also a StringList value of “”.

Finally you’ll need to create a calc field in the portal table that has the following:

TextWordToList ( SearchField ; 1 ; “” ) &amp; “¶” &amp; TextToList ( SearchField ; 1 )

SearchField should be the field that you’re try to search on (eg a full name field).

This calls the two functions in a useful way and will convert the string Tom Thumb into :

Thumb
T
Th
Thu
Thum
Tom Thumb
T
To
Tom
Tom
Tom T
Tom Th
Tom Thu
Tom Thum

By calling the functions in the way described, the first word doesn’t get repeated which saves on some disk space / filtering speed with larger databases. From this list you can search on the words Tom, Thumb, Tom Thumb, Thu, etc and get a positive result. Combine this with the OnObjectModify script trigger and you’ve got a rapid portal filter that will search on any word not just the first one.

Note : There are a couple of spurious carriage returns at the start of the calc field but I only had a short while to run through it and have only just noticed their presence - they&#039;re easy enough to remove though : )</description>
		<content:encoded><![CDATA[<p>I had an hour or so free this morning so decided to see if I could create my own take on this (and fix the first word filtering problem whilst I was at it). It requires a couple of new functions-</p>
<p>I&#8217;ve called the first one: TextToList (String ; Numeric )</p>
<p>Let ( [</p>
<p>Counter = Length ( GetValue ( String ; 1 ) ) ;</p>
<p>NewCounter = Numeric ;</p>
<p>NewList = String &amp; “¶” &amp; Left ( GetValue ( String ; 1 ) ; NewCounter ) ;</p>
<p>NewCounter = NewCounter+1 ] ;</p>
<p>If ( NewCounter  1 ; TextToList ( MiddleWords ( String ; NewCounter ; 1 ) ; 1 ) ; “” ) ;</p>
<p>NewCounter = NewCounter+1 ] ;</p>
<p>If ( NewCounter ? Counter ; TextWordToList ( String ; NewCounter ; NewList ); NewList ) )</p>
<p>Once again, you’ll need to call this with a Numeric value of 1 and also a StringList value of “”.</p>
<p>Finally you’ll need to create a calc field in the portal table that has the following:</p>
<p>TextWordToList ( SearchField ; 1 ; “” ) &amp; “¶” &amp; TextToList ( SearchField ; 1 )</p>
<p>SearchField should be the field that you’re try to search on (eg a full name field).</p>
<p>This calls the two functions in a useful way and will convert the string Tom Thumb into :</p>
<p>Thumb<br />
T<br />
Th<br />
Thu<br />
Thum<br />
Tom Thumb<br />
T<br />
To<br />
Tom<br />
Tom<br />
Tom T<br />
Tom Th<br />
Tom Thu<br />
Tom Thum</p>
<p>By calling the functions in the way described, the first word doesn’t get repeated which saves on some disk space / filtering speed with larger databases. From this list you can search on the words Tom, Thumb, Tom Thumb, Thu, etc and get a positive result. Combine this with the OnObjectModify script trigger and you’ve got a rapid portal filter that will search on any word not just the first one.</p>
<p>Note : There are a couple of spurious carriage returns at the start of the calc field but I only had a short while to run through it and have only just noticed their presence &#8211; they&#8217;re easy enough to remove though : )</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Thomas Seidler</title>
		<link>http://sixfriedrice.com/wp/script-triggers-filter-as-you-type/comment-page-1/#comment-1780</link>
		<dc:creator>Thomas Seidler</dc:creator>
		<pubDate>Wed, 20 May 2009 10:42:00 +0000</pubDate>
		<guid isPermaLink="false">http://sixfriedrice.com/wp/script-triggers-filter-as-you-type/#comment-1780</guid>
		<description>Obviously a fine solution where previously only the Fusion Reactor plug in would do this. Saw it first in the FMP10 &#039;Trailer&#039; seminar from FileMaker.

I adjust it mildly, cos i use mine as search fields and am not always editing the last letter, but also previous words:

Set Variable [$currentObject; Get ( ActiveLayoutObjectName )]
Set Variable [$currentSelectionStart; Get ( ActiveSelectionStart )]
Commit Records/Requests []
Go to Object [ $currentObject ]
Set Selection [ Start: $currentSelectionStart ]

This means that wherever you edit in the field you are sent back to relevant position. To be sure a minor adjustment! ;)

Blessings, T</description>
		<content:encoded><![CDATA[<p>Obviously a fine solution where previously only the Fusion Reactor plug in would do this. Saw it first in the FMP10 &#8216;Trailer&#8217; seminar from FileMaker.</p>
<p>I adjust it mildly, cos i use mine as search fields and am not always editing the last letter, but also previous words:</p>
<p>Set Variable [$currentObject; Get ( ActiveLayoutObjectName )]<br />
Set Variable [$currentSelectionStart; Get ( ActiveSelectionStart )]<br />
Commit Records/Requests []<br />
Go to Object [ $currentObject ]<br />
Set Selection [ Start: $currentSelectionStart ]</p>
<p>This means that wherever you edit in the field you are sent back to relevant position. To be sure a minor adjustment! <img src='http://sixfriedrice.com/wp/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Blessings, T</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Graham</title>
		<link>http://sixfriedrice.com/wp/script-triggers-filter-as-you-type/comment-page-1/#comment-1716</link>
		<dc:creator>David Graham</dc:creator>
		<pubDate>Wed, 11 Mar 2009 17:08:15 +0000</pubDate>
		<guid isPermaLink="false">http://sixfriedrice.com/wp/script-triggers-filter-as-you-type/#comment-1716</guid>
		<description>@Tom. That&#039;s great news ... Congratulations! Thanks for the attribution.

- Dave</description>
		<content:encoded><![CDATA[<p>@Tom. That&#8217;s great news &#8230; Congratulations! Thanks for the attribution.</p>
<p>- Dave</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Graham</title>
		<link>http://sixfriedrice.com/wp/script-triggers-filter-as-you-type/comment-page-1/#comment-1715</link>
		<dc:creator>David Graham</dc:creator>
		<pubDate>Wed, 11 Mar 2009 17:06:00 +0000</pubDate>
		<guid isPermaLink="false">http://sixfriedrice.com/wp/script-triggers-filter-as-you-type/#comment-1715</guid>
		<description>@Anatole: You might be better served by the following variation. NB, this technique is a bit expensive and likely wont be appropriate for large numbers of records and/or WAN deployments. In that event I&#039;d use the find mode variation of the same technique.

Let( [ 

secondWord = MiddleWords ( Name ; 2 ; 1 ) ; 
thirdWord = MiddleWords ( Name ; 3 ; 1 ) ] ; 

ExplodeToMultikey ( Name ) 

&amp; Case( not IsEmpty( secondWord ) ; ExplodeToMultikey ( secondWord ) )

&amp; Case( not IsEmpty( thirdWord ) ; ExplodeToMultikey ( thirdWord ) )

)

@Indra: you shouldn&#039;t have to refresh the index. Modifying an expression in a stored calculation field will automatically force the host to reevaluate the field and it&#039;s index.

- Dave</description>
		<content:encoded><![CDATA[<p>@Anatole: You might be better served by the following variation. NB, this technique is a bit expensive and likely wont be appropriate for large numbers of records and/or WAN deployments. In that event I&#8217;d use the find mode variation of the same technique.</p>
<p>Let( [ </p>
<p>secondWord = MiddleWords ( Name ; 2 ; 1 ) ;<br />
thirdWord = MiddleWords ( Name ; 3 ; 1 ) ] ; </p>
<p>ExplodeToMultikey ( Name ) </p>
<p>&amp; Case( not IsEmpty( secondWord ) ; ExplodeToMultikey ( secondWord ) )</p>
<p>&amp; Case( not IsEmpty( thirdWord ) ; ExplodeToMultikey ( thirdWord ) )</p>
<p>)</p>
<p>@Indra: you shouldn&#8217;t have to refresh the index. Modifying an expression in a stored calculation field will automatically force the host to reevaluate the field and it&#8217;s index.</p>
<p>- Dave</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anatole Beams</title>
		<link>http://sixfriedrice.com/wp/script-triggers-filter-as-you-type/comment-page-1/#comment-1710</link>
		<dc:creator>Anatole Beams</dc:creator>
		<pubDate>Mon, 09 Mar 2009 17:24:59 +0000</pubDate>
		<guid isPermaLink="false">http://sixfriedrice.com/wp/script-triggers-filter-as-you-type/#comment-1710</guid>
		<description>Hi great mod

However - just tried Indra&#039;s mod to make it list for any word in the field. But it works just the same! 

I have followed the instructions, carefully, copied out the line of text to modify the function and refreshed the indexing as specified. - no change.
The index field lists as the example below - is this correct? (surely it should just list the words individually)?

F
Fo
For
Ford

F
Fo
For
Ford
Ford
Ford M
Ford Mo
Ford Mot
etc ...</description>
		<content:encoded><![CDATA[<p>Hi great mod</p>
<p>However &#8211; just tried Indra&#8217;s mod to make it list for any word in the field. But it works just the same! </p>
<p>I have followed the instructions, carefully, copied out the line of text to modify the function and refreshed the indexing as specified. &#8211; no change.<br />
The index field lists as the example below &#8211; is this correct? (surely it should just list the words individually)?</p>
<p>F<br />
Fo<br />
For<br />
Ford</p>
<p>F<br />
Fo<br />
For<br />
Ford<br />
Ford<br />
Ford M<br />
Ford Mo<br />
Ford Mot<br />
etc &#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tom Fitch</title>
		<link>http://sixfriedrice.com/wp/script-triggers-filter-as-you-type/comment-page-1/#comment-1699</link>
		<dc:creator>Tom Fitch</dc:creator>
		<pubDate>Fri, 27 Feb 2009 18:03:21 +0000</pubDate>
		<guid isPermaLink="false">http://sixfriedrice.com/wp/script-triggers-filter-as-you-type/#comment-1699</guid>
		<description>Geoff and David, thank you! I used this technique to redesign a client&#039;s system. I actually wanted to get away from filtered portals so my script does  a Find in a List view. 

I had just finished implementing it when I stumbled upon the recent &quot;Ergonomic Stimulus Contest&quot; run by Albert Harum-Alvarez of Small Company. So I submitted an entry and won 2nd place! Your technique is a winner! I gave you guys credit for the technique in my entry and presentation. Thanks again.</description>
		<content:encoded><![CDATA[<p>Geoff and David, thank you! I used this technique to redesign a client&#8217;s system. I actually wanted to get away from filtered portals so my script does  a Find in a List view. </p>
<p>I had just finished implementing it when I stumbled upon the recent &#8220;Ergonomic Stimulus Contest&#8221; run by Albert Harum-Alvarez of Small Company. So I submitted an entry and won 2nd place! Your technique is a winner! I gave you guys credit for the technique in my entry and presentation. Thanks again.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bill Doerrfeld</title>
		<link>http://sixfriedrice.com/wp/script-triggers-filter-as-you-type/comment-page-1/#comment-1686</link>
		<dc:creator>Bill Doerrfeld</dc:creator>
		<pubDate>Fri, 20 Feb 2009 16:46:12 +0000</pubDate>
		<guid isPermaLink="false">http://sixfriedrice.com/wp/script-triggers-filter-as-you-type/#comment-1686</guid>
		<description>Be sure to give the spotlight field an object name for this to work properly.</description>
		<content:encoded><![CDATA[<p>Be sure to give the spotlight field an object name for this to work properly.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bill Doerrfeld</title>
		<link>http://sixfriedrice.com/wp/script-triggers-filter-as-you-type/comment-page-1/#comment-1685</link>
		<dc:creator>Bill Doerrfeld</dc:creator>
		<pubDate>Fri, 20 Feb 2009 16:03:51 +0000</pubDate>
		<guid isPermaLink="false">http://sixfriedrice.com/wp/script-triggers-filter-as-you-type/#comment-1685</guid>
		<description>Per Indra&#039;s last point on turning off/on indexing, you need to also make sure &quot;Automatically create indexes as needed&quot; is enabled; and, of course, do NOT select &quot;Do not store calculation results - recalculate as needed&quot;.</description>
		<content:encoded><![CDATA[<p>Per Indra&#8217;s last point on turning off/on indexing, you need to also make sure &#8220;Automatically create indexes as needed&#8221; is enabled; and, of course, do NOT select &#8220;Do not store calculation results &#8211; recalculate as needed&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James McIlwrath</title>
		<link>http://sixfriedrice.com/wp/script-triggers-filter-as-you-type/comment-page-1/#comment-1675</link>
		<dc:creator>James McIlwrath</dc:creator>
		<pubDate>Wed, 11 Feb 2009 21:45:13 +0000</pubDate>
		<guid isPermaLink="false">http://sixfriedrice.com/wp/script-triggers-filter-as-you-type/#comment-1675</guid>
		<description>I have used other database development systems that offer this kind of functionality built-in. For example, Visual FoxPro had a function called IncrementalSearch().

A client wants me to re-design a twenty-five year old database app. They do heads-down data entry and this &quot;spotlight filter&quot; functionality is one of the most important things to her. Without it, I wouldn&#039;t get the job. I&#039;m just learning to use FMP and was discouraged to learn that I would have to re-invent the wheel.

Thanks to David Graham for saving everybody a great deal of time and money. It&#039;s an elegant solution.</description>
		<content:encoded><![CDATA[<p>I have used other database development systems that offer this kind of functionality built-in. For example, Visual FoxPro had a function called IncrementalSearch().</p>
<p>A client wants me to re-design a twenty-five year old database app. They do heads-down data entry and this &#8220;spotlight filter&#8221; functionality is one of the most important things to her. Without it, I wouldn&#8217;t get the job. I&#8217;m just learning to use FMP and was discouraged to learn that I would have to re-invent the wheel.</p>
<p>Thanks to David Graham for saving everybody a great deal of time and money. It&#8217;s an elegant solution.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
