<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-21442545</id><updated>2011-07-30T17:35:47.824-05:00</updated><title type='text'>Rob's TIMSS Blog</title><subtitle type='html'>My discoveries and ramblings of TIMSS/Personify.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default?start-index=101&amp;max-results=100'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>122</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-21442545.post-736979282131024073</id><published>2009-05-04T13:52:00.003-05:00</published><updated>2009-08-03T08:24:36.686-05:00</updated><title type='text'>Moving...</title><content type='html'>I am moving my blog. We have created a social site for TAUG that I have moved my posts to and new posts will be made there.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://tmar.higherlogic.com/"&gt;http://tmar.higherlogic.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Your login is using our Single Sign-on and should be the same as you would have used to register for TAUG.&lt;br /&gt;&lt;br /&gt;Come on over and setup your profile and create your own Personify Blog!&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS5 TIMSS6 &amp;amp; Personify&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-736979282131024073?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/736979282131024073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=736979282131024073&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/736979282131024073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/736979282131024073'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2009/05/moving.html' title='Moving...'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-7782088792667363775</id><published>2008-12-17T16:41:00.001-05:00</published><updated>2008-12-17T16:47:33.723-05:00</updated><title type='text'>Personify Hot Keys</title><content type='html'>Yes Virginia, there are hot keys in Personify.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;F9&lt;/strong&gt; – Opens Audit Info screen&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Ctrl+S&lt;/strong&gt; – Save&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Ctrl+F&lt;/strong&gt; – Takes to Search screen with the results that are already available&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Ctrl+R&lt;/strong&gt; – Takes to Search screen after clearing the results and the filters that were applied earlier&lt;/li&gt;&lt;li&gt;&lt;strong&gt;F5 &lt;/strong&gt;– Refresh&lt;/li&gt;&lt;li&gt;&lt;strong&gt;F1 &lt;/strong&gt;– Accesses the context-sensitive online help&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Applies to: Personify&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-7782088792667363775?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/7782088792667363775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=7782088792667363775&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/7782088792667363775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/7782088792667363775'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2008/12/personify-hot-keys.html' title='Personify Hot Keys'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-7907011843349913076</id><published>2008-12-05T12:16:00.000-05:00</published><updated>2008-12-05T12:19:05.132-05:00</updated><title type='text'>TIMSS 6: QAS Address Validation</title><content type='html'>Looks like there is another TIMSS blogger out there.  Nice job Flavio!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://flavio-kb.blogspot.com/2008/11/how-to-enable-qas-address-validation.html"&gt;How to Enable QAS Address Validation with TIMSS&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS 6&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-7907011843349913076?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/7907011843349913076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=7907011843349913076&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/7907011843349913076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/7907011843349913076'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2008/12/timss-6-qas-address-validation.html' title='TIMSS 6: QAS Address Validation'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-871880414916826784</id><published>2008-11-12T16:43:00.002-05:00</published><updated>2008-11-12T17:01:37.735-05:00</updated><title type='text'>Notification with Calendar Attachement</title><content type='html'>So you are sending an order confirmation to your meeting attendees when they register (using Personify's Notification Services) and you want to attach an Outlook ICS file to put the meeting in their Outlook Calendar. All you need to do is have a notification event for that meeting and attach the ICS file to the notification email.&lt;br /&gt;&lt;br /&gt;An ICS file is a simple file defining you event. Details can be found here: &lt;a href="http://en.wikipedia.org/wiki/ICalendar"&gt;http://en.wikipedia.org/wiki/ICalendar&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Create you event on your calendar, then click on &lt;strong&gt;&lt;em&gt;Actions&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;Forward as iCalendar&lt;/em&gt;&lt;/strong&gt;. The file in the email is an ICS file that you can attach to your notification emails.&lt;br /&gt;&lt;br /&gt;If you open the ICS file in &lt;strong&gt;&lt;em&gt;NotePad&lt;/em&gt;&lt;/strong&gt; it will look something like this:&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;BEGIN:VCALENDAR&lt;br /&gt;PRODID:-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN&lt;br /&gt;VERSION:2.0&lt;br /&gt;METHOD:REQUEST&lt;br /&gt;BEGIN:VEVENT&lt;br /&gt;DTSTART:20081112T140000Z&lt;br /&gt;DTEND:20081114T210000Z&lt;br /&gt;LOCATION:Somewhere Sunny&lt;br /&gt;TRANSP:OPAQUE&lt;br /&gt;SEQUENCE:0&lt;br /&gt;X-MICROSOFT-DISALLOW-COUNTER:TRUE&lt;br /&gt;UID:040000008200E00074C5B7101A82E008000000008014BB16AD44C9010000000000000000100&lt;br /&gt;000002EA11601D9E28D4A9CEE04CA5EDE5162&lt;br /&gt;DTSTAMP:20081112T151124Z&lt;br /&gt;DESCRIPTION:Here are the details of my Annual Meeting\n&lt;br /&gt;SUMMARY:Annual Meeting&lt;br /&gt;PRIORITY:5&lt;br /&gt;X-MICROSOFT-CDO-IMPORTANCE:1&lt;br /&gt;CLASS:PUBLIC&lt;br /&gt;END:VEVENT&lt;br /&gt;END:VCALENDAR &lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Not to complex.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: Personify&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-871880414916826784?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/871880414916826784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=871880414916826784&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/871880414916826784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/871880414916826784'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2008/11/notification-with-calendar-attachement.html' title='Notification with Calendar Attachement'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-5919648923445978817</id><published>2008-11-04T16:13:00.000-05:00</published><updated>2008-11-04T16:27:22.790-05:00</updated><title type='text'>The Personify OPEN Summit</title><content type='html'>&lt;img src="http://4.bp.blogspot.com/_jbCAgkO4wAQ/SRC7q4y6lKI/AAAAAAAACW8/bDEEzrVWRSQ/s320/posbadge.jpg" align="right" border="0" /&gt;So have you been wondering what I've been doing since joining TMA Resources? Well now is your chance to see: come to the &lt;a href="http://www.tmaresources.com/opensummit/"&gt;Personify Open Summit&lt;/a&gt;, December 1st &amp;amp; 2nd in Washington, DC at the Ronald Reagan Building &amp;amp; International Trade Center.  &lt;br /&gt;&lt;br /&gt;If you were at the ASAE annual meeting in San Diego back in August, you saw the launch of Personify Open, which promoted the open API model, the Personify platform, and our partners who are integrating their products with Personify.  The Personify Open Summit takes things a step further by providing association professionals the opportunity to learn how the open API model is revolutionizing the way associations conduct business.&lt;br /&gt;&lt;br /&gt;Keynote speaker &lt;a href="http://www.tmaresources.com/opensummit/speakers.html"&gt;JP Morgenthal&lt;/a&gt;, tech evangelist and emerging technologies thought leader, will kick off the Open Summit with a presentation on the value of the open API model and how this model is revolutionizing the way associations conduct business.&lt;br /&gt;&lt;br /&gt;Then several TMA Resources’ solutions partners will demonstrate how they have used this model to build out-of-the-box integrations between their products and Personify.  As the Partnership Manager, my job is to get partners to build standard out-of-the-box integrations with Personify.  We will have &lt;a href="http://www.tmaresources.com/opensummit/partners.html"&gt;partners show their integrations &lt;/a&gt;with content management systems, email marketing, exhibition management, social neworking applications, and online customer support.&lt;br /&gt;&lt;br /&gt;The second day of the Personify Open Summit is designed for developers and those interested in getting into the nuts and bolts of the Personify platform. Similar to the Developer Day held at the TAUG conference in Louisville, this course will provide a hands-on, in-depth technical tour of Personify.  There will be intro and advanced tracks.&lt;br /&gt;&lt;br /&gt;You can register for just the first day or for both.  Learn more at &lt;a title="http://www.tmaresources.com/opensummit" href="http://www.tmaresources.com/opensummit"&gt;http://www.tmaresources.com/opensummit&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Hope to see you there!&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: Personify&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-5919648923445978817?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/5919648923445978817/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=5919648923445978817&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/5919648923445978817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/5919648923445978817'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2008/11/personify-open-summit.html' title='The Personify OPEN Summit'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_jbCAgkO4wAQ/SRC7q4y6lKI/AAAAAAAACW8/bDEEzrVWRSQ/s72-c/posbadge.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-4315021523074188873</id><published>2008-10-08T13:39:00.002-05:00</published><updated>2008-10-08T13:52:27.457-05:00</updated><title type='text'>Personify: Spell checking a Text Box</title><content type='html'>So you have added a text box to a form in Personify so your users can type in a paragraph about something or other. Wouldn't it be great if you could spell check what they have entered?&lt;br /&gt;&lt;br /&gt;Well you can.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5254855593294066002" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_jbCAgkO4wAQ/SOz_UhhEcVI/AAAAAAAACV8/i9-u3STb7Do/s320/Spell_Check.JPG" border="0" /&gt;&lt;br /&gt;Put a button on the form and for the command use:&lt;br /&gt;&lt;br /&gt;cmd://Form/DoSpellCheck?ControlName=&lt;strong&gt;&lt;em&gt;name of your control&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;so if you added a text box called &lt;strong&gt;&lt;em&gt;txtCompDescr&lt;/em&gt;&lt;/strong&gt;, the command would be:&lt;br /&gt;&lt;br /&gt;cmd://Form/DoSpellCheck?ControlName=txtCompDescr&lt;br /&gt;&lt;br /&gt;This opens a dialog box that spell checks the data in the control.&lt;/p&gt;&lt;img id="BLOGGER_PHOTO_ID_5254857757842803858" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_jbCAgkO4wAQ/SO0BShFtDJI/AAAAAAAACWE/rjFA4O3j8Eg/s320/Spell_Check2.JPG" border="0" /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: Personify&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-4315021523074188873?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/4315021523074188873/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=4315021523074188873&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/4315021523074188873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/4315021523074188873'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2008/10/personify-spell-checking-text-box.html' title='Personify: Spell checking a Text Box'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_jbCAgkO4wAQ/SOz_UhhEcVI/AAAAAAAACV8/i9-u3STb7Do/s72-c/Spell_Check.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-1691750377359110065</id><published>2008-09-23T16:02:00.001-05:00</published><updated>2008-09-23T16:21:37.843-05:00</updated><title type='text'>Running Personify on a Mac</title><content type='html'>Can you run Personify on Mac OS X? Nope. That's usually not a problem as the people who use Macs at an association usually don't need access to the AMS.&lt;br /&gt;&lt;br /&gt;However, if you really need to have Personify (or TIMSS) on a Mac, there is a program for you can buy that allows you to run Windows applications on a Mac called &lt;strong&gt;&lt;em&gt;Parallels Desktop for Mac: &lt;/em&gt;&lt;/strong&gt;&lt;a href="http://www.parallels.com/"&gt;http://www.parallels.com/&lt;/a&gt; .&lt;br /&gt;&lt;br /&gt;You don't even have to reboot your machine as it runs in "parallel". And since it is an actual install of Windows and not just an emulation, it works just like the real thing.   For $80, it a bargain.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS5, TIMSS6, &amp;amp; Personify&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-1691750377359110065?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/1691750377359110065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=1691750377359110065&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/1691750377359110065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/1691750377359110065'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2008/09/running-personify-on-mac.html' title='Running Personify on a Mac'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-2391035043057433194</id><published>2008-09-10T17:18:00.000-05:00</published><updated>2008-09-10T17:43:02.229-05:00</updated><title type='text'>Personify:  Passing info to a Web browser URL</title><content type='html'>One of the things I like to show off with the Partner integrations in Personify is pulling up a customer in Personify and having a tab that has a Web browser window which pulls up that customer's information in the partner application.&lt;br /&gt;&lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5244521798976676434" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_jbCAgkO4wAQ/SMhIyhzMIlI/AAAAAAAABlg/Nnja4LLKl6I/s320/HL_in_Personify.JPG" border="0" /&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;This is done by simply creating a tab with a Web Browser control on it. The key is in the Code behind the screen and when calling the Open method with the the master customer id added to the URL.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;WebBrowser1.Open(String.Concat("http://tma.higherlogic.com/Personify.aspx?MasterCustomerId=", Context.MasterCustomerId, "&amp;amp;SubCustomerId=", Context.SubCustomerId))&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So this will open a tab with the current customer's information. VERY COOL!&lt;/p&gt;&lt;p&gt;Obviously the URL you are calling will need to know what to do with the master customer id to pull display their informaiton. You will also want include code to refresh the browser window when you change customers.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Applies to: Personify &lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-2391035043057433194?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/2391035043057433194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=2391035043057433194&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/2391035043057433194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/2391035043057433194'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2008/09/personify-passing-info-to-web-browser.html' title='Personify:  Passing info to a Web browser URL'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_jbCAgkO4wAQ/SMhIyhzMIlI/AAAAAAAABlg/Nnja4LLKl6I/s72-c/HL_in_Personify.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-7502327306795714086</id><published>2008-05-09T15:15:00.001-05:00</published><updated>2008-05-09T15:25:13.060-05:00</updated><title type='text'>VeriSign --&gt; PayPal</title><content type='html'>In 2005, PayPal acquired VeriSign’s payment gateway product Payflow Pro, which is integrated into TIMSS and Personify. As a part of the re-branding from VeriSign to PayPal they are updating their host URLs&lt;br /&gt;&lt;br /&gt;- The new pilot host URL is: pilot-payflowpro.paypal.com&lt;br /&gt;- The new production host URL is: payflowpro.paypal.com&lt;br /&gt;&lt;br /&gt;The verisign.com host URLs are still available and will be until 2010. However, they suggest that you update your application(s) to the new paypal.com domain host URLs at your earliest convenience.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6 &amp;amp; Personify&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-7502327306795714086?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/7502327306795714086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=7502327306795714086&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/7502327306795714086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/7502327306795714086'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2008/05/verisign-paypal.html' title='VeriSign --&gt; PayPal'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-2557362825357194782</id><published>2008-03-26T17:05:00.004-05:00</published><updated>2008-03-26T17:10:07.578-05:00</updated><title type='text'>Personify Idea Manager</title><content type='html'>On many of the screens in Personify you will see a light bulb at the top right with the Search, Save, &amp;amp; Refresh buttons.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp0.blogger.com/_jbCAgkO4wAQ/R-rGG1w9yqI/AAAAAAAAAo0/2WqTESAf83g/s1600-h/lighbulb.PNG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5182172142057147042" style="CURSOR: hand" alt="" src="http://bp0.blogger.com/_jbCAgkO4wAQ/R-rGG1w9yqI/AAAAAAAAAo0/2WqTESAf83g/s320/lighbulb.PNG" border="0" /&gt;&lt;/a&gt; &lt;p&gt;&lt;/p&gt;&lt;br /&gt;This icon is for the &lt;strong&gt;&lt;em&gt;Personify Idea Manager&lt;/em&gt;&lt;/strong&gt;. All it does is allow users to send emails to a specific address. If your users are working on a screen and have an idea, they can click on the light bulb to send an email. The &lt;strong&gt;&lt;em&gt;To:&lt;/em&gt;&lt;/strong&gt; address is controlled by a system parameter: &lt;strong&gt;IDEA_MANAGER_DEST_ADDRESS.&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;p&gt;TMA Resources uses it internally for ideas related to Personify, however you could obviously reuse it for something else, setting the email address to one that would is more meaningful for you.&lt;/p&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: Personify&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-2557362825357194782?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/2557362825357194782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=2557362825357194782&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/2557362825357194782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/2557362825357194782'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2008/03/personify-idea-manager.html' title='Personify Idea Manager'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_jbCAgkO4wAQ/R-rGG1w9yqI/AAAAAAAAAo0/2WqTESAf83g/s72-c/lighbulb.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-5716125451219237684</id><published>2008-03-12T12:59:00.002-05:00</published><updated>2008-03-12T13:03:03.548-05:00</updated><title type='text'>CUS_DUP_MERGE_TABLE</title><content type='html'>When merging 2 customer records, TIMSS 6 &amp;amp; Personify use a lookup table to see which columns in which tables should be moved to the retained customer: &lt;strong&gt;&lt;em&gt;CUS_DUP_MERGE_TABLE&lt;/em&gt;&lt;/strong&gt; &amp;amp; &lt;strong&gt;&lt;em&gt;CUS_DUP_MERGE_COLUMN.&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;There have been a couple postings on the Yahoo Group about tables not being merged. For them to be merged the table and associated column must be in these tables with the appropriate action (MERGE/DELETE).&lt;br /&gt;&lt;br /&gt;To see what tables are missing, I wrote the following query:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;select c.table_name, c.column_name &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;from INFORMATION_SCHEMA.COLUMNS c, INFORMATION_SCHEMA.TABLES t &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;where c.DOMAIN_NAME='CUSTOMER_ID' -- user defined data type&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;and c.table_name=t.table_name &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;and t.table_type='BASE TABLE'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;and not exists (select 1 from dbo.CUS_DUP_MERGE_TABLE d &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;where d.table_name=c.table_name)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;order by c.table_name, c.column_name&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;This looks for tables in the database schema that have a column with a type of &lt;strong&gt;&lt;em&gt;CUSTOMER_ID&lt;/em&gt;&lt;/strong&gt; that are not in the &lt;strong&gt;&lt;em&gt;CUS_DUP_MERGE_TABLE&lt;/em&gt;&lt;/strong&gt; table.&lt;br /&gt;&lt;br /&gt;If the table (and column) is missing, then the table will not be merged. If it's a table added by you, or one that was added by TMAR but was not added for some reason in an upgrade, it needs to be added for the merge to work correctly.&lt;br /&gt;&lt;br /&gt;This will return a lot of temporary tables. Including all those tables will impact performance of the merge process, so I would only add the ones that you really need to be there. For example, if you use the &lt;strong&gt;&lt;em&gt;ORD660_Processed&lt;/em&gt;&lt;/strong&gt; table to generate a letter using a Crystal Report and need that data to remain consistent after records are merged, add it.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6 &amp;amp; Personify&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-5716125451219237684?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/5716125451219237684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=5716125451219237684&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/5716125451219237684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/5716125451219237684'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2008/03/cusdupmergetable.html' title='CUS_DUP_MERGE_TABLE'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-7152403559517849554</id><published>2008-02-18T08:50:00.001-05:00</published><updated>2008-02-18T15:00:17.024-05:00</updated><title type='text'>Meeting Packages</title><content type='html'>&lt;div&gt;When we setup the TAUG08 meeting product, we wanted to automatically include some sessions on the order like the &lt;em&gt;Welcome Reception, Ask TMA Resources, A Night at the Races&lt;/em&gt;, etc. To do this, we created a package with all the sessions we wanted to include on the order.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;img id="BLOGGER_PHOTO_ID_5166458725881339122" style="margin: 0px auto 10px; display: block; text-align: center;" alt="" src="http://bp1.blogger.com/_jbCAgkO4wAQ/R7Ly1o7f3PI/AAAAAAAAAnk/vkbaxWzSyXs/s320/Package_Def.PNG" border="0" /&gt;&lt;/div&gt;Then we included the package on the rate codes for the meeting.&lt;br /&gt;&lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5166459421666041090" style="margin: 0px auto 10px; display: block; text-align: center;" alt="" src="http://bp3.blogger.com/_jbCAgkO4wAQ/R7LzeI7f3QI/AAAAAAAAAns/owh3jO26hOA/s320/TAUG_mtg_pkg.PNG" border="0" /&gt;And since it's done for the rate code, different components can be added depending on the rate you get. So members (who get the Member rate) can get one package of included sessions, and non-members (who get the List rate) can get a different package.&lt;/p&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6 &amp;amp; Personify&lt;/em&gt;&lt;/strong&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-7152403559517849554?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/7152403559517849554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=7152403559517849554&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/7152403559517849554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/7152403559517849554'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2008/02/meeting-packages.html' title='Meeting Packages'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_jbCAgkO4wAQ/R7Ly1o7f3PI/AAAAAAAAAnk/vkbaxWzSyXs/s72-c/Package_Def.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-8540363344060997981</id><published>2008-02-08T16:53:00.000-05:00</published><updated>2008-02-08T16:59:35.750-05:00</updated><title type='text'>Personify Enhancements</title><content type='html'>Now that I'm on the "inside" I can tell you a bit about how product marketing works to get new features into the product. If you have heard of &lt;a href="http://pragmaticmarketing.com/"&gt;Pragmatic Marketing&lt;/a&gt;, that is the methodology we are following.&lt;br /&gt;&lt;br /&gt;We are using a product called &lt;a href="http://www.featureplan.com/"&gt;FeaturePlan&lt;/a&gt; to collect data about what should go into the product. Enhancement requests that are submitted though the customer service portal, items you tell your PM about, things our sales people hear from prospects, market reserach and competitive analysis are all entered in and linked to problem statements. Problem statements receive a score based on all those inputs.&lt;br /&gt;&lt;br /&gt;Problems statments that have high scores then get requriements gathered by product marketing, and designs are created from these requirements to go into the product.&lt;br /&gt;&lt;br /&gt;How can you help? &lt;strong&gt;Tell us what you want.&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;Not only by submitting enhancement requests, but also volunteering for customer reserach. In many cases we will send questions to the &lt;a href="http://tech.groups.yahoo.com/group/TIMSS/"&gt;Yahoo Group&lt;/a&gt; and/or ask for input from customer directly. Please help us make a great product.&lt;br /&gt;&lt;br /&gt;Most recently we launched a new and improved the Notifications module for Personify. I sent an email to the &lt;a href="http://tech.groups.yahoo.com/group/TIMSS/"&gt;Yahoo Group&lt;/a&gt; asking for information on notifications used and wanted. Those who responded had input into how the design was done and were invited to see a prototype and give more feedback. Then when the design was done, they were invited back to view the finished product and see if we got it right.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: Personify&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-8540363344060997981?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/8540363344060997981/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=8540363344060997981&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/8540363344060997981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/8540363344060997981'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2008/02/personify-enhancements.html' title='Personify Enhancements'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-1107389005358914919</id><published>2008-01-22T10:33:00.001-05:00</published><updated>2008-02-06T13:51:55.462-05:00</updated><title type='text'>TAUG 2008</title><content type='html'>&lt;div&gt;&lt;div&gt;&lt;img id="BLOGGER_PHOTO_ID_5158321174113640050" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://bp2.blogger.com/_jbCAgkO4wAQ/R5YJxyRrXnI/AAAAAAAAAmc/73efTgDS3Sc/s320/taug08_vert.jpg" border="0" /&gt;Is it really TAUG time again? Boy time flies.&lt;br /&gt;&lt;br /&gt;Now that I'm on the "inside" I can see this year's TAUG will be one of the best. Not only do we have some great session planned, but a lot of fun activities. TAUG is a great opportunity to learn about TIMSS &amp;amp; Personify, and to meet your counterparts at other organizations (putting faces to the names from the &lt;a href="http://tech.groups.yahoo.com/group/TIMSS/"&gt;Yahoo Group&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;So go to &lt;a href="http://www.taugconference.com/"&gt;TAUGConference.com&lt;/a&gt; now to register. The creative people in our Marketing Department are determined to make Sean C. and myself into &lt;strong&gt;&lt;em&gt;cartoon characters&lt;/em&gt;&lt;/strong&gt; with pages like &lt;strong&gt;&lt;em&gt;Just Ask Rob&lt;/em&gt;&lt;/strong&gt; &amp;amp; &lt;strong&gt;&lt;em&gt;Where in Louisville is Sean?&lt;/em&gt;&lt;/strong&gt; Those pages will be updated weekly so you can have a good laugh at our expense. &lt;/div&gt;&lt;img id="BLOGGER_PHOTO_ID_5163941636368294530" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://bp2.blogger.com/_jbCAgkO4wAQ/R6oBjvyU4oI/AAAAAAAAAnc/kucJKJkVPRk/s320/Just+Ask+Rob.gif" border="0" /&gt; &lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5163941559058883186" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://bp0.blogger.com/_jbCAgkO4wAQ/R6oBfPyU4nI/AAAAAAAAAnU/ZWpnt9LBihM/s320/Where+is+SC.jpg" border="0" /&gt; &lt;div&gt;&lt;br /&gt;&lt;span style="color:#006600;"&gt;&lt;span style="color:#000000;"&gt;You will also find information on the &lt;a href="http://www.taugconference.com/"&gt;TAUGConference.com&lt;/a&gt; site about how we are trying to make &lt;strong&gt;&lt;span style="color:#006600;"&gt;TAUG&lt;/span&gt;&lt;/strong&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#006600;"&gt;&lt;strong&gt;green&lt;/strong&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;. You may have seen the post from Lauren R. that we will buy a lunch for those who decide to drive to TAUG instead of fly.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS5, TIMSS6, Personify&lt;/em&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-1107389005358914919?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/1107389005358914919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=1107389005358914919&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/1107389005358914919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/1107389005358914919'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2008/01/taug-2008.html' title='TAUG 2008'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_jbCAgkO4wAQ/R5YJxyRrXnI/AAAAAAAAAmc/73efTgDS3Sc/s72-c/taug08_vert.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-8263405579942078886</id><published>2007-12-24T16:41:00.000-05:00</published><updated>2007-12-24T09:40:01.130-05:00</updated><title type='text'>TIMSS 6: Adding views to the Search Screen</title><content type='html'>In TIMSS 6, you can add views to the APPQUERYSEARCH screen. First create the views you want to search with. Make sure the view includes the MASTER_CUSTOMER_ID and SUB_CUSTOMER_ID.&lt;br /&gt;&lt;br /&gt;Next use Extender to add to the OnOpening event of the screen you want to add the view to the search. If that's CUS001, then the code would look like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;Public Sub CUS001C_OnOpening ( ByRef MyForm As Object)&lt;br /&gt;&lt;br /&gt;MyForm.SearchViewNames =&lt;br /&gt;“Cus_Address_Alias_C_VW,Cus_OSR_Relationships_VW,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;Cus_ISR_Relationships_VW,Cus_Proj_Mgr_Relationships_VW”&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;End Sub&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5146173782534872674" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://bp1.blogger.com/_jbCAgkO4wAQ/R2rhyiRrXmI/AAAAAAAAAmU/5o91c3MSD5M/s320/search_views.PNG" border="0" /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-8263405579942078886?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/8263405579942078886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=8263405579942078886&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/8263405579942078886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/8263405579942078886'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/12/timss-6-adding-views-to-search-screen.html' title='TIMSS 6: Adding views to the Search Screen'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_jbCAgkO4wAQ/R2rhyiRrXmI/AAAAAAAAAmU/5o91c3MSD5M/s72-c/search_views.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-6653973460169092186</id><published>2007-12-13T10:39:00.001-05:00</published><updated>2007-12-15T15:10:51.349-05:00</updated><title type='text'>Google Maps</title><content type='html'>So you've added a &lt;a href="http://robtimss.blogspot.com/2006/10/timss-6-opening-ie-from-timss.html"&gt;Google search button &lt;/a&gt;to a screen to search for a customer. Want to get launch Google Maps from within &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;TIMSS&lt;/span&gt;/Personify? Do the same thing (launch a browser window) only pass the address in the URL string.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://maps.google.com/maps?f=q&amp;amp;hl=en&amp;amp;q=1919+gallows+rd+22182" hl="en&amp;amp;q="&gt;http://maps.google.com/maps?f=q&amp;amp;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;hl&lt;/span&gt;=en&amp;amp;q=1919+gallows+rd+22182&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The information in the URL above after "q=" is the address we are &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;querying&lt;/span&gt; on with pluses instead of spaces.&lt;br /&gt;&lt;br /&gt;Want directions?  Then you’d use the start address (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;SADDR&lt;/span&gt;) and destination address (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;DADDR&lt;/span&gt;) to pass both addresses.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;a title="http://maps.google.com/maps?f=" href="http://maps.google.com/maps?f=d&amp;amp;hl=en&amp;amp;saddr=1919+gallows+rd+22182&amp;amp;daddr=1600+Pennsylvania+Ave+NW+20006" hl="en&amp;amp;saddr=" daddr="6549+grange+ln+2231595.677068&amp;amp;sspn="&gt;http://maps.google.com/maps?f=d&amp;amp;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;hl&lt;/span&gt;=en&lt;/a&gt;&lt;a href="http://maps.google.com/maps?f=d&amp;amp;hl=en&amp;amp;saddr=1919+gallows+rd+22182&amp;amp;daddr=1600+Pennsylvania+Ave+NW+20006"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a title="http://maps.google.com/maps?f=" href="http://maps.google.com/maps?f=d&amp;amp;hl=en&amp;amp;saddr=1919+gallows+rd+22182&amp;amp;daddr=1600+Pennsylvania+Ave+NW+20006" hl="en&amp;amp;saddr=" daddr="6549+grange+ln+2231595.677068&amp;amp;sspn="&gt;&amp;amp;&lt;/a&gt;&lt;a title="http://maps.google.com/maps?f=" href="http://maps.google.com/maps?f=d&amp;amp;hl=en&amp;amp;saddr=1919+gallows+rd+22182&amp;amp;daddr=1600+Pennsylvania+Ave+NW+20006" hl="en&amp;amp;saddr=" daddr="6549+grange+ln+2231595.677068&amp;amp;sspn="&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;saddr&lt;/span&gt;=1919+gallows+rd+22182&lt;/a&gt;&lt;a href="http://maps.google.com/maps?f=d&amp;amp;hl=en&amp;amp;saddr=1919+gallows+rd+22182&amp;amp;daddr=1600+Pennsylvania+Ave+NW+20006"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a title="http://maps.google.com/maps?f=" href="http://maps.google.com/maps?f=d&amp;amp;hl=en&amp;amp;saddr=1919+gallows+rd+22182&amp;amp;daddr=1600+Pennsylvania+Ave+NW+20006" hl="en&amp;amp;saddr=" daddr="6549+grange+ln+2231595.677068&amp;amp;sspn="&gt;&amp;amp;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;daddr&lt;/span&gt;=1600+Pennsylvania+Ave+NW+20006&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;TIMSS&lt;/span&gt;6 &amp;amp; Personify&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-6653973460169092186?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/6653973460169092186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=6653973460169092186&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/6653973460169092186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/6653973460169092186'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/12/google-maps.html' title='Google Maps'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-8313487958165441423</id><published>2007-12-03T08:07:00.000-05:00</published><updated>2007-12-01T08:19:24.002-05:00</updated><title type='text'>Logging TCMS Users</title><content type='html'>This one comes from my replacement at COF: Russ, but I've heard requests for this functionality at TAUG.&lt;br /&gt;&lt;br /&gt;So you want to track customer logins to TCMS, but the only information stored in the WEB_USER table is their last login.  If you put a trigger on that table to populate a log table (or even CUS_ACTIVITY) every time the last login time changes, you've done it as this field is updated every time the customer logs in.&lt;br /&gt;&lt;br /&gt;Not only can you track the logins, but using the same methodology you can track changes to user names  and passwords also stored in that table.  You can also track the MODOPER to see who made the change:  the customer or a staff member.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Applies to: TIMSS6 &amp;amp; Personify&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-8313487958165441423?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/8313487958165441423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=8313487958165441423&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/8313487958165441423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/8313487958165441423'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/12/logging-tcms-users.html' title='Logging TCMS Users'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-2737352537428136544</id><published>2007-11-28T09:19:00.001-05:00</published><updated>2007-11-28T09:34:27.067-05:00</updated><title type='text'>Min &amp; Max Adjusted Price</title><content type='html'>When setting up a product's pricing, you may have noticed &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;fields&lt;/span&gt; for the Minimum &amp;amp; Maximum Adjusted Price. These fields are used in &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;conjunction&lt;/span&gt; with the &lt;a href="http://robtimss.blogspot.com/2006/12/timss-6-short-pay-codes.html"&gt;Short Pay code&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5137895321516465538" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://bp2.blogger.com/_jbCAgkO4wAQ/R014krwhXYI/AAAAAAAAAlg/naIlmKvbpOc/s320/min-max_adj_price.GIF" border="0" /&gt;&lt;br /&gt;When the Short Pay code is &lt;strong&gt;REJECT&lt;/strong&gt;, you can't edit the field, but BOTH the Min and Max are set to the full price of the product. Thus for the order line to be Active, the full price has to be paid.&lt;br /&gt;&lt;br /&gt;When the Short Pay code is &lt;strong&gt;AR&lt;/strong&gt;, you can't edit the field, but the Max is set to the full price of the product and the Min is set to zero. Thus for the order line to be Active, anything can be paid, and the remainder is a receivable on the order.&lt;br /&gt;&lt;br /&gt;When the Short Pay code is &lt;strong&gt;ADJUST&lt;/strong&gt;, you &lt;em&gt;CAN&lt;/em&gt; edit the field. The Max is the largest amount that the price will be adjusted up to on an order. For example if the price is $100 and the Max is $200 and a customer pays $150, the price of the line item will be adjusted from $100 to $150. However, if they paid $500, the price of the line item would only be adjusted to $200.&lt;br /&gt;&lt;br /&gt;The Min is the smallest amount the price can be adjusted to for the order to be active. For example if the price is $100 and the Min is $50 and a customer pays $75, the price of the line item will be adjusted from $100 to $75. However, if they paid $25, the price would not be adjusted that low and the order would not be made Active.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;TIMSS&lt;/span&gt;6 &amp;amp; Personify&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-2737352537428136544?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/2737352537428136544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=2737352537428136544&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/2737352537428136544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/2737352537428136544'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/11/min-max-adjusted-price.html' title='Min &amp; Max Adjusted Price'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_jbCAgkO4wAQ/R014krwhXYI/AAAAAAAAAlg/naIlmKvbpOc/s72-c/min-max_adj_price.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-2552485386946270031</id><published>2007-11-12T13:42:00.000-05:00</published><updated>2007-11-12T12:01:06.222-05:00</updated><title type='text'>.NET WebService Studio</title><content type='html'>Looking for a good tool to call Web Services? Try the .NET WebService Studio 2.0. This tool will&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;...invoke webmethods interactively. The user can provide a WSDL endpoint. On clicking button Get the tool fetches the WSDL, generates .NET proxy from the WSDL and displays the list of methods available. The user can choose any method and provide the required input parameters. On clicking Invoke the SOAP request is sent to the server and the response is parsed to display the return value.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It can be found &lt;a href="http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=65A1D4EA-0F7A-41BD-8494-E916EBC4159C"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS5, TIMSS6, &amp;amp; Personify&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-2552485386946270031?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/2552485386946270031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=2552485386946270031&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/2552485386946270031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/2552485386946270031'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/11/net-webservice-studio.html' title='.NET WebService Studio'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-3561715852081293594</id><published>2007-11-05T19:16:00.000-05:00</published><updated>2007-11-06T09:00:07.936-05:00</updated><title type='text'>Module Abbrivations</title><content type='html'>Here is a listing of the 3 letter abriviations for the diffent modules in TIMSS &amp;amp; Personify:&lt;br /&gt;&lt;br /&gt;ABC - ABC Subsystem&lt;br /&gt;ABS - Abstract Subsystem&lt;br /&gt;ADR - Address Validation Subsystem&lt;br /&gt;ADV - Advertising Subsystem&lt;br /&gt;APP - Application Subsystem&lt;br /&gt;AUD - Audit Logging Subsystem&lt;br /&gt;BPA - BPA Subsystem&lt;br /&gt;CCP - Credit Card Processing Subsystem&lt;br /&gt;COM - Committee Subsystem&lt;br /&gt;CPN - Coupon Subsystem&lt;br /&gt;CRT - Certification&lt;br /&gt;CUS - Customer Subsystem&lt;br /&gt;ECD - Electronic Content Delivery&lt;br /&gt;EFT - Electronic Fund Transfer&lt;br /&gt;FAC - Facility Subsystem&lt;br /&gt;FAR - Accounting Subsystem&lt;br /&gt;FGL - Financial General Ledger&lt;br /&gt;FND - Fund Raising&lt;br /&gt;INV - Inventoried Products Subsystem&lt;br /&gt;LCK - LockBox&lt;br /&gt;MBR - Membership Subsystem&lt;br /&gt;META - Application Metadata&lt;br /&gt;MISC - Miscellaneous Subsytem&lt;br /&gt;MKT - Marketing Subsystem&lt;br /&gt;MRM - Call Center Subsystem&lt;br /&gt;MTG - Meeting Subsystem&lt;br /&gt;ORD - Order Entry Subsystem&lt;br /&gt;PCK - Package Subsystem&lt;br /&gt;SEC - Security Subsystem&lt;br /&gt;SPK - Speaker Subsystem&lt;br /&gt;SUB - Subscription Subsystem&lt;br /&gt;TRN - Transcript&lt;br /&gt;TRS - TIMSS Reporting System&lt;br /&gt;UAR - Un-applied Receipt&lt;br /&gt;USR - User Defined Subsystem&lt;br /&gt;WEB - TIMSS Web (TIMSS e-Commerce)&lt;br /&gt;XBT - Exhibition System&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6 &amp;amp; Personify&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-3561715852081293594?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/3561715852081293594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=3561715852081293594&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/3561715852081293594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/3561715852081293594'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/11/module-abbrivations.html' title='Module Abbrivations'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-384051634440312374</id><published>2007-10-29T09:02:00.000-05:00</published><updated>2007-10-28T18:15:36.602-05:00</updated><title type='text'>Customer URL Format</title><content type='html'>In TIMSS and Personify, you can store a URL for a customer which can be up to 100 characters long (data type of &lt;strong&gt;&lt;em&gt;EMAIL_ADDRESS&lt;/em&gt;&lt;/strong&gt;).&lt;br /&gt;&lt;br /&gt;The question often comes up if one should store the URL with the leading &lt;strong&gt;&lt;em&gt;http:// &lt;/em&gt;&lt;/strong&gt;or leave that off. I found it best to add it in, that way whenever I'm working with the URL most programs will recognize it as such and make it a link.&lt;br /&gt;&lt;br /&gt;However, because the field only holds 100 characters and some URLs are very long, you might want to save the extra 7 characters an not include the &lt;strong&gt;&lt;em&gt;http://.&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The most important thing is that your data is consistent. If all the URLs don't have the &lt;strong&gt;&lt;em&gt;http://&lt;/em&gt;&lt;/strong&gt; you can always add it in later when pull the data.&lt;br /&gt;&lt;br /&gt;Also if you find yourself continuously having URLs that are too long, you can always change the data type for &lt;strong&gt;&lt;em&gt;EMAIL_ADDRESS&lt;/em&gt;&lt;/strong&gt; to be longer.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6 &amp;amp; Personify&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-384051634440312374?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/384051634440312374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=384051634440312374&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/384051634440312374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/384051634440312374'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/10/customer-url-format.html' title='Customer URL Format'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-5980248977181845911</id><published>2007-10-22T08:54:00.000-05:00</published><updated>2007-10-20T13:05:52.436-05:00</updated><title type='text'>TIMSS 6: Inactive Codes in Drop-Downs</title><content type='html'>I have heard many complaints about inactive codes being displayed in drop down boxes in TIMSS. These are displayed for 2 reasons. First, it allows you to search for codes that are inactive. Second, when an inactive code is actually used, the description will be displayed, otherwise the field would be blank.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5123046021612339474" style="margin: 0px auto 10px; display: block; text-align: center;" alt="" src="http://bp2.blogger.com/_jbCAgkO4wAQ/Rxi3Nq4ugRI/AAAAAAAAAlU/C4WcTF9CjXQ/s320/inactive-codes.PNG" border="0" /&gt;&lt;br /&gt;What you can do to clean up this list is change the display order on the inactive codes. In types and codes, when you change a code to inactive, also set the display order to something like 99 so it will be displayed at the end of the listing.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-5980248977181845911?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/5980248977181845911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=5980248977181845911&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/5980248977181845911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/5980248977181845911'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/10/timss-6-inactive-codes-in-drop-downs.html' title='TIMSS 6: Inactive Codes in Drop-Downs'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_jbCAgkO4wAQ/Rxi3Nq4ugRI/AAAAAAAAAlU/C4WcTF9CjXQ/s72-c/inactive-codes.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-4122538002619562525</id><published>2007-10-08T15:58:00.000-05:00</published><updated>2007-10-19T08:59:55.860-05:00</updated><title type='text'>Free DNN Training Videos</title><content type='html'>Personify e-Business was created using DotNetNuke (DNN) version 4. On the DNN site (&lt;a href="http://www.dotnetnuke.com/"&gt;http://www.dotnetnuke.com/&lt;/a&gt;) there are some &lt;a href="http://www.dotnetnuke.com/Resources/Knowledge/BooksandTrainingVideos/tabid/810/Default.aspx"&gt;free training videos&lt;/a&gt; to get you familar with the DNN product and how to work with it.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;They are actually on DNN 3, but it's similar to 4.&lt;/p&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6 &amp;amp; Personify&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-4122538002619562525?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/4122538002619562525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=4122538002619562525&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/4122538002619562525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/4122538002619562525'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/10/free-dnn-training-videos.html' title='Free DNN Training Videos'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-3544844258344125706</id><published>2007-10-01T16:50:00.000-05:00</published><updated>2007-09-29T08:37:56.184-05:00</updated><title type='text'>Search Phone</title><content type='html'>&lt;div&gt;In Personify and TIMSS 6, in the &lt;strong&gt;CUS_COMMUNICATION&lt;/strong&gt; table, there is a column called &lt;strong&gt;SEARCH_PHONE_ADDRESS&lt;/strong&gt;. This field is the phone number with the formatting stripped out. For example,&lt;br /&gt;&lt;br /&gt;7035645200&lt;br /&gt;&lt;br /&gt;instead of&lt;br /&gt;&lt;br /&gt;(703) 564-5200&lt;br /&gt;&lt;br /&gt;In both applications you can customize search screens. You can add this field to your search screens so that your CSRs don't have to enter the formatted number when they want to search by phone number.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6 &amp;amp; Personfiy&lt;/em&gt;&lt;/strong&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-3544844258344125706?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/3544844258344125706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=3544844258344125706&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/3544844258344125706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/3544844258344125706'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/10/search-phone.html' title='Search Phone'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-5585010608134337862</id><published>2007-09-24T09:14:00.000-05:00</published><updated>2007-09-23T06:22:59.492-05:00</updated><title type='text'>Personify: Copying Customer Information</title><content type='html'>&lt;div&gt;So you pull up a customer on the Call Center screen in Personify and you want to copy the customer ID to the clipboard so you can paste it somewhere. You can't highlight it so what do you do?&lt;br /&gt;&lt;br /&gt;If you right click on the customer ID, a little menu pops up with one option: &lt;strong&gt;&lt;em&gt;Copy&lt;/em&gt;&lt;/strong&gt;. This copies it to the clipboard so you can paste it.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://bp3.blogger.com/_jbCAgkO4wAQ/Ru_c1v1QdKI/AAAAAAAAAdc/RfOggoO-wNc/s1600-h/copy_cus_info.GIF"&gt;&lt;img id="BLOGGER_PHOTO_ID_5111546918019822754" style="margin: 0px auto 10px; display: block; text-align: center;" alt="" src="http://bp3.blogger.com/_jbCAgkO4wAQ/Ru_c1v1QdKI/AAAAAAAAAdc/RfOggoO-wNc/s320/copy_cus_info.GIF" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;This also works on the Address and Phone information on the screen.&lt;strong&gt;&lt;em&gt;&lt;br /&gt;&lt;br /&gt;Applies to: Personify&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-5585010608134337862?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/5585010608134337862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=5585010608134337862&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/5585010608134337862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/5585010608134337862'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/09/personify-copying-customer-information.html' title='Personify: Copying Customer Information'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_jbCAgkO4wAQ/Ru_c1v1QdKI/AAAAAAAAAdc/RfOggoO-wNc/s72-c/copy_cus_info.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-1424469569213659814</id><published>2007-09-17T17:08:00.000-05:00</published><updated>2007-09-23T06:23:45.236-05:00</updated><title type='text'>Name Prefix, Suffix &amp; Credential</title><content type='html'>In TIMSS 6 and Personify, an individual's name is made up of different parts, including Prefix, Suffix &amp;amp; Credential fields that are based on types and codes. The types are &lt;strong&gt;NAME_PREFIX&lt;/strong&gt;, &lt;strong&gt;NAME_SUFFIX&lt;/strong&gt;, &lt;strong&gt;CREDENTIALS&lt;/strong&gt;, respectively. You CAN use periods in the code.&lt;br /&gt;&lt;br /&gt;The prefix and suffix are selected from a drop down on the customer name screen. There are options in the System Parameters (&lt;strong&gt;USE_PREFIX_DESCR_LBL&lt;/strong&gt; &amp;amp; &lt;strong&gt;USE_SUFFIX_DESCR_LBL&lt;/strong&gt;) to determine if the code or it's description should be used in the label name.&lt;br /&gt;&lt;br /&gt;For credentials, there is a look up on the customer name screen because you can select more than one credential (use the &lt;strong&gt;&lt;em&gt;crtl&lt;/em&gt;&lt;/strong&gt; key to select more than one). The code is used in the label name, and the description is shown to define the credential (i.e. CPA=Certified Public Accountant).&lt;br /&gt;&lt;br /&gt;As on all codes, you can set a &lt;strong&gt;&lt;em&gt;Display Order&lt;/em&gt;&lt;/strong&gt; to control how these are displayed. You can use this to display the codes with common values first or in a logical order (Jr, Sr, III, IV, etc). If you have a long list of codes, it's probably best to display them alphabetically so your users can easily find what they are looking for.&lt;br /&gt;&lt;br /&gt;&lt;strong style="font-style: italic;"&gt;Applies to: TIMSS6 &amp;amp; Personify&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-1424469569213659814?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/1424469569213659814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=1424469569213659814&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/1424469569213659814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/1424469569213659814'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/09/name-prefix-suffix-credential.html' title='Name Prefix, Suffix &amp; Credential'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-9182838060918928832</id><published>2007-09-10T08:49:00.000-05:00</published><updated>2007-09-09T18:26:04.826-05:00</updated><title type='text'>Personify: Web Services</title><content type='html'>Personify comes with 2 types of Web services: Universal Web services &amp; Simple Web services.&lt;br /&gt;&lt;br /&gt;The Universal Web service essentially wraps the Personify API for Web Service access. You can do just about anything with the Universal Web service, but it may take some knowledge of the Personify application. The Universal Web service is the most flexible approach but also the most complex. In general, it will return whatever you are looking for (including extender fields) but will return a lot of things you probably aren't looking for.&lt;br /&gt;&lt;br /&gt;The Simple Web service is designed to do one thing simply. These Web services have simple parameters and simple return values. They are straight forward and easy to use but can’t do everything. The list of available Simple Web services will grow over time based on market research.&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold; FONT-STYLE: italic"&gt;Applies to: Personify&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-9182838060918928832?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/9182838060918928832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=9182838060918928832&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/9182838060918928832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/9182838060918928832'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/09/personify-web-services.html' title='Personify: Web Services'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-257396825056681161</id><published>2007-09-03T07:08:00.000-05:00</published><updated>2007-09-01T07:10:17.932-05:00</updated><title type='text'>Data Integrity:  Gender &amp; Prefix</title><content type='html'>One script that I ran on a regular basis had to do with a individual's gender and prefix.  In general, they should agree and when they don't, something is wrong.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;select master_customer_id, label_name, gender_code, name_prefix, formal_salutation, nickname&lt;br /&gt;from customer&lt;br /&gt;where customer_status_code='ACTIVE'&lt;br /&gt;and ((gender_code='M' and name_prefix in ('Ms.','Mrs.','Miss'))&lt;br /&gt; or (gender_code='F' and name_prefix in ('Mr.')))&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If I had them all agreeing and then one day there were some that didn't agree it would mean that either someone had just created the record and entered one wrong or someone had changed the name of the customer (instead of creating a new customer record) and changed one but not the other.&lt;br /&gt;&lt;br /&gt;Some further updates I did with these fields would be populating null values, for example if the prefix was &lt;span style="font-weight: bold; font-style: italic;"&gt;Mr. &lt;/span&gt;then the gender is &lt;span style="font-weight: bold; font-style: italic;"&gt;M&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;update customer set gender_code='F'&lt;br /&gt;where record_type='I'&lt;br /&gt;and gender_code is null&lt;br /&gt;and customer_status_code='ACTIVE'&lt;br /&gt;and name_prefix in ('Ms.','Miss','Mrs.')&lt;br /&gt;&lt;br /&gt;update customer set gender_code='M'&lt;br /&gt;where record_type='I'&lt;br /&gt;and gender_code is null&lt;br /&gt;and customer_status_code='ACTIVE'&lt;br /&gt;and name_prefix in ('Mr.')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You could also do the opposite, updating the prefix (and label name, search name, formal salutation, etc.) when the gender is known but the prefix is missing.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Applies to: TIMSS5, TIMSS6, &amp;amp; Personify&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-257396825056681161?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/257396825056681161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=257396825056681161&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/257396825056681161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/257396825056681161'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/09/data-integrity-gender-prefix.html' title='Data Integrity:  Gender &amp; Prefix'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-7975042751533498570</id><published>2007-08-20T07:34:00.000-05:00</published><updated>2007-09-01T06:42:54.773-05:00</updated><title type='text'>PCI Compliance</title><content type='html'>Are TIMSS and Personify PCI compliant? That's not the right question. What you should be asking is if &lt;strong&gt;&lt;em&gt;you&lt;/em&gt;&lt;/strong&gt;, as a merchant, are PCI compliant.&lt;br /&gt;&lt;br /&gt;Much of the Payment Card Industry Data Security Standard (PCI DSS) requirements focus on the security of your network, and having your customer's information protected from external and internal hacks.&lt;br /&gt;&lt;br /&gt;Credit card numbers are stored encrypted in TIMSS and Personify, and future version may not even store credit card numbers. But if you have faxed in order forms laying around the office with credit card numbers on them, then you have a problem and no software can protect you.&lt;br /&gt;&lt;br /&gt;Here are some links so you can find out more and what you need to do:&lt;br /&gt;&lt;a href="https://www.pcisecuritystandards.org/"&gt;https://www.pcisecuritystandards.org/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.pcicomplianceguide.org/"&gt;http://www.pcicomplianceguide.org/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://usa.visa.com/merchants/risk_management/cisp.html?ep=v_sym_cisp"&gt;http://usa.visa.com/merchants/risk_management/cisp.html?ep=v_sym_cisp&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.owasp.org/"&gt;http://www.owasp.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS5, TIMSS6, &amp;amp; Personify&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-7975042751533498570?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/7975042751533498570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=7975042751533498570&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/7975042751533498570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/7975042751533498570'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/08/pci-compliance.html' title='PCI Compliance'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-8092432684876516875</id><published>2007-08-07T07:16:00.000-05:00</published><updated>2007-08-07T07:20:51.890-05:00</updated><title type='text'>Personify:  Debug Tracer</title><content type='html'>Any of you who have been using TIMSS for a long time will remember (and may still use) the &lt;strong&gt;&lt;em&gt;router32.log&lt;/em&gt;&lt;/strong&gt; file which captured all of the SQL statements that were executed by the TIMSS 4.x &amp; 5.x applications. The purpose of this log was to capture what was happening when an error occurred. But the real value I found was learning what pieces of data were stored where by reviewing these SQL statements. It not only helped me understand what was going on, but also where data was stored when I needed to report on it.&lt;br /&gt;&lt;br /&gt;So in Personify, one of the Debug tools is the Debug Tracer (under Tools, Debug, Debug Tracer). This opens a window that logs the commands and SQL statements that are executed by Personify. Very cool. Normally it's not running to improve performance, but you can turn it on to see whats happening on a particular screen.&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5095932078552381426" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://bp0.blogger.com/_jbCAgkO4wAQ/RrhjOd2h9_I/AAAAAAAAAc4/S2M2mcKsclU/s320/debug_tracer.PNG" border="0" /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies: to Personify&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-8092432684876516875?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/8092432684876516875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=8092432684876516875&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/8092432684876516875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/8092432684876516875'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/08/personify-debug-tracer.html' title='Personify:  Debug Tracer'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_jbCAgkO4wAQ/RrhjOd2h9_I/AAAAAAAAAc4/S2M2mcKsclU/s72-c/debug_tracer.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-1349188362315279870</id><published>2007-07-30T13:55:00.000-05:00</published><updated>2007-07-31T14:36:48.080-05:00</updated><title type='text'>TIMSS 6: Personalized Standard Letters</title><content type='html'>In TIMSS 6, you can create standard letters to be used under Contact Tracking. What you might not know is that you can setup Word documents to have merge fields in them so that you can have that standard letter personalized for a customer.&lt;br /&gt;&lt;br /&gt;First you will need to create a template Word document. The standard letters use the CUS_PRIMARY_INFO_VW to pull data into the document, so you need to create a document with fields based on this view.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Open APP100, Ad-Hoc QueriesClick on the ‘Build New Queries’ tab&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Highlight the view ‘CUS_PRIMARY_INFO_VW’&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Within the pane, ‘Fields to Display’ reflect the appropriate fields from the ‘Fields Available’ pane that are within the Word document you will be using.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Click on the ‘Run Query’ button&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Enter a valid value within any of the search fields and click on the ‘Query’ button&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Once data is displayed within the ‘Search Results’ pane, click on the ‘WordMerge’ button&lt;/li&gt;&lt;br /&gt;&lt;li&gt;When asked if you want to open an existing document, choose NO&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Create your document, inserting the appropriate Merge fields and save it.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p&gt;Next setup the Standard Letter with the Word Document.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Open MRM004, Standard Letter Setup&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Click on the appropriate Letter Type and click on the “Add Document” button&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Select the appropriate word document (the one you just created)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Enter an ID in the field labeled “ID” – this is a user-defined value&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Confirm that the correct Application is reflected (if you don’t see the correct application listed within the drop-down options, go to System Types &amp;amp; Codes, Type = APPLICATION_TYPE and add “MSWORD” as a Code value. You’ll need to reopen MRM004 to see this newly added Code.)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Confirm that the correct Letter Type is reflected&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Within the field “View Name” select the row labeled “Customer Primary Information”&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Confirm that the file name is correctly reflected&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Enter an appropriate description of the document/its usage in the field labeled “Description”&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Enable the “Personalized” check box&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Hit Save to upload the document&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Now you are ready to go! Open Contact tracking, pull up a customer, and create an inquiry. When it's created, you can choose the standard letter you just created (the ID from step 13 above is what's displayed), then click on the &lt;strong&gt;Open&lt;/strong&gt; button. This will open Word with your letter and the merge fields. In Word, click on the &lt;strong&gt;View Merged Data&lt;/strong&gt; button and you will see your personalized letter. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-1349188362315279870?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/1349188362315279870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=1349188362315279870&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/1349188362315279870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/1349188362315279870'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/07/timss-6-personalized-standard-letters.html' title='TIMSS 6: Personalized Standard Letters'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-1842709441600006154</id><published>2007-07-23T21:35:00.000-05:00</published><updated>2007-07-24T07:43:06.250-05:00</updated><title type='text'>TIMSS 6: Active Customer Statuses</title><content type='html'>Starting in TIMSS 6.2.2, you can have multiple customer status codes that are &lt;strong&gt;&lt;em&gt;active&lt;/em&gt;&lt;/strong&gt;. Previously, there was only one active status: &lt;strong&gt;ACTIVE&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;In System Types and Codes, the &lt;strong&gt;CUSTOMER_STATUS&lt;/strong&gt; code is determined to be active based on &lt;strong&gt;&lt;em&gt;option 2.&lt;/em&gt;&lt;/strong&gt; Those that are active have &lt;strong&gt;ACTIVE&lt;/strong&gt; in &lt;strong&gt;&lt;em&gt;option 2. &lt;/em&gt;&lt;/strong&gt;Those that are not active should have an &lt;strong&gt;&lt;em&gt;option 2&lt;/em&gt;&lt;/strong&gt; of &lt;strong&gt;INACTIVE.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Now you can add your own statuses, like &lt;strong&gt;PROSPECT&lt;/strong&gt; or &lt;strong&gt;VIP,&lt;/strong&gt; to help distinguish certain types of customers. Please note that if you take advantage of this you will need to update any custom process and reports that you've created to also check the &lt;strong&gt;&lt;em&gt;option 2&lt;/em&gt;&lt;/strong&gt; value of the &lt;strong&gt;CUSTOMER_STATUS&lt;/strong&gt; to make sure you are pulling the &lt;strong&gt;&lt;em&gt;active&lt;/em&gt;&lt;/strong&gt; statuses.&lt;br /&gt;&lt;br /&gt;Similarly, &lt;strong&gt;&lt;em&gt;option 3&lt;/em&gt;&lt;/strong&gt; of the &lt;strong&gt;CUSTOMER_STATUS&lt;/strong&gt; controls if customers with this status can place an order with a value of &lt;strong&gt;Y&lt;/strong&gt; or &lt;strong&gt;N&lt;/strong&gt;. This will default the &lt;strong&gt;&lt;em&gt;Can Place Order&lt;/em&gt;&lt;/strong&gt; flag on the customer record when the customer is created or when the customer's status is changed.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS 6&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-1842709441600006154?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/1842709441600006154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=1842709441600006154&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/1842709441600006154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/1842709441600006154'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/07/timss-6-active-customer-statuses.html' title='TIMSS 6: Active Customer Statuses'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-500942031788937213</id><published>2007-07-16T09:35:00.000-05:00</published><updated>2007-07-15T18:05:27.600-05:00</updated><title type='text'>TIMSS 6: Highlighting Data Behind a Button</title><content type='html'>If you have created a button with that opens a window, wouldn't it be nice to tell your user if there was data behind the button without clicking on it? You can through extender. When you load the screen, check to see if there is data behind the button. If there is, change it's attibutes to highlight the fact that there is data behind it. For example, if you had a button that opened a comments screen that had data stored in a table you created, in the &lt;a href="http://robtimss.blogspot.com/2006/04/extender-scripting-finding-right-event.html"&gt;appropriate event&lt;/a&gt; put:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;strSQL = "Select * from USR_CUS_COMMENTS where master_customer_id='" &amp; oMaster.Text &amp;amp; "' and Sub_customer_id=" &amp;amp; CInt(oSub.Text)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;oRecDS = MyForm.ScriptingGetDataSetWithSQL(strSQL, "USR_CUS_COMMENTS")&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;If Not oRecDS is nothing Then&lt;br /&gt;If oRecDS.Tables(0).Rows.Count &gt; 0 Then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;oButton.ForeColor = System.Drawing.Color.Red&lt;br /&gt;Else&lt;br /&gt;oButton.ForeColor = System.Drawing.Color.Black&lt;br /&gt;End If&lt;br /&gt;End If &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-500942031788937213?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/500942031788937213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=500942031788937213&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/500942031788937213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/500942031788937213'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/07/timss-6-highlighting-data-behind-button.html' title='TIMSS 6: Highlighting Data Behind a Button'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-6970282879006080367</id><published>2007-07-09T19:15:00.000-05:00</published><updated>2007-07-09T14:12:04.303-05:00</updated><title type='text'>TIMSS 6:  Call Center User Areas</title><content type='html'>We had an issue where a product's orders weren't showing up on the Active Orders user area on the call center. Turns out the meeting date was incorrect and in the past so it didn't show up.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_jbCAgkO4wAQ/RnR2Wb_z8eI/AAAAAAAAACU/h1bARMhw34A/s1600-h/MRM001_userareas.PNG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5076812807797993954" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://bp2.blogger.com/_jbCAgkO4wAQ/RnR2Wb_z8eI/AAAAAAAAACU/h1bARMhw34A/s320/MRM001_userareas.PNG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;You hopefully know that each user can pick what is displayed in these three areas on the &lt;span style="FONT-WEIGHT: bold; FONT-STYLE: italic"&gt;User Preferences &lt;/span&gt;screen (SEC001A): &lt;/p&gt;&lt;p&gt;&lt;strong&gt;ACTIVEORDERS&lt;/strong&gt;- Display Active (Paid) Orders Info&lt;br /&gt;&lt;strong&gt;ACTIVITY&lt;/strong&gt;- Display Customer Activity Info&lt;br /&gt;&lt;strong&gt;COMMITTEEMEMBERSHIP&lt;/strong&gt;- Display Committee Membership&lt;br /&gt;&lt;strong&gt;CONTACT&lt;/strong&gt;- Display Contact Tracking Info&lt;br /&gt;&lt;strong&gt;CURRENTMKTCODE&lt;/strong&gt;- Display Current Market Codes Info&lt;br /&gt;&lt;strong&gt;MEMBERSHIP&lt;/strong&gt;- Display Membership Info&lt;br /&gt;&lt;strong&gt;OPENORDERS&lt;/strong&gt;- Display Open (Un-Paid) Orders Info&lt;br /&gt;&lt;strong&gt;RELATIONSHIP&lt;/strong&gt;- Display Customer Relationships&lt;br /&gt;&lt;strong&gt;SEARCHRESULTS&lt;/strong&gt;- Display tree of search results (all the customers returned from query search)&lt;br /&gt;&lt;strong&gt;USEURL&lt;/strong&gt;- Use a customer supplied URL &lt;/p&gt;&lt;p&gt;Much of the call center user area data is retrieved using the &lt;span style="FONT-WEIGHT: bold; FONT-STYLE: italic"&gt;MRM001_CustInfo_SP&lt;/span&gt; stored procedure. Looking at this code, you can see how the data is returned and what table/view TIMSS is looking at to populate these areas.&lt;br /&gt;&lt;br /&gt;Please note that if you make changes to base stored procedures or views, TMAR may overwrite them when you upgrade.&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold; FONT-STYLE: italic"&gt;Applies to: TIMSS6&lt;/span&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-6970282879006080367?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/6970282879006080367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=6970282879006080367&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/6970282879006080367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/6970282879006080367'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/07/timss-6-call-center-user-areas.html' title='TIMSS 6:  Call Center User Areas'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_jbCAgkO4wAQ/RnR2Wb_z8eI/AAAAAAAAACU/h1bARMhw34A/s72-c/MRM001_userareas.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-3794286613265845465</id><published>2007-07-02T09:01:00.000-05:00</published><updated>2007-07-02T18:10:51.869-05:00</updated><title type='text'>Changing Teams</title><content type='html'>I've gone to the other side.... I left COF and I'm now working for TMA Resources.&lt;br /&gt;&lt;br /&gt;I wanted to get out of COF and Edi was nice enough to give me a job. I'm working for Paul Gannon in Marketing as the Partnership Manager. That role will have me working with &lt;a href="http://www.tmaresources.com/?tabid=152"&gt;partner companies &lt;/a&gt;like &lt;a href="http://www.syscom.com/"&gt;Syscom Services&lt;/a&gt; and &lt;a href="http://www.boxwoodtech.com/"&gt;Boxwood Technology&lt;/a&gt;, helping them work with TMAR and integrate with Personify.&lt;br /&gt;&lt;br /&gt;One of the goals is to come up with a standard toolbox for partners to use in their integrations with Personify. I'll need to talk to not only these partner companies, but TMAR clients and others outside of the family to see what should be included in the toolbox.&lt;br /&gt;&lt;br /&gt;Wish me luck, and I might be calling you asking what you think we might want to include.&lt;br /&gt;&lt;br /&gt;And yes, I plan to continue blogging about TIMSS &amp;amp; Personify.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-3794286613265845465?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/3794286613265845465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=3794286613265845465&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/3794286613265845465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/3794286613265845465'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/07/changing-teams.html' title='Changing Teams'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-1783277555539933634</id><published>2007-06-25T20:32:00.000-05:00</published><updated>2007-06-25T10:55:07.504-05:00</updated><title type='text'>TIMSS 6: Base Crystal Report Naming</title><content type='html'>There are a ton of Crystal Reports that come with TIMSS 6. Several of them are similar and are classified/named in a particular fashion.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_jbCAgkO4wAQ/Rl93kyGkhFI/AAAAAAAAACM/EGUa_UL5wu4/s1600-h/Crystal-PCIE.PNG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5070903179250795602" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://bp0.blogger.com/_jbCAgkO4wAQ/Rl93kyGkhFI/AAAAAAAAACM/EGUa_UL5wu4/s320/Crystal-PCIE.PNG" border="0" /&gt;&lt;/a&gt;This first distinctions are for Trade Associations and Professional Societies. Trade Association version will have a &lt;span style="FONT-WEIGHT: bold"&gt;C&lt;/span&gt; after the report number (for company), whereas reports for Professional Societies will have a &lt;span style="FONT-WEIGHT: bold"&gt;P&lt;/span&gt;. &lt;span style="FONT-WEIGHT: bold"&gt;C&lt;/span&gt; reports will focused on companies, and &lt;span style="FONT-WEIGHT: bold"&gt;P&lt;/span&gt; reports will focus on individuals. Both will be sorted/grouped appropriately.&lt;br /&gt;&lt;br /&gt;The second distinctions are for Internal (&lt;span style="FONT-WEIGHT: bold"&gt;I&lt;/span&gt;) and External (&lt;span style="FONT-WEIGHT: bold"&gt;E&lt;/span&gt;) version of the report. Internal versions are meant for internal use only. External versions are for distribution outside of your association and not all customer data is to be shared outside. Thus the external version should check the &lt;span style="FONT-WEIGHT: bold"&gt;Publish &lt;/span&gt;flag on communications (i.e. phone/email) and the &lt;span style="FONT-WEIGHT: bold"&gt;Confidential &lt;/span&gt;flag on addresses:&lt;br /&gt;&lt;br /&gt;CUS_COMMUNICATION.PUBLISH_FLAG='Y'&lt;br /&gt;&lt;br /&gt;CUS_ADDRESS_DETAIL.CONFIDENTIAL_FLAG='N'&lt;br /&gt;&lt;br /&gt;In general, reports for orders are considered internal and directories are external.&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold; FONT-STYLE: italic"&gt;Applies to: TIMSS6&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-1783277555539933634?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/1783277555539933634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=1783277555539933634&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/1783277555539933634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/1783277555539933634'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/06/timss-6-base-crystal-report-naming.html' title='TIMSS 6: Base Crystal Report Naming'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_jbCAgkO4wAQ/Rl93kyGkhFI/AAAAAAAAACM/EGUa_UL5wu4/s72-c/Crystal-PCIE.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-6570232881461745066</id><published>2007-06-18T16:57:00.000-05:00</published><updated>2007-06-16T09:17:45.309-05:00</updated><title type='text'>TIMSS 6: More Ad-Hoc Query Security</title><content type='html'>It was pointed out to me that there is another way to add security to Ad-Hoc Queries.   On the &lt;span style="font-weight: bold;"&gt;META001&lt;/span&gt; screen where one sets up views for use with ad-hoc queries, there is an &lt;span style="font-weight: bold; font-style: italic;"&gt;Available for Public&lt;/span&gt; check box.  If you un-check this box, the &lt;span style="font-weight: bold; font-style: italic;"&gt;Special Security &lt;/span&gt;button is activated, and you can select groups that can use this view for queries.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_jbCAgkO4wAQ/Rl31ueRNtEI/AAAAAAAAAB8/Mm4_DU5wJyU/s1600-h/meta001.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_jbCAgkO4wAQ/Rl31ueRNtEI/AAAAAAAAAB8/Mm4_DU5wJyU/s320/meta001.PNG" alt="" id="BLOGGER_PHOTO_ID_5070478934237099074" border="0" /&gt;&lt;/a&gt;When a user goes to Ad-Hoc Queries they will only see queries that use views that they have access too.  This is different from my &lt;a href="http://robtimss.blogspot.com/2007/05/timss-6-ad-hoc-query-security.html"&gt;previous post&lt;/a&gt; that puts security on the reporting category in Ad-Hoc Queries.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Applies to: TIMSS6&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-6570232881461745066?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/6570232881461745066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=6570232881461745066&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/6570232881461745066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/6570232881461745066'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/06/timss-6-more-ad-hoc-query-security.html' title='TIMSS 6: More Ad-Hoc Query Security'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_jbCAgkO4wAQ/Rl31ueRNtEI/AAAAAAAAAB8/Mm4_DU5wJyU/s72-c/meta001.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-5490610185524439246</id><published>2007-06-11T10:20:00.000-05:00</published><updated>2007-06-09T13:26:32.809-05:00</updated><title type='text'>TIMSS 6: The Magic of CUS500</title><content type='html'>&lt;span&gt;The&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; CUS500&lt;/span&gt; TRS report can be used to print a variety of labels.  In System Types &amp; Codes, there is a type for &lt;span style="font-weight: bold;"&gt;LABEL_FORMAT&lt;/span&gt; with codes corresponding to the various labels available.  These correspond to Crystal Reports on your TRS.  So if you run the report with the &lt;span style="font-weight: bold;"&gt;AVERY5160 &lt;/span&gt;label format parameter, the process will run the &lt;span style="font-weight: bold;"&gt;CUSLABEL_AVERY5160.rpt &lt;/span&gt;report on your TRS.  If you don't like the layout of the labels or the font, that's the report you'd update.&lt;br /&gt;&lt;br /&gt;And if you wanted to add a new label format for name badges or tent cards, just add the appropriate code and the corresponding Crystal Report to your TRS.&lt;br /&gt;&lt;br /&gt;You can also pull all kinds of data into this report.  It is based on the &lt;span style="font-weight: bold;"&gt;CUS500_VW&lt;/span&gt; so you can use the filter on the &lt;span style="font-weight: bold; font-style: italic;"&gt;Advanced Job Parameters &lt;/span&gt;tab to select any customers you want: in a given state, or participants in a meeting, or committee members (the latter two would have an &lt;span style="font-weight: bold; font-style: italic;"&gt;exists&lt;/span&gt; in the filter query and can have addresses other than their primary; see below).&lt;br /&gt;&lt;br /&gt;There are 3 parameters for this report:  &lt;span style="font-weight: bold; font-style: italic;"&gt;Label Format&lt;/span&gt;- the layout of the report from code described above; &lt;span style="font-weight: bold; font-style: italic;"&gt;Sort Order&lt;/span&gt;- to sort the report based on a field&lt;span style="font-weight: bold;"&gt;; &lt;span style="font-style: italic;"&gt;Select Primary Address Only&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;- &lt;/span&gt;Y for only their primary address, N to print all their addresses (for committee or ship to addresses other than primary, you'd choose N and then filter with &lt;span style="font-weight: bold; font-style: italic;"&gt;exists &lt;/span&gt;to select the correct address).&lt;br /&gt;&lt;br /&gt;You will probably want to have 2 runs for your labels: one that pulls GOOD addresses, and one that pulls BAD address so you can see who won't be getting your mailing.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Applies to: TIMSS6&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-5490610185524439246?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/5490610185524439246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=5490610185524439246&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/5490610185524439246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/5490610185524439246'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/06/timss-6-magic-of-cus500.html' title='TIMSS 6: The Magic of CUS500'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-8335572364324704193</id><published>2007-06-04T12:16:00.000-05:00</published><updated>2007-06-15T11:30:25.657-05:00</updated><title type='text'>TIMSS 6: Add Application Parameters</title><content type='html'>Have you created any custom processes that could use a system wide parameter? If so you can add it to the &lt;strong&gt;Application Parameters&lt;/strong&gt; and have your process look up the value.&lt;br /&gt;&lt;br /&gt;Just pull up the screen (APP008) and hit the plus to add a parameter. You probobaly want to put it under the USR-User Defined Subsystem so TMAR knows it's yours.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp1.blogger.com/_jbCAgkO4wAQ/Rks8u4gZrNI/AAAAAAAAAB0/wJkvf48q9x4/s1600-h/AppParam.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5065208982048189650" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://bp1.blogger.com/_jbCAgkO4wAQ/Rks8u4gZrNI/AAAAAAAAAB0/wJkvf48q9x4/s320/AppParam.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;This data is kept in the &lt;strong&gt;APP_PARAMETER&lt;/strong&gt; table. So in your process, query that table for the value of your parameter. This will allow users to change the parameter (if you give them permission) without re-writing your process, plus you can re-use the parameter in other processes.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6 &amp;amp; Personify&lt;/em&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-8335572364324704193?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/8335572364324704193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=8335572364324704193&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/8335572364324704193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/8335572364324704193'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/06/timss-6-add-applications-parameters.html' title='TIMSS 6: Add Application Parameters'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_jbCAgkO4wAQ/Rks8u4gZrNI/AAAAAAAAAB0/wJkvf48q9x4/s72-c/AppParam.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-7028298268551817821</id><published>2007-05-28T12:04:00.000-05:00</published><updated>2007-05-29T07:53:54.952-05:00</updated><title type='text'>ISBN-10 to ISBN-13</title><content type='html'>The International Standard Book Number (ISBN) is used as a unique identifier for books. It is not only used to distinguish different titles, but different version of the same book (for more information see the &lt;a href="http://www.isbn-international.org/en/download/2005%20ISBN%20Users%27%20Manual%20International%20Edition.pdf"&gt;ISBN User's Guide&lt;/a&gt;). Starting January 1st, 2007, the number was increased from 10 to 13 digits.&lt;br /&gt;&lt;br /&gt;The ISBN-13 can be calculated from the ISBN-10. First, the numbers &lt;span style="FONT-WEIGHT: bold; FONT-STYLE: italic"&gt;978 &lt;/span&gt;are put in front of the ISBN-10. The last number of both ISBN-10 &amp; ISBN-13 is a check digit (used to validate the previous numbers) . So the check digit is dropped from the ISBN-10 and a new one is calculated for the ISBN-13.&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;ISBN-10: &lt;/span&gt;0-060541-71-7&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;ISBN-13: &lt;/span&gt;978-0-060541-71-2&lt;br /&gt;&lt;br /&gt;There are several sites on the web that will do this conversion:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.isbn-international.org/converter/converter.html"&gt;http://www.isbn-international.org/converter/converter.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://custompcsoftware.com/isbn13.html"&gt;http://custompcsoftware.com/isbn13.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In TIMSS there is one field for ISBN and it will hold 20 characters, so the new size is not an issue. The issue is if you want to maintain both numbers in your database.&lt;br /&gt;&lt;br /&gt;I've chosen to just convert all my ISBN number to 13 since we don't deal with them that much and you can find the ISBN-10 based on the ISBN13. If you want to maintain both you can add an extender field, or you could create a view that calls a function that converts one to the other. It's really up to you.&lt;br /&gt;&lt;br /&gt;I have created an SQL function to convert 10 to 13 and it's shown below:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;CREATE Function dbo.ISBN10TO13(@ISBN10 as varchar(20))&lt;br /&gt;Returns varchar(20) as&lt;br /&gt;&lt;br /&gt;Begin&lt;br /&gt;declare @ISBNO varchar(20)&lt;br /&gt;Declare @NewISBN varchar(12)&lt;br /&gt;Declare @ISBN13 varchar(20)&lt;br /&gt;Declare @ISBN13F varchar(20)&lt;br /&gt;Declare @i integer&lt;br /&gt;Declare @n integer&lt;br /&gt;Declare @v integer&lt;br /&gt;&lt;br /&gt;--remove any hyphens or spaces&lt;br /&gt;Set @ISBNO=replace(replace(@ISBN10,'-',''),' ','')&lt;br /&gt;&lt;br /&gt;If len(@ISBNO)=10 --correct length&lt;br /&gt;Begin&lt;br /&gt;Set @NewISBN = '978' + SubString(@ISBNO, 1, 9)&lt;br /&gt;Set @n = 0&lt;br /&gt;Set @i = 1&lt;br /&gt;&lt;br /&gt;While @i&lt;=12 Begin Set @v = SubString(@NewISBN, @i, 1) If @i%2 = 0 Begin Set @n = @n + 3 * @v End Else Begin Set @n = @n + @v End Set @i = @i + 1 End Set @n = @n%10 If @n&lt;&gt;0&lt;br /&gt;Begin&lt;br /&gt;Set @n = 10 - @n&lt;br /&gt;End&lt;br /&gt;&lt;br /&gt;Set @ISBN13= @NewISBN+str(@n,1)&lt;br /&gt;-- add hyphens&lt;br /&gt;Set @ISBN13F= substring(@ISBN13,1,3)+'-'+substring(@ISBN13,4,1)+'-' +substring(@ISBN13,5,6)+'-'+substring(@ISBN13,11,2)+'-'+substring(@ISBN13,13,1)&lt;br /&gt;End&lt;br /&gt;&lt;br /&gt;Else -- wrong length, return same value&lt;br /&gt;Begin&lt;br /&gt;Set @ISBN13F=@ISBN10&lt;br /&gt;End&lt;br /&gt;&lt;br /&gt;Return @ISBN13F&lt;br /&gt;End&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold; FONT-STYLE: italic"&gt;Applies to: TIMSS5, TIMSS6, Personify&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-7028298268551817821?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/7028298268551817821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=7028298268551817821&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/7028298268551817821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/7028298268551817821'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/05/isbn-10-to-isbn-13.html' title='ISBN-10 to ISBN-13'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-1498927463529615384</id><published>2007-05-21T18:30:00.000-05:00</published><updated>2007-05-21T08:58:12.521-05:00</updated><title type='text'>TIMSS 6: Ad-Hoc Query Security</title><content type='html'>&lt;div&gt;Another good idea I saw at TAUG was adding security to your Ad-Hoc Query categories. I don't necessarily want to keep people from running a particular query, but I want to limit their choices so they can easily find what they are looking for.&lt;br /&gt;&lt;br /&gt;Similarly to the &lt;a href="http://robtimss.blogspot.com/2006/05/timss-6-call-topic-security.html"&gt;Call Topic Security&lt;/a&gt; you can setup security on the Ad-Hoc Query Report Categories. In Types and Codes for &lt;strong&gt;QUERY_CATEGORY&lt;/strong&gt;, un-check the &lt;span style="font-weight: bold; font-style: italic;"&gt;Public Code &lt;/span&gt;flag and save. This will activate the &lt;span style="font-weight: bold; font-style: italic;"&gt;Special Security &lt;/span&gt;button where you can pick the groups that have access to this Query Category.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;img id="BLOGGER_PHOTO_ID_5062579008982619986" style="margin: 0px auto 10px; display: block; text-align: center;" alt="" src="http://bp2.blogger.com/_jbCAgkO4wAQ/RkHkyTXCF1I/AAAAAAAAABs/qvvEzBcjHcA/s320/query_category.gif" border="0" /&gt;&lt;br /&gt;Thanks to Pam R. who mentioned this in her TAUG presentation.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Applies to TIMSS6&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-1498927463529615384?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/1498927463529615384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=1498927463529615384&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/1498927463529615384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/1498927463529615384'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/05/timss-6-ad-hoc-query-security.html' title='TIMSS 6: Ad-Hoc Query Security'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_jbCAgkO4wAQ/RkHkyTXCF1I/AAAAAAAAABs/qvvEzBcjHcA/s72-c/query_category.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-2030968042146837934</id><published>2007-05-14T18:29:00.000-05:00</published><updated>2007-05-13T12:03:16.103-05:00</updated><title type='text'>Crystal Reports: Sorting Parameter</title><content type='html'>I have a couple  Crystal reports that I've added a parameter to that allows the report to be sorted different ways.  For example, our &lt;a href="http://robtimss.blogspot.com/2007/01/timss-6-meeting-planning-for-rooms.html"&gt;meeting function sheets&lt;/a&gt; can either be sorted by room or by date.  To do this in the same report, I created a parameter called &lt;span style="font-weight: bold; font-style: italic;"&gt;SortBy&lt;/span&gt; that is either &lt;span style="font-weight: bold;"&gt;DATE &lt;/span&gt;or &lt;span style="font-weight: bold;"&gt;ROOM&lt;/span&gt;  (see &lt;a href="http://robtimss.blogspot.com/2006/11/timss-6-online-report-parameter-pick.html"&gt;Online Report Parameter Pick List&lt;/a&gt; to see how to pick parameters for your online report).&lt;br /&gt;&lt;br /&gt;Then I added a formula field to the report that creates a value to sort on based on the parameter value:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;If {?SortBy}='DATE' then ToText({Command.start_date})&lt;br /&gt;else&lt;br /&gt;If {?SortBy}='ROOM' then ToText({Command.facility_room_id})&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;and I use this value to sort my report.&lt;br /&gt;&lt;br /&gt;I've done something similar with my committee roster.  One group wants their committee sorted one way, and the rest a different way.  So I created a parameter and a formula that generates the value to sort by:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;if {?Format}='NORMAL' then&lt;br /&gt;if ({COM_COMMITTEE_MEMBER.VOTING_STATUS_CODE}= 'NON_VOTING' and {COM_COMMITTEE_MEMBER.POSITION_CODE}= 'STAFF')  then 99 else&lt;br /&gt;if {COM_COMMITTEE_MEMBER.VOTING_STATUS_CODE}= 'NON_VOTING' then 11 else&lt;br /&gt;if {COM_COMMITTEE_MEMBER.POSITION_CODE}= 'CHAIR' then 1 else&lt;br /&gt;if {COM_COMMITTEE_MEMBER.POSITION_CODE}= 'VCHAIR' then 2 else&lt;br /&gt;if {COM_COMMITTEE_MEMBER.POSITION_CODE}= 'SEC' then 3 else&lt;br /&gt;if {COM_COMMITTEE_MEMBER.POSITION_CODE}= 'TREAS' then 4 else&lt;br /&gt;if {COM_COMMITTEE_MEMBER.POSITION_CODE}= 'EXOFF' then 5 else&lt;br /&gt;if {COM_COMMITTEE_MEMBER.POSITION_CODE}= 'MEMBER' then 10&lt;br /&gt;else 9&lt;br /&gt;else if {?Format}='CFLT' then&lt;br /&gt;if {COM_COMMITTEE_MEMBER.POSITION_CODE}= 'CHAIR' then 1 else 9&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;Thanks to Edward B. for the hint at TAUG.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Applies to: TIMSS6 &amp;amp; Personify&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-2030968042146837934?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/2030968042146837934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=2030968042146837934&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/2030968042146837934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/2030968042146837934'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/05/crystal-reports-sorting-parameter.html' title='Crystal Reports: Sorting Parameter'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-4155391171121385082</id><published>2007-05-07T09:54:00.000-05:00</published><updated>2007-05-05T08:50:41.061-05:00</updated><title type='text'>Spamming with Outlook</title><content type='html'>If you organization is like mine, you love to spam your members.&lt;br /&gt;&lt;br /&gt;All kidding aside, one of the features with Outlook 2003 was that pesky dialog box that pops up every time you send a message using a mail merge or a &lt;a href="http://robtimss.blogspot.com/2006/03/cognosscript-editor-sending.html"&gt;Cognos Script&lt;/a&gt;. There is a way you can turn this off!&lt;br /&gt;&lt;br /&gt;This Microsoft &lt;a href="http://www.microsoft.com/technet/prodtechnol/office/officexp/maintain/xpsec.mspx"&gt;white paper&lt;/a&gt; has a section on &lt;strong&gt;Customizing Outlook Security Settings.&lt;/strong&gt; You'll need to make a change to the exchange server, and update the registry on the local machine. It's well worth it when you are emailing a couple thousand renewal notices and don't have to click &lt;strong&gt;OK&lt;/strong&gt; every 5 seconds to send each message.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to TIMSS5, TIMSS6, Personify&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/technet/prodtechnol/office/officexp/maintain/xpsec.mspx"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-4155391171121385082?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/4155391171121385082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=4155391171121385082&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/4155391171121385082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/4155391171121385082'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/05/spamming-with-outlook.html' title='Spamming with Outlook'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-6652567497346833570</id><published>2007-04-30T18:14:00.000-05:00</published><updated>2007-04-26T18:32:05.947-05:00</updated><title type='text'>TAUG 2007 wrap-up</title><content type='html'>Well another &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;TAUG&lt;/span&gt; has come and gone. It was great to see you all, and now I've got some new tips for my blog! There were lots of good sessions and thanks to all of you who participated.&lt;br /&gt;&lt;br /&gt;Next year's &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;TAUG&lt;/span&gt; (or will it be &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;PAUG&lt;/span&gt;) will be held in Louisville, Kentucky. Paul G told me that we will be right next to Fourth street which looks pretty cool:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.iglou.com/restaurants/4sl.shtml"&gt;http://www.iglou.com/restaurants/4sl.shtml&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I should caution you that many of these &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;places&lt;/span&gt; are open until 4 am!&lt;br /&gt;&lt;br /&gt;And not to mention an evening event at &lt;a href="http://www.churchilldowns.com/"&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;Churchill&lt;/span&gt; Downs&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I hope to see you all there!&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;TIMSS&lt;/span&gt;5, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;TIMSS&lt;/span&gt;6, Personify&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-6652567497346833570?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/6652567497346833570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=6652567497346833570&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/6652567497346833570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/6652567497346833570'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/04/taug-2007-wrap-up.html' title='TAUG 2007 wrap-up'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-4728762584775224386</id><published>2007-04-16T09:32:00.000-05:00</published><updated>2007-04-15T15:43:24.814-05:00</updated><title type='text'>TIMSS 6: Held Line Status Code</title><content type='html'>The other day I received an email from a member in response to the &lt;a href="http://robtimss.blogspot.com/2007/03/timss-6-emailing-web-order.html"&gt;web order confirmation&lt;/a&gt; that we automatically send when some one orders from our website. She was wondering why she had received the email confirmation since she had &lt;strong&gt;&lt;em&gt;not&lt;/em&gt;&lt;/strong&gt; ordered any books.&lt;br /&gt;&lt;br /&gt;I sent her the ship address for the order (which wasn't her) and asked her if maybe that person had logged in as her and ordered books.&lt;br /&gt;&lt;br /&gt;In the mean time, what do I with this order? I didn't want to fulfill it since it might not be legitimate, but I didn't want to cancel and refund since it might be valid.&lt;br /&gt;&lt;br /&gt;So I changed the line status to &lt;strong&gt;&lt;em&gt;Held &lt;/em&gt;&lt;/strong&gt;(not the fulfill status). This way the order is still in the system, but won't get picked up by the fulfillment process.&lt;br /&gt;&lt;br /&gt;When the member confirmed that her co-worker had used her account to order books, I changed the line status back to &lt;strong&gt;&lt;em&gt;Active&lt;/em&gt;&lt;/strong&gt;, and the order got picked up the next time the fulfillment process was done.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies: to TIMSS6 &amp;amp; Personify&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://robtimss.blogspot.com/2007/03/timss-6-emailing-web-order.html"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-4728762584775224386?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/4728762584775224386/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=4728762584775224386&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/4728762584775224386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/4728762584775224386'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/04/timss-6-held-line-status-code.html' title='TIMSS 6: Held Line Status Code'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-4545027892761671682</id><published>2007-04-09T09:00:00.000-05:00</published><updated>2007-04-08T08:41:58.937-05:00</updated><title type='text'>Market, List &amp; Key Codes</title><content type='html'>So what's the difference between a market code, a list code, and a key code? &lt;br /&gt;&lt;br /&gt;A marketing code is associated with a particular marketing piece, for example a conference brochure or a pre-recorded phone call.&lt;br /&gt;&lt;br /&gt;A list code would be a particular group of customers to which you send marketing materials.&lt;br /&gt;&lt;br /&gt;A key code is a combination market and list codes for a particular effort.&lt;br /&gt;&lt;br /&gt;Let's say I have a postcard that I want to sent out to promote my annual meeting.  That piece would have a particular marketing code associated with it.  In TIMSS, I create several lists: purchased prospects, members, previous attendees who aren't members, etc. , and I send them each this post card.&lt;br /&gt;&lt;br /&gt;When I use Marketing Production Control in TIMSS, I will create different efforts for this post card to go to each one of those groups, and each would have a different key code.&lt;br /&gt;&lt;br /&gt;Or I can have different marketing pieces (a postcard and a brochure)  go to the same groups to see who responds best to different efforts.&lt;br /&gt;&lt;br /&gt;The combination of marketing &amp; list codes is a key code, so that when an order is entered, entering a key code is the same a entering both a list and a market code.  Thus the key code is what should be printed on the piece and communicated to the CSR when the order is taken.&lt;br /&gt;&lt;br /&gt;You might want to name them consistently, for example, key codes always start with the letter K, so that the CSR knows it's a key code.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to TIMSS5, TIMSS6, &amp;amp; Personify&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-4545027892761671682?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/4545027892761671682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=4545027892761671682&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/4545027892761671682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/4545027892761671682'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/04/market-list-key-codes.html' title='Market, List &amp; Key Codes'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-4824236876579475710</id><published>2007-04-02T17:05:00.000-05:00</published><updated>2007-03-31T14:33:26.529-05:00</updated><title type='text'>Credit Cards</title><content type='html'>Here are a couple articles I found about credit cards that you might find interesting.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://money.howstuffworks.com/credit-card.htm"&gt;How Credit Cards Work&lt;/a&gt;- gives a history of credit cards as well as how they work with the bank.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.merriampark.com/anatomycc.htm"&gt;Anatomy of Credit Card Numbers&lt;/a&gt;- tells how the actual credit card number is made and how you can tell if a number is valid.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.hippy.freeserve.co.uk/credcard.htm"&gt;Credit Card Magic&lt;/a&gt;- more about card numbers.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Card_Security_Code"&gt;Card Security Code&lt;/a&gt;- Info about the CVV2&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS5, TIMSS6, Personify&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-4824236876579475710?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/4824236876579475710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=4824236876579475710&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/4824236876579475710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/4824236876579475710'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/04/credit-cards.html' title='Credit Cards'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-2006972141450951114</id><published>2007-03-26T14:15:00.000-05:00</published><updated>2007-03-25T17:30:48.223-05:00</updated><title type='text'>Emailing Web Order Confirmations</title><content type='html'>You might remember a thread on the listserv a few months ago regarding emailing confirmations to customers for their orders. TIMSS6 has this as base function, however I didn't like the fact that is sends confirmation for &lt;strong&gt;&lt;em&gt;all&lt;/em&gt;&lt;/strong&gt; orders when I just wanted to send them for orders that came in through the web (customers expect this).&lt;br /&gt;&lt;br /&gt;I found an &lt;a href="http://classicasp.aspfaq.com/email/how-do-i-send-e-mail-from-sql-server.html"&gt;article&lt;/a&gt; on how to send email from SQL Server using &lt;a href="http://www.sqldev.net/xp/xpsmtp.htm"&gt;xp_smtp_sendmail&lt;/a&gt;. Following the steps in the article, I created a stored procedure in my database that emails confirmations for orders with a method of &lt;strong&gt;WEB.&lt;/strong&gt; Then I used the SQL Server Agent to schedule a task to execute that procedure every couple minutes.&lt;br /&gt;&lt;br /&gt;The xp_smtp_sendmail has a couple nice features, including changing who the email is from and allowing an HTML message.&lt;br /&gt;&lt;br /&gt;I also added a table to the TIMSS database to store the messages that were sent.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS5, TIMSS6, Personify&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-2006972141450951114?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/2006972141450951114/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=2006972141450951114&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/2006972141450951114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/2006972141450951114'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/03/timss-6-emailing-web-order.html' title='Emailing Web Order Confirmations'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-3571295069897060214</id><published>2007-03-19T14:41:00.000-05:00</published><updated>2007-03-17T15:12:52.544-05:00</updated><title type='text'>TAUG 2007</title><content type='html'>&lt;a href="http://bp0.blogger.com/_jbCAgkO4wAQ/RfxGZpxYTGI/AAAAAAAAABg/KMkwTdhXaG4/s1600-h/leftcol_taug07_logo.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5042983089271753826" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://bp0.blogger.com/_jbCAgkO4wAQ/RfxGZpxYTGI/AAAAAAAAABg/KMkwTdhXaG4/s200/leftcol_taug07_logo.gif" border="0" /&gt;&lt;/a&gt;Yes it's TAUG time again. This year the TMA Resources Annual Users Group (TAUG) meeting is in Albuquerque, April 22-25. I'm on the Program Committee and I'm really looking forward to this year.&lt;br /&gt;&lt;br /&gt;The sessions are categorized by personas. If you've been to the registration site (&lt;a href="http://www.taugconference.com/"&gt;http://www.taugconference.com/&lt;/a&gt;) you will see the different personas that the sessions are aimed atWhat's so great about TAUG? Here's a short list:&lt;br /&gt;&lt;br /&gt;1. Great educational content&lt;br /&gt;2. Networking with your counterparts that also use TIMSS&lt;br /&gt;3. Free time with your Project Manager&lt;br /&gt;4. Meet your TIMSSCare Rep.&lt;br /&gt;5. See what other people are doing with TIMSS that you should be doing.&lt;br /&gt;6. Get a look at Personify&lt;br /&gt;7. Put a face to a helpful name from the listserv&lt;br /&gt;&lt;br /&gt;This is my 7th TAUG (&lt;em&gt;&lt;strong&gt;oh my God!&lt;/strong&gt;&lt;/em&gt;) and I still get lots of good information from it. Just look at my blog posts from just after TAUG a year ago. Most of them were gleaned from it.&lt;br /&gt;&lt;br /&gt;I hope to see you there! And if you have anthing you'd like to see here, let me know.&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS5, TIMSS6, Personify&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-3571295069897060214?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/3571295069897060214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=3571295069897060214&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/3571295069897060214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/3571295069897060214'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/03/taug-2007.html' title='TAUG 2007'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_jbCAgkO4wAQ/RfxGZpxYTGI/AAAAAAAAABg/KMkwTdhXaG4/s72-c/leftcol_taug07_logo.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-430792642838217622</id><published>2007-03-12T15:26:00.000-05:00</published><updated>2007-04-09T15:09:58.233-05:00</updated><title type='text'>TIMSS 6:  Membership Default Date Masks</title><content type='html'>When setting up a membership product, there are 2 variables that you can set to determine what the default begin and end date of the membership will be. They are set on the Membership Structure Setup screen (MBR000) and on each membership product (MBR001).&lt;br /&gt;&lt;br /&gt;The available codes for these to variable are found in types and codes under &lt;strong&gt;DEF_END_MASK&lt;/strong&gt; and &lt;strong&gt;DEF_START_MASK&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;DEF_START_MASK:&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;BEGJAN&lt;/strong&gt;- First of January&lt;/li&gt;&lt;li&gt;&lt;strong&gt;BEGFEB&lt;/strong&gt;- First of February&lt;/li&gt;&lt;li&gt;&lt;strong&gt;BEGMAR&lt;/strong&gt;- First of March&lt;/li&gt;&lt;li&gt;&lt;strong&gt;BEGAPR&lt;/strong&gt;- First of April&lt;/li&gt;&lt;li&gt;&lt;strong&gt;BEGMAY&lt;/strong&gt;- First of May&lt;/li&gt;&lt;li&gt;&lt;strong&gt;BEGJUL&lt;/strong&gt;- First of July&lt;/li&gt;&lt;li&gt;&lt;strong&gt;BEGJUN&lt;/strong&gt;- First of June&lt;/li&gt;&lt;li&gt;&lt;strong&gt;BEGAUG&lt;/strong&gt;- First of August&lt;/li&gt;&lt;li&gt;&lt;strong&gt;BEGSEP&lt;/strong&gt;- First of September&lt;/li&gt;&lt;li&gt;&lt;strong&gt;BEGOCT&lt;/strong&gt;- First of October&lt;/li&gt;&lt;li&gt;&lt;strong&gt;BEGNOV&lt;/strong&gt;- First of November&lt;/li&gt;&lt;li&gt;&lt;strong&gt;BEGDEC&lt;/strong&gt;- First of December&lt;/li&gt;&lt;li&gt;&lt;strong&gt;BEGMY&lt;/strong&gt;- First of the current month&lt;/li&gt;&lt;li&gt;&lt;strong&gt;CUTOFFMONTH&lt;/strong&gt;- First of Next Month after cutoff days- stored in &lt;strong&gt;&lt;em&gt;OPTION_1&lt;/em&gt;&lt;/strong&gt; of the &lt;strong&gt;DEF_START_MASK&lt;/strong&gt; code&lt;/li&gt;&lt;li&gt;&lt;strong&gt;CUTOFFYEAR&lt;/strong&gt;- First of Next Year after cutoff months- stored in &lt;strong&gt;&lt;em&gt;OPTION_1 &lt;/em&gt;&lt;/strong&gt;of the &lt;strong&gt;DEF_START_MASK&lt;/strong&gt; code&lt;/li&gt;&lt;li&gt;&lt;strong&gt;NEXTMONTH&lt;/strong&gt;- First of Next Month&lt;/li&gt;&lt;li&gt;&lt;strong&gt;NONE&lt;/strong&gt;- NONE&lt;/li&gt;&lt;li&gt;&lt;strong&gt;TODAY&lt;/strong&gt;- Today&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;DEF_END_MASK:&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;1YEAR&lt;/strong&gt;- One Year&lt;/li&gt;&lt;li&gt;&lt;strong&gt;1YRMINUS&lt;/strong&gt;- One Year Minus (end date is last date of previous month next year)&lt;/li&gt;&lt;li&gt;&lt;strong&gt;1YRPLUS&lt;/strong&gt;- One Year Plus (end date is last day of current month next year)&lt;/li&gt;&lt;li&gt;&lt;strong&gt;ENDJAN&lt;/strong&gt;- End of January&lt;/li&gt;&lt;li&gt;&lt;strong&gt;ENDFEB&lt;/strong&gt;- End of February&lt;/li&gt;&lt;li&gt;&lt;strong&gt;ENDMAR&lt;/strong&gt;- End of March&lt;/li&gt;&lt;li&gt;&lt;strong&gt;ENDAPR&lt;/strong&gt;- End of April&lt;/li&gt;&lt;li&gt;&lt;strong&gt;ENDMAY&lt;/strong&gt;- End of May&lt;/li&gt;&lt;li&gt;&lt;strong&gt;ENDJUL&lt;/strong&gt;- End of July&lt;/li&gt;&lt;li&gt;&lt;strong&gt;ENDJUN&lt;/strong&gt;- End of June&lt;/li&gt;&lt;li&gt;&lt;strong&gt;ENDAUG&lt;/strong&gt;- End of August&lt;/li&gt;&lt;li&gt;&lt;strong&gt;ENDSEP&lt;/strong&gt;- End of September&lt;/li&gt;&lt;li&gt;&lt;strong&gt;ENDOCT&lt;/strong&gt;- End of October&lt;/li&gt;&lt;li&gt;&lt;strong&gt;ENDNOV&lt;/strong&gt;- End of November&lt;/li&gt;&lt;li&gt;&lt;strong&gt;ENDDEC&lt;/strong&gt;- End of December&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;A common choice for the end date is the &lt;strong&gt;&lt;em&gt;One Year Plus.&lt;/em&gt;&lt;/strong&gt; This will give the member a few extra days of membership on their &lt;strong&gt;&lt;em&gt;FIRST&lt;/em&gt;&lt;/strong&gt; order by making the end date the last day of the month. So if they joined on 3/15/2007, their end date would be 3/31/2008, giving 12.5 months of membership.&lt;br /&gt;&lt;br /&gt;Many organizations go with the &lt;strong&gt;&lt;em&gt;One Year Plus&lt;/em&gt;&lt;/strong&gt; so that they have a few extra days in that first year to get setup. For example if they joined at the end of the month they might miss that month's magazine, but they would still get 12 issues; if they joined early in the month, they might actually get 13 issues, but they would not get 11 issues and short change the member.&lt;br /&gt;&lt;br /&gt;My organization is a Trade Association and our membership runs annually. Thus we use the value for &lt;strong&gt;End of December&lt;/strong&gt; as our default end mask.&lt;br /&gt;&lt;br /&gt;I would imagine that most organizations use &lt;strong&gt;TODAY&lt;/strong&gt; for the start date of their new membership orders.&lt;br /&gt;&lt;br /&gt;You should note that this really only effects new membership orders. Renewals are based on the end date of the current order and whatever length you have setup for the membership product.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-430792642838217622?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/430792642838217622/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=430792642838217622&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/430792642838217622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/430792642838217622'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/03/timss-6-membership-default-date-masks.html' title='TIMSS 6:  Membership Default Date Masks'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-7582222172994081874</id><published>2007-03-05T11:15:00.000-05:00</published><updated>2007-03-03T15:22:42.790-05:00</updated><title type='text'>TIMSS 6: Extender Textbox</title><content type='html'>This came across the &lt;a href="http://tech.groups.yahoo.com/group/TIMSS/"&gt;listserv&lt;/a&gt; a couple weeks ago. It's good information and I like to put stuff up here so I know what I've done in TIMSS. All credit goes to Dave D. and Eric E.&lt;br /&gt;&lt;br /&gt;When adding a text box to a screen, Dave wanted to have it read only with a scroll bar. Here's what he did:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;Dim oTextBox as Object&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;try&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;oTextBox = MyForm.getformcontrolbyname("usr_txt11")&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;oTextBox.ReadOnly = "True"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;oTextBox.ScrollBars=2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;Catch Ex as Exception&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;Msgbox(ex.Tostring())&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;End Try&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;Values for scrollbars: 0=None; 1=Horizontal; 2=Vertical; 3=Both&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-7582222172994081874?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/7582222172994081874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=7582222172994081874&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/7582222172994081874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/7582222172994081874'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/03/timss-6-extender-textbox.html' title='TIMSS 6: Extender Textbox'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-8466693025788315428</id><published>2007-02-26T19:13:00.000-05:00</published><updated>2007-02-25T18:20:57.797-05:00</updated><title type='text'>Using a SQL statement in Crystal Reports</title><content type='html'>Have you ever had a complicated report that you just couldn't write using the "wizards" in Crystal Reports? Well you can write an SQL query and enter it directly into Crystal using a Command.&lt;br /&gt;&lt;br /&gt;When adding tables you can add a query by clicking on &lt;strong&gt;Add Command.&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5031548633388888402" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://bp2.blogger.com/_jbCAgkO4wAQ/RdOm0uM_MVI/AAAAAAAAAA8/a_KlrkMm5l8/s320/add_command.PNG" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;That will open a box where you can enter a query. You can even add prompts (Parameters).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp3.blogger.com/_jbCAgkO4wAQ/RdOm3-M_MWI/AAAAAAAAABE/UZNYM0TF90A/s1600-h/command.PNG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5031548689223463266" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://bp3.blogger.com/_jbCAgkO4wAQ/RdOm3-M_MWI/AAAAAAAAABE/UZNYM0TF90A/s320/command.PNG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;The data returned to in you &lt;strong&gt;&lt;em&gt;Select&lt;/em&gt;&lt;/strong&gt; statement is then available in your report.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&lt;em&gt;Applies to TIMSS5 &amp;amp; TIMSS6&lt;/em&gt;&lt;/strong&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-8466693025788315428?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/8466693025788315428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=8466693025788315428&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/8466693025788315428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/8466693025788315428'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/02/using-sql-statement-in-crystal-reports.html' title='Using a SQL statement in Crystal Reports'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_jbCAgkO4wAQ/RdOm0uM_MVI/AAAAAAAAAA8/a_KlrkMm5l8/s72-c/add_command.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-196614991840903350</id><published>2007-02-19T18:59:00.000-05:00</published><updated>2007-02-20T10:14:59.846-05:00</updated><title type='text'>TCMS Meeting Registration Modification, part 3</title><content type='html'>The third customization we did to the TCMS meeting registration had to do with the Hotel reservation. As I mentioned in a previous post (&lt;a href="http://robtimss.blogspot.com/2006/08/timss-6-hotel-blocking-for-meetings.html"&gt;TIMSS 6: Hotel Blocking for Meetings&lt;/a&gt;) we found that the icon for making a Hotel Reservation to be almost hidden. So we changed how the process works.&lt;br /&gt;&lt;br /&gt;After someone clicks on the &lt;strong&gt;Place My Order&lt;/strong&gt; button to purchase a meeting product, we show the hotel reservation screen (if a hotel is setup) instead of showing the confirmation screen.&lt;br /&gt;&lt;br /&gt;We not only added &lt;strong&gt;ADA Accessible&lt;/strong&gt; and &lt;strong&gt;Special Requests&lt;/strong&gt;, but also &lt;strong&gt;Room Sharing&lt;/strong&gt; process to this screen.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5033633638147633522" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://bp3.blogger.com/_jbCAgkO4wAQ/RdsPH-M_MXI/AAAAAAAAABU/6Jh16U33fUA/s320/tcms_hotel_blocking.gif" border="0" /&gt;&lt;br /&gt;After giving hotel reservation (or skipping it) the confirmation screen is then shown with the order summary and the hotel reservation information at the bottom.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-196614991840903350?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/196614991840903350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=196614991840903350&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/196614991840903350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/196614991840903350'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/02/tcms-meeting-registration-modification_19.html' title='TCMS Meeting Registration Modification, part 3'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_jbCAgkO4wAQ/RdsPH-M_MXI/AAAAAAAAABU/6Jh16U33fUA/s72-c/tcms_hotel_blocking.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-1275802760025250141</id><published>2007-02-12T22:48:00.000-05:00</published><updated>2007-02-05T13:32:58.754-05:00</updated><title type='text'>TCMS Meeting Registration Modification, part 2</title><content type='html'>Another customization we did with the TCMS meeting registration was to add a Questionnaire. This adds an extra step to the registration process where the registrant is asked questions based on the sessions they have signed up for.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5026957117029769602" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://bp0.blogger.com/_jbCAgkO4wAQ/RcNW3S2uYYI/AAAAAAAAAAo/iIpL1O6-1Oo/s320/questionnaire.gif" border="0" /&gt;This required 2 extender tables, one for the questions (USR_MTG_QUESTIONS) and one to hold the answers (USR_MTG_ANSWERS) for each order. &lt;/p&gt;&lt;p&gt;A new tab was added to MTG001 with a grid to enter the questions along with a sort order, answer type (check box, combo, or text field) along with choices for a combo, and if it's a required field.&lt;/p&gt;&lt;p&gt;A new button was added to the Meeting tab on ORD001 that opened a new screen to show the Q&amp;amp;A entered by the registrant through TCMS.&lt;/p&gt;&lt;p&gt;The questions asked are for each product in the cart, so I can ask generic questions of an attendee under the meeting product, and if I have a golf outing I can ask those who've signed up for it if they are bringing or renting clubs.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Applies: to TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-1275802760025250141?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/1275802760025250141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=1275802760025250141&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/1275802760025250141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/1275802760025250141'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/02/tcms-meeting-registration-modification_12.html' title='TCMS Meeting Registration Modification, part 2'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_jbCAgkO4wAQ/RcNW3S2uYYI/AAAAAAAAAAo/iIpL1O6-1Oo/s72-c/questionnaire.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-4630497933677323147</id><published>2007-02-05T21:19:00.000-05:00</published><updated>2007-02-05T13:32:58.785-05:00</updated><title type='text'>TCMS Meeting Registration Modification, part 1</title><content type='html'>We had TMAR customize the meeting registration web part. One change was how the "sessions" were displayed. We use products under the meeting for our registration rates and wanted to duplicate this in our online registration.&lt;br /&gt;&lt;br /&gt;First, we only show the products that are web enabled under the meeting which have &lt;strong&gt;&lt;em&gt;Include Add-to Cart Button&lt;/em&gt;&lt;/strong&gt; checked.&lt;br /&gt;&lt;br /&gt;Next they are grouped by the product class. In the example below, the class descriptions are &lt;strong&gt;Registration Rates, Spouse Rates,&lt;/strong&gt; and &lt;strong&gt;Optional Events&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp1.blogger.com/_jbCAgkO4wAQ/Rb_-Pi2uYVI/AAAAAAAAAAM/Mp_wVnxSDzk/s1600-h/MTG_reg.PNG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5026015252176593234" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://bp1.blogger.com/_jbCAgkO4wAQ/Rb_-Pi2uYVI/AAAAAAAAAAM/Mp_wVnxSDzk/s320/MTG_reg.PNG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The classes are sorted by the code and my codes are &lt;strong&gt;1REGREATE, 2SPOUSERATE, 3OPTENVET&lt;/strong&gt;. When registering, at least one item from the &lt;strong&gt;&lt;em&gt;first&lt;/em&gt;&lt;/strong&gt; group must be selected.&lt;br /&gt;&lt;br /&gt;The date/time was removed from the web part. This is so registration rates can have times that conflict with conflicting rates. For example, one can't sign up for &lt;strong&gt;Full Registration&lt;/strong&gt; and &lt;strong&gt;Sunday Registration, &lt;/strong&gt;so they are setup in TIMSS with conflicting times.&lt;br /&gt;&lt;p&gt;Finally, the &lt;strong&gt;Brief Description&lt;/strong&gt; is displayed under the session name. This is where the date/time can be displayed along with any other information needed about the session.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-4630497933677323147?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/4630497933677323147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=4630497933677323147&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/4630497933677323147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/4630497933677323147'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/02/tcms-meeting-registration-modification.html' title='TCMS Meeting Registration Modification, part 1'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_jbCAgkO4wAQ/Rb_-Pi2uYVI/AAAAAAAAAAM/Mp_wVnxSDzk/s72-c/MTG_reg.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-116871005669325720</id><published>2007-01-29T12:21:00.000-05:00</published><updated>2007-01-29T09:18:45.443-05:00</updated><title type='text'>TIMSS 6:  Meeting Planning for Rooms &amp; Requirements</title><content type='html'>For our conferences, the meeting planning staff enters rooms, configurations, and requirements for each meeting session/product as well as the responsible vendor and or staff person in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0" onclick="BLOG_clickHandler(this)"&gt;TIMSS&lt;/span&gt;. A Crystal report is linked to the MTG001 screen to display all this information sorted by time or sorted by room.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/x/blogger/5664/2168/320/515712/mtg_function_sheet.png" border="0" /&gt;The report shows the session name, time, room, configuration, capacity, and requirements. Requirements are setup under system types and codes. Each type (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1" onclick="BLOG_clickHandler(this)"&gt;ie&lt;/span&gt;. AV or F and B) have sub codes under each. &lt;/p&gt;&lt;p&gt;When these are entered for a session on MTG001, quantity and any comments can be added that also show on the report.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Applies to: &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2" onclick="BLOG_clickHandler(this)"&gt;TIMSS&lt;/span&gt;6&lt;br /&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-116871005669325720?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/116871005669325720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=116871005669325720&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/116871005669325720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/116871005669325720'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/01/timss-6-meeting-planning-for-rooms.html' title='TIMSS 6:  Meeting Planning for Rooms &amp; Requirements'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-116870874851665112</id><published>2007-01-22T12:18:00.000-05:00</published><updated>2007-01-22T10:48:28.514-05:00</updated><title type='text'>TIMSS 6: Relations to non-customers</title><content type='html'>In TIMSS 6 you can create a relatioinship to someone who isn't a customer. Usually you would want to create a relationship to a customer, but in some cases you might not. For example if you wanted to store the names of family members, but not enter the family as customers.&lt;br /&gt;&lt;br /&gt;You will notice that on CUS005, the customer ID is not required, only the name of the relation is required.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/x/blogger/5664/2168/320/818224/sean-kat.png" border="0" /&gt;When you enter them, the name is stored in the CUS_RELATIONSHIP.RELATED_NAME field of the database.&lt;/p&gt;&lt;p&gt;The begin date could be used to store brithdates or anniversaries for these relationships.&lt;/p&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/x/blogger/5664/2168/320/436251/suzi.png" border="0" /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-116870874851665112?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/116870874851665112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=116870874851665112&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/116870874851665112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/116870874851665112'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/01/timss-6-relations-to-non-customers.html' title='TIMSS 6: Relations to non-customers'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-116863626583384048</id><published>2007-01-15T15:53:00.000-05:00</published><updated>2007-01-19T13:04:27.486-05:00</updated><title type='text'>Process Tracking with Contact Tracking</title><content type='html'>We have a couple process that have several steps: a foundation compliance process and a publication award process. We use contact tracking to handle both of them.&lt;br /&gt;&lt;br /&gt;I've created and overall topic for the process. Each step in the process has a different subject under that topic which are entered as follow-ups, or child records.&lt;br /&gt;&lt;br /&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/x/blogger/5664/2168/320/465219/MRM003.png" border="0" /&gt; &lt;p&gt;Theses processes are for the companies, but the person contacted is the person we contact in reference to this process. The person contacted on the follow-ups can be used for judges or reviewers.&lt;/p&gt;&lt;p&gt;We then have reports that pull all this data together in a readable format along with other pertinent data about the customer: class, status, size.&lt;/p&gt;&lt;p&gt;One of the processes was previously done in an access database, but the data was not in sync with TIMSS and thus mistakes were made with eligibility and other criteria. They tell me it's now much easier and the data is better.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS5 &amp;amp; TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-116863626583384048?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/116863626583384048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=116863626583384048&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/116863626583384048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/116863626583384048'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/01/process-tracking-with-contact-tracking.html' title='Process Tracking with Contact Tracking'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-116586530722815183</id><published>2007-01-08T14:13:00.000-05:00</published><updated>2007-01-08T13:02:37.600-05:00</updated><title type='text'>TIMSS 6: Ad-Hoc/Search Results Order</title><content type='html'>When using the Ad-Hoc Query or Search screens, you can not only control how you search (see &lt;a href="http://robtimss.blogspot.com/2006/07/timss-6-searching-for-other-fields.html"&gt;TIMSS 6: Searching for other fields&lt;/a&gt;) you can also control how they are displayed when they are returned.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://photos1.blogger.com/x/blogger/5664/2168/1600/77428/Adhoc_results.gif"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/x/blogger/5664/2168/320/567696/Adhoc_results.png" border="0" /&gt;&lt;/a&gt;Highlighting one of the &lt;strong&gt;Fields To Display&lt;/strong&gt; and using the up and down arrows will allow you to choose the order in which the resulting columns are displayed in the Search Results pane. &lt;/p&gt;&lt;p&gt;Results are sorted by the column that is displayed first.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;br /&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-116586530722815183?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/116586530722815183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=116586530722815183&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/116586530722815183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/116586530722815183'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/01/timss-6-ad-hocsearch-results-order.html' title='TIMSS 6: Ad-Hoc/Search Results Order'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-116609776508797823</id><published>2007-01-01T06:43:00.000-05:00</published><updated>2006-12-31T14:42:42.396-05:00</updated><title type='text'>end_date&gt;=getdate()</title><content type='html'>There are several pieces of data that have begin and end dates in TIMSS. Writing queries to see when that is valid is usually written:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:78%;"&gt;begin_date&lt;=getdate() and end_date is null or end_date&gt;=getdate()&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;Customer relationships are this type of data. With a query where the end date is greater than or equal to, it implies that if the end date is today, we still want the relationship to be valid. Unfortunately, this will not be the case because time is included with the &lt;strong&gt;getdate()&lt;/strong&gt; function.&lt;br /&gt;&lt;br /&gt;The end date is stored in TIMSS without time: &lt;strong&gt;&lt;em&gt;2006-12-31 00:00:00.000&lt;/em&gt;&lt;/strong&gt;, whereas &lt;strong&gt;getdate()&lt;/strong&gt; is returned with time: &lt;strong&gt;&lt;em&gt;2006-12-31 06:48:06.710&lt;/em&gt;&lt;/strong&gt;. When the comparison is done, the time portion makes them &lt;em&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;never&lt;/span&gt;&lt;/strong&gt;&lt;/em&gt; equal, unless the &lt;strong&gt;getdate()&lt;/strong&gt; function was called exactly at midnight.&lt;br /&gt;&lt;br /&gt;In my MS SQL database I have a function called TRUNCDATE written by TMAR (there is a similar base function in Oracle). Using this you can remove the time portion of the date so that when the date portion in the comparison is equal, the relationship is still valid.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:78%;"&gt;begin_date&lt;=getdate() and end_date is null or end_date&gt;=dbo.TRUNCDATE(getdate())&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;If you don't have this function in MS SQL, it's below:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;CREATE Function TRUNCDATE(@PDTDATETIME AS DATETIME)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;RETURNS DATETIME &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;AS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;BEGIN &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;RETURN CONVERT(DATETIME,(CONVERT(VARCHAR(50),@PDTDATETIME,101)),101)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;END&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to TIMSS5 &amp;amp; TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-116609776508797823?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/116609776508797823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=116609776508797823&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/116609776508797823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/116609776508797823'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2007/01/enddategetdate.html' title='end_date&gt;=getdate()'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-116587063745968738</id><published>2006-12-25T15:48:00.000-05:00</published><updated>2006-12-26T09:20:42.430-05:00</updated><title type='text'>Spell Checking Job Titles</title><content type='html'>Here's a simple idea to help with data integrity. Write a report or query that pulls distinct job titles from TIMSS. Put the results into Microsoft Word, or similar application, and run the spell checker. When you find one that's not spelled correctly, search for it in TIMSS and fix it.&lt;br /&gt;&lt;br /&gt;Note that if you are pulling job titles from customers or addresses it will affect where you search for the spelling mistake.&lt;br /&gt;&lt;br /&gt;You can do this for other fields, product descriptions for example, where the words would be found in a dictionary.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS5 &amp;amp; TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-116587063745968738?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/116587063745968738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=116587063745968738&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/116587063745968738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/116587063745968738'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/12/spell-checking-job-titles.html' title='Spell Checking Job Titles'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-116619166064090220</id><published>2006-12-18T08:44:00.000-05:00</published><updated>2006-12-15T09:11:09.393-05:00</updated><title type='text'>TIMSS 6:  Short Pay Codes</title><content type='html'>When setting up rate structures for products in TIMSS there is an option for the &lt;strong&gt;Short Pay Code&lt;/strong&gt; under each rate code&lt;strong&gt;:&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;ADJUST&lt;/strong&gt;- Accept whatever is paid&lt;br /&gt;&lt;strong&gt;AR&lt;/strong&gt;- Create Receivable&lt;br /&gt;&lt;strong&gt;REJECT&lt;/strong&gt;- Do not activate Order unless fully paid&lt;br /&gt;&lt;br /&gt;This code is used by TIMSS when the full amount is not paid for a product. &lt;strong&gt;ADJUST&lt;/strong&gt; could be used for fundraising products where you will accept what ever amount is paid by the customer. &lt;strong&gt;AR &lt;/strong&gt;makes the line status &lt;strong&gt;Active&lt;/strong&gt; and creates a receivable in TIMSS for when you want to give them the product but are going to go after them for the remaining balance. &lt;strong&gt;REJECT&lt;/strong&gt; keeps the order proforma until the full amount is paid (you don't want receivables).&lt;br /&gt;&lt;br /&gt;If a user tries to make a short pay order &lt;strong&gt;Active&lt;/strong&gt; and the &lt;strong&gt;Short Pay Code&lt;/strong&gt; is &lt;strong&gt;REJECT&lt;/strong&gt; they will receive the following message:&lt;br /&gt;&lt;br /&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/x/blogger/5664/2168/320/287610/REJECT.png" border="0" /&gt;&lt;br /&gt;&lt;p&gt;You should also note that once an order becomes &lt;strong&gt;Active&lt;/strong&gt;, you can not make it &lt;strong&gt;Proforma&lt;/strong&gt; again.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Applies to: TIMSS6&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-116619166064090220?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/116619166064090220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=116619166064090220&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/116619166064090220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/116619166064090220'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/12/timss-6-short-pay-codes.html' title='TIMSS 6:  Short Pay Codes'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-116468415402005768</id><published>2006-12-11T22:03:00.000-05:00</published><updated>2006-12-11T08:22:51.820-05:00</updated><title type='text'>TIMSS 6: Quick Pick Products Configuration</title><content type='html'>On the Call Center screen, there is an area for quick picks where your users can easily place order for products (see &lt;a href="http://robtimss.blogspot.com/2006/05/timss-6-ordering-multiple-products.html"&gt;TIMSS 6: Ordering Multiple Products&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;You can control what products are displayed on this panel of the Call Center screen on the &lt;strong&gt;&lt;em&gt;User Quick Picks Setup&lt;/em&gt;&lt;/strong&gt; screen (MRM000A).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/5664/2168/1600/quickpick.png"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/quickpick.png" border="0" /&gt;&lt;/a&gt;One thing I didn't like about this screen were the check boxes at the bottom, in particular the &lt;strong&gt;Make Quick Pick Product Available for All Users&lt;/strong&gt;. I didn't want to make this screen available to all staff since they could control what others saw. We don't use Fund Raising so the other is not applicable to us.&lt;br /&gt;&lt;br /&gt;So I hid these controls using Extender. Now everyone has access to this screen and they can only change what their own quick picks are.&lt;br /&gt;&lt;br /&gt;This data is stored in the &lt;strong&gt;PRODUCT_QUICK_PICK &lt;/strong&gt;table. The two notable columns in the table are the &lt;strong&gt;PUBLIC_FLAG&lt;/strong&gt; and the &lt;strong&gt;USER_ID&lt;/strong&gt;. If the &lt;strong&gt;PUBLIC_FLAG&lt;/strong&gt; is &lt;strong&gt;Y&lt;/strong&gt; then all users see this quick pick product. If it is &lt;strong&gt;N&lt;/strong&gt; then only the person in the &lt;strong&gt;USER_ID&lt;/strong&gt; column sees it in their quick picks.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-116468415402005768?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/116468415402005768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=116468415402005768&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/116468415402005768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/116468415402005768'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/12/timss-6-quick-pick-products.html' title='TIMSS 6: Quick Pick Products Configuration'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-116438662875803104</id><published>2006-12-04T11:11:00.000-05:00</published><updated>2006-12-06T09:36:51.996-05:00</updated><title type='text'>TIMSS 6: CUS_ALIAS Table</title><content type='html'>That the &lt;strong&gt;CUS_ALIAS_TABLE&lt;/strong&gt; is where TIMSS stores the aliases you create for a customer. Important fields in the table are the &lt;strong&gt;CUS_ALIAS_SEQ&lt;/strong&gt;, &lt;strong&gt;ALIAS_CODE&lt;/strong&gt;, and &lt;strong&gt;SEARCH_NAME&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;The &lt;strong&gt;SEARCH_NAME&lt;/strong&gt; is the alternate name that a user can search for and pull up this customer.&lt;br /&gt;&lt;br /&gt;The &lt;strong&gt;ALIAS_CODE&lt;/strong&gt; is a user defined code (the type is &lt;strong&gt;ALIAS&lt;/strong&gt;) that can be used to describe each alias entered in the table. I have&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&lt;u&gt;ALPHA&lt;/u&gt;&lt;/strong&gt;- The name we would use to sort this customer (company) alphabetically. The &lt;strong&gt;&lt;em&gt;Joe Smith Foundation&lt;/em&gt;&lt;/strong&gt;, would have an alias of &lt;strong&gt;&lt;em&gt;SMITH, JOE FOUNDATION&lt;/em&gt;&lt;/strong&gt;. The &lt;strong&gt;&lt;em&gt;Community Foundation of Greater Green Bay&lt;/em&gt;&lt;/strong&gt; would have an alias of &lt;em&gt;&lt;strong&gt;GREEN BAY, COMMUNITY FOUNDATION OF GREATER.&lt;/strong&gt; &lt;/em&gt;Since we store these as alias instead of elsewhere, they can be used when searching. &lt;/li&gt;&lt;li&gt;&lt;strong&gt;&lt;u&gt;MAIDEN&lt;/u&gt;&lt;/strong&gt;- Maiden Name- to store a woman's maiden name &lt;/li&gt;&lt;li&gt;&lt;strong&gt;&lt;u&gt;ACRONYM&lt;/u&gt;&lt;/strong&gt;- Acronym (&lt;strong&gt;&lt;em&gt;COF&lt;/em&gt;&lt;/strong&gt; for &lt;strong&gt;&lt;em&gt;Council on Foundations&lt;/em&gt;&lt;/strong&gt;) &lt;/li&gt;&lt;li&gt;&lt;strong&gt;&lt;u&gt;ALT-SPELL&lt;/u&gt;&lt;/strong&gt;-&lt;strong&gt; &lt;/strong&gt;Alt. Spelling- &lt;strong&gt;&lt;em&gt;SMITH;ROBERT&lt;/em&gt;&lt;/strong&gt; or &lt;strong&gt;&lt;em&gt;SMITH;BOB&lt;/em&gt;&lt;/strong&gt;, or we use it when a name has &lt;a href="http://robtimss.blogspot.com/2006/03/alternate-characters.html"&gt;alternate characters&lt;/a&gt;. &lt;/li&gt;&lt;li&gt;&lt;strong&gt;&lt;u&gt;DBA&lt;/u&gt;&lt;/strong&gt;- Doing Business As- some organizations use multiple names &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The &lt;strong&gt;ALIAS_CODE&lt;/strong&gt; is not a required field, but is very useful for tracking why an alias is used.&lt;/p&gt;&lt;p&gt;The &lt;strong&gt;CUS_ALIAS_SEQ&lt;/strong&gt; is a sequence number and used as a key in the table, each entry getting the next number. However, the alias with a &lt;strong&gt;CUS_ALIAS_SEQ&lt;/strong&gt; of zero is the primary &lt;strong&gt;SEARCH_NAME&lt;/strong&gt; and is the same as the &lt;strong&gt;SEARCH_NAME&lt;/strong&gt; in the customer table. You can not edit this primary alias on the Alias screen (CUS007) and can only change it by changing the customer's actual name.&lt;/p&gt;&lt;p&gt;I had some old converted data where the primary &lt;strong&gt;SEARCH_NAME&lt;/strong&gt; in the &lt;strong&gt;CUS_ALIAS_TABLE&lt;/strong&gt; did not match the &lt;strong&gt;SEARCH_NAME&lt;/strong&gt; in the &lt;strong&gt;CUSTOMER&lt;/strong&gt; table, so that something you might want to check.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-116438662875803104?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/116438662875803104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=116438662875803104&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/116438662875803104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/116438662875803104'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/12/timss-6-cusalias-table.html' title='TIMSS 6: CUS_ALIAS Table'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-116353813488980611</id><published>2006-11-27T15:38:00.000-05:00</published><updated>2006-11-24T11:10:54.933-05:00</updated><title type='text'>TIMSS 6: Revenue Distribution with Fixed Amount &amp; Remainder</title><content type='html'>Our membership dues are calculated on a dues schedule and can be from $400 to $50,000. We wanted to have the first $400 go to one revenue account and the remainder go to a second account.&lt;br /&gt;&lt;br /&gt;When setting up the revenue distribution you will setup 2 pairs by priority.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;For the $400 revenue pair, the % should be 0, the priority should be 1, and the amount 400.&lt;/li&gt;&lt;li&gt;For the next revenue pair, the % should be 100, the priority 2, and the amount all 9's.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5664/2168/400/rev_dist.png" border="0" /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-116353813488980611?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/116353813488980611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=116353813488980611&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/116353813488980611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/116353813488980611'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/11/timss-6-revenue-distribution-with.html' title='TIMSS 6: Revenue Distribution with Fixed Amount &amp; Remainder'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-116179824418129474</id><published>2006-11-20T13:22:00.000-05:00</published><updated>2006-11-20T13:13:24.596-05:00</updated><title type='text'>TIMSS 6:  Online Report Parameter Pick List</title><content type='html'>So you've written a Crystal report and attached it to a screen, and one of it's parameters needs to be one a few specific values. You can use the &lt;strong&gt;List SQL&lt;/strong&gt; at the bottom of the screen to allow users to select certain values.&lt;br /&gt;&lt;br /&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/list_sql2.png" border="0" /&gt; &lt;p&gt;You can put a query here to pull values to show in a list. Something from types and codes:&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;select code from app_code where subsystem='CUS' and type='GENDER'&lt;/span&gt;&lt;/p&gt;&lt;p&gt;or if your parameters don't exists anywhere you could use the following query:&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;select 'NORMAL' union select 'CFLT'&lt;/span&gt;&lt;/p&gt;&lt;p&gt;to get a listing of just NORMAL and CFLT.&lt;/p&gt;&lt;p&gt;When the report is run, there will be binoculars next to the field that the user can click on and select a value from the list. You should note that this &lt;strong&gt;List SQL&lt;/strong&gt; is available for each parameter, so which ever row you have highlighted in the parameter table above the &lt;strong&gt;List SQL&lt;/strong&gt; box will be the parameter that you are creating the list for.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-116179824418129474?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/116179824418129474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=116179824418129474&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/116179824418129474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/116179824418129474'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/11/timss-6-online-report-parameter-pick.html' title='TIMSS 6:  Online Report Parameter Pick List'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-116197517001704845</id><published>2006-11-13T14:43:00.000-05:00</published><updated>2006-11-14T15:29:02.806-05:00</updated><title type='text'>TIMSS 6:  Hot Key your Buttons</title><content type='html'>If you've added a button to a screen, you can make it so a hot key will click your button. In the customizer, all you need to do is name the button with an ampersand before the letter that you want to be the hot key.&lt;br /&gt;&lt;br /&gt;So if you added a &lt;strong&gt;Google&lt;/strong&gt; button to a screen and you want &lt;strong&gt;Alt-G&lt;/strong&gt; to launch the click event, you'd put an "&amp;" before the G in the Text property of the control.&lt;br /&gt;&lt;br /&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/hot_button2.jpg" border="0" /&gt;&lt;br /&gt;Then the button will be labeled &lt;strong&gt;&lt;u&gt;G&lt;/u&gt;oogle&lt;/strong&gt; and &lt;strong&gt;Alt-G&lt;/strong&gt; will start the click event. Make sure that there are no other hot keys for that letter.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-116197517001704845?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/116197517001704845/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=116197517001704845&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/116197517001704845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/116197517001704845'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/11/timss-6-hot-key-your-buttons.html' title='TIMSS 6:  Hot Key your Buttons'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-116242511418450568</id><published>2006-11-06T18:34:00.000-05:00</published><updated>2006-11-06T08:53:21.863-05:00</updated><title type='text'>Prepayment Liability Account</title><content type='html'>I was going though old emails on the listserv today and came across this from Tom B. regarding the Prepayment Liability Account. It's helpful information.&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;The name actually has been used in TIMSS for over 20 years and originally came from an accounting professor at the University of Chicago who consulted on the first design of the old RAMS accounting system and has been used ever since. (I even heard today that iMIS uses the same term but I can't verify that personally.) &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;The idea and accounting behind it is that when money comes into the organization and is applied to an order that has not been invoiced yet, you cannot consider that to be any kind of revenue because you haven't fulfilled any commitment on your part, i.e. shipped a product. When there is an active order for membership or subscription, the typical thing is to call these amounts Deferred Revenue. For inventoried products, these prepayment amounts are obviously liabilities to the organization until the product is shipped. If you don't ship, you owe the customer the money back. Once shipping takes place, the amount is transferred to a revenue account. Thus begat the term "Prepayment Liability" since this was an amount applied to a specific order prior to shipping and was applied to a GL account that appears on the liability section of the balance sheet. So, a PPL is a liability account. It is a form of deferred revenue but a special one that separates money received that isn’t yours yet because you haven’t invoiced versus money you know you will earn if you only follow through with scheduled deliveries of subscriptions or memberships.&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS5 &amp;amp; TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-116242511418450568?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/116242511418450568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=116242511418450568&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/116242511418450568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/116242511418450568'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/11/prepayment-liability-account.html' title='Prepayment Liability Account'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-116179019188883186</id><published>2006-10-30T11:29:00.000-05:00</published><updated>2006-10-30T13:30:43.930-05:00</updated><title type='text'>TIMSS 6:  Internal Staff Listing</title><content type='html'>We wanted to generate an internal staff listing with phone numbers, room numbers, departments, pictures &amp; bios from TIMSS. I didn't want to add department &amp;amp; room to the customer table since this information is only for a few customers.&lt;br /&gt;&lt;br /&gt;So I added these fields to the &lt;strong&gt;SEC_USER&lt;/strong&gt; table and the &lt;strong&gt;&lt;em&gt;User Setup&lt;/em&gt;&lt;/strong&gt; screen (SEC001) : &lt;em&gt;master customer id, room, department&lt;/em&gt;. This way I can join &lt;strong&gt;SEC_USER&lt;/strong&gt; with &lt;strong&gt;CUSTOMER&lt;/strong&gt; and get all the information I need (I had already added a BIO field on the customer table). I also setup a type for department and used a validation code to populate a drop-down on the screen.&lt;br /&gt;&lt;br /&gt;Now I just need to make sure my staff all have customer records and user ids.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-116179019188883186?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/116179019188883186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=116179019188883186&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/116179019188883186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/116179019188883186'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/10/timss-6-internal-staff-listing.html' title='TIMSS 6:  Internal Staff Listing'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-115998637625116762</id><published>2006-10-23T13:25:00.000-05:00</published><updated>2006-10-23T10:14:29.483-05:00</updated><title type='text'>TIMSS 6: "The" Company Names</title><content type='html'>In TIMSS 6, TMAR added a &lt;strong&gt;Prefix&lt;/strong&gt; field for a company's name. This is where you can store the word "The" for a company's name. For example &lt;strong&gt;&lt;em&gt;The Council on Foundations&lt;/em&gt;&lt;/strong&gt; would have &lt;strong&gt;&lt;em&gt;Council on Foundations&lt;/em&gt;&lt;/strong&gt; as the the company's name and the prefix would be &lt;strong&gt;&lt;em&gt;The&lt;/em&gt;&lt;/strong&gt;. These 2 would be combined to make the label name &lt;strong&gt;&lt;em&gt;The Council on Foundations&lt;/em&gt;&lt;/strong&gt;. The search name for this customer would be &lt;strong&gt;&lt;em&gt;COUNCIL ON FOUNDATIONS;THE. &lt;/em&gt;&lt;/strong&gt;It's very similar to how first and last names are stored for individuals.&lt;br /&gt;&lt;br /&gt;There are 2 places where you will see this &lt;strong&gt;Prefix&lt;/strong&gt; field: on CUS001SF where you create a company; and CUS003 when you can edit a company's name.&lt;br /&gt;&lt;br /&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/THE_name.png" border="0" /&gt;If all your companies are stored this way, you don't have to search for the name with and without the "The" in the name. Thus you have less chance of creating duplicates.&lt;br /&gt;&lt;br /&gt;There were some minor issues with this functionality, but they are fixed as of version 6.3.1.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-115998637625116762?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/115998637625116762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=115998637625116762&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115998637625116762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115998637625116762'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/10/timss-6-company-names.html' title='TIMSS 6: &quot;The&quot; Company Names'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-115996930703173894</id><published>2006-10-16T08:29:00.000-05:00</published><updated>2006-10-15T18:59:27.960-05:00</updated><title type='text'>TIMSS 6: Short-cut Keys</title><content type='html'>In TIMSS 6 there are serveal "hot keys" you can use so you don't have to use the mouse all the time (TIMSS 5 also has them). Here is a listing from the TIMSS 6 Help:&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Action&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Key-stroke Combination&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Adding a New Record&lt;/td&gt;&lt;td&gt;Ctrl + N&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Deleting a Record&lt;/td&gt;&lt;td&gt;Ctrl + D&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Saving a Record&lt;/td&gt;&lt;td&gt;Ctrl + S&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Find / QBE&lt;/td&gt;&lt;td&gt;Ctrl + Q (or F10)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Open Search/Binocular Screen&lt;/td&gt;&lt;td&gt;Ctrl + F&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Navigating between screens&lt;/td&gt;&lt;td&gt;Ctrl + F6&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Navigating between tabs&lt;/td&gt;&lt;td&gt;Go to the tab header and then use the left and right arrow keys to move between tabs&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Close the active window&lt;/td&gt;&lt;td&gt;Ctrl + F4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Close the application&lt;/td&gt;&lt;td&gt;Alt + F4&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Also, many buttons will have a letter underlined that can be used with the Alt key to "click" the button. For example the &lt;strong&gt;C&lt;/strong&gt; is underlined in this cancel button:&lt;br /&gt;&lt;br /&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/cancel.gif" border="0" /&gt;Hitting &lt;strong&gt;Alt+C&lt;/strong&gt; will be the same as clicking on this Cancel button.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS 6&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-115996930703173894?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/115996930703173894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=115996930703173894&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115996930703173894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115996930703173894'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/10/timss-6-short-cut-keys.html' title='TIMSS 6: Short-cut Keys'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-115990347408492001</id><published>2006-10-09T14:16:00.000-05:00</published><updated>2006-10-13T14:46:24.533-05:00</updated><title type='text'>TIMSS 6: Opening IE from TIMSS</title><content type='html'>This is really cool! So if you add a button to a screen in TIMSS and put the following in the OnClick event:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;Dim myTargetURL As String = "http://www.google.com"&lt;br /&gt;System.Diagnostics.Process.Start(myTargetURL)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;When you click on the button it will open up IE outside of TIMSS and go to the given website.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/5664/2168/1600/google_btn.gif"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/google_btn.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So I added a "Google" button to my Company screen (CUS001C) and put in the following for the OnClick event:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;Dim myTargetURL As String = "http://www.google.com/search?hl=en&amp;lr=&amp;amp;q=%22" +Myform.getformControlByName("txtCustName").text +"%22&amp;amp;btnG=Search"&lt;br /&gt;System.Diagnostics.Process.Start(myTargetURL)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This passes the company name to Google and does a search. I added quotes (%22) around the name so it would be an exact match.&lt;br /&gt;&lt;br /&gt;Or if you wanted to search the news instead, replace &lt;a href="http://www.google.com/search"&gt;http://www.google.com/search&lt;/a&gt; with &lt;a href="http://www.google.com/news"&gt;http://www.google.com/news&lt;/a&gt; in the passed URL to search for the company name in the news.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-115990347408492001?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/115990347408492001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=115990347408492001&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115990347408492001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115990347408492001'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/10/timss-6-opening-ie-from-timss.html' title='TIMSS 6: Opening IE from TIMSS'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-115944702878424614</id><published>2006-10-02T07:29:00.000-05:00</published><updated>2006-10-09T11:19:18.960-05:00</updated><title type='text'>SQL Server: TitleCase function</title><content type='html'>For those of you switching from Oracle to SQL server, one function that is missing is the InitCap that makes the first letter of every word capitalized. It's a handy function to have when cleaning up data.&lt;br /&gt;&lt;br /&gt;I have an SQL book that gives the following function that does the same thing.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;CREATE FUNCTION TitleCase (@StrIn NVARCHAR(1024))&lt;br /&gt;RETURNS NVARCHAR(1024)&lt;br /&gt;AS&lt;br /&gt;  BEGIN&lt;br /&gt;    DECLARE&lt;br /&gt;      @StrOut NVARCHAR(1024),&lt;br /&gt;      @CurrentPosition INT,&lt;br /&gt;      @NextSpace INT,&lt;br /&gt;      @CurrentWord NVARCHAR(1024),&lt;br /&gt;      @StrLen INT,&lt;br /&gt;      @LastWord BIT&lt;br /&gt;&lt;br /&gt;    SET @NextSpace = 1&lt;br /&gt;    SET @CurrentPosition = 1&lt;br /&gt;    SET @StrOut = ''&lt;br /&gt;    SET @StrLen = LEN(@StrIn)&lt;br /&gt;    SET @LastWord = 0&lt;br /&gt;&lt;br /&gt;    WHILE @LastWord = 0&lt;br /&gt;      BEGIN&lt;br /&gt;        SET @NextSpace = CHARINDEX(' ',RTRIM(@StrIn), @CurrentPosition)&lt;br /&gt;        IF  @NextSpace = 0 -- no more spaces found&lt;br /&gt;          BEGIN&lt;br /&gt;            SET @NextSpace = @StrLen&lt;br /&gt;            SET @LastWord = 1&lt;br /&gt;          END&lt;br /&gt;        SET @CurrentWord = UPPER(SUBSTRING(@StrIn, @CurrentPosition, 1))&lt;br /&gt;        SET @CurrentWord = @CurrentWord +&lt;br /&gt;LOWER(SUBSTRING(@StrIn, @CurrentPosition+1, @NextSpace - @CurrentPosition))&lt;br /&gt;        SET @StrOut = @StrOut +@CurrentWord&lt;br /&gt;        SET @CurrentPosition = @NextSpace + 1&lt;br /&gt;    END&lt;br /&gt;    RETURN @StrOut&lt;br /&gt;  END&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS5 &amp;amp; TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-115944702878424614?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/115944702878424614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=115944702878424614&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115944702878424614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115944702878424614'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/10/sql-server-titlecase-function.html' title='SQL Server: TitleCase function'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-115739055876139213</id><published>2006-09-25T12:21:00.000-05:00</published><updated>2006-09-27T06:03:58.493-05:00</updated><title type='text'>TIMSS 6:  Product Discounts</title><content type='html'>It's really easy to setup discounts in TIMSS 6. These discounts work automatically based on the customer and what's ordered. The two examples I'll show here are for bulk discounts on books, and a 5% discount applied to web orders with a given market code (actually called Promo Code in TCMS).&lt;br /&gt;&lt;br /&gt;One note of caution is that TIMSS will only apply one discount code per line item. When mulitple discounts can apply, TIMSS should go with the on that gives the customer the best price.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Bulk Discounts:&lt;/strong&gt; I've setup a discount of 20% on selected products when the quantity is between 11 and 20. The 20% is just for this item and only applies to the products in the table. At the bottom, the quantity is defined.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/Bulk_discount.png" border="0" /&gt;&lt;br /&gt;&lt;p&gt;When and order is placed, either through the TIMSS application or the TCMS, for one of the books where the quantity is between 11 and 2o, a 20% discount is applied automatically. You will see the discount code on the order so you know which was applied.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Promo Discount:&lt;/strong&gt; Here we wanted to reward those who purchased books through the web, so we are giving them a 5% discount when they purchase a book though TCMS (we sent them a coupon with a previous order to drive them to the website).&lt;/p&gt;&lt;p&gt;This discount is setup for the &lt;strong&gt;Order Level&lt;/strong&gt; so the whole order gets the disocunt. The market code is chosen (this must already be setup in TIMSS as a market code) and the method is selected was WEB.&lt;/p&gt;&lt;p&gt;At the bottom, this is only valid for a certain date range.&lt;/p&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/MktCode_discount.png" border="0" /&gt;&lt;/p&gt;&lt;p&gt;So when someone comes to our TCMS store, and puts a book in their cart. Before they check out, they enter the promo code (marketing code) and they get a 5% discount on their order (if it's in the date range).&lt;/p&gt;&lt;p&gt;The extremely nice thing is that there is no extra setup for TCMS. It follows the same rules as TIMSS right out of the box!&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-115739055876139213?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/115739055876139213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=115739055876139213&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115739055876139213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115739055876139213'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/09/timss-6-product-discounts.html' title='TIMSS 6:  Product Discounts'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-115738273545592256</id><published>2006-09-11T08:41:00.000-05:00</published><updated>2006-09-11T10:12:38.506-05:00</updated><title type='text'>Tweaking how TCMS web parts display</title><content type='html'>Aside from changing skins or the style sheet to change the format of how things are displayed, you can also tweak the aspx page for web parts to control how things are positioned.&lt;br /&gt;&lt;br /&gt;For example, if you don't like that the featured products web part displays the product's small image in 2 different ratios or has an extra space at the start of the product's name, you can change this in the &lt;em&gt;&lt;strong&gt;..DesktopModules\TimssFeaturedItems\ctrlFeaturedItemSm.ascx&lt;/strong&gt;&lt;/em&gt; file.&lt;br /&gt;&lt;br /&gt;In this file you will see how the web part is layed out. You can not control what data is returned. With a little HTML knowledge you can move tables around and change the sizing of images or remove their border.&lt;br /&gt;&lt;br /&gt;As always, you are responsible for any changes you make. If you break it and can't fix it, you will need to pay TMAR to fix it; and when you upgrade your changes may be over written. You may want to submit your changes to TIMSSCare so that the become a part of the base product.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-115738273545592256?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/115738273545592256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=115738273545592256&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115738273545592256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115738273545592256'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/09/tweaking-how-tcms-web-parts-display.html' title='Tweaking how TCMS web parts display'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-115618387679875824</id><published>2006-09-04T13:04:00.000-05:00</published><updated>2006-09-03T19:05:23.393-05:00</updated><title type='text'>TIMSS 6:  VeriSign Referral Error</title><content type='html'>When charging a card the other day, we received the following error when we tried to authorize the card:&lt;br /&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/Referral3.0.png" border="0" /&gt;&lt;br /&gt;When I went to the VeriSign Manager, I saw that the result code returned was 13 and looked it up (&lt;a href="http://knowledge.paypal.com"&gt;http://knowledge.paypal.com&lt;/a&gt;):&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Referral. Transaction was declined but could be approved with a verbal authorization from the bank that issued the card. Submit a manual Voice Authorization transaction and enter the verbal authorization code. You normally request a voice authorization from a card-issuing bank when you receive a result code 13, "Referral" error message. This indicates the card issuer is requesting direct contact with you (the merchant) in order to authorize the sale. Have the credit card number, expiration date, and amount available, before contacting the bank.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;I called the card issuer and they told me to have the card holder call them before the charge would go through.&lt;br /&gt;&lt;br /&gt;Turns out the customer had lost the card a couple months ago and the account was put on hold and this was the first time she tried to use it since.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-115618387679875824?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/115618387679875824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=115618387679875824&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115618387679875824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115618387679875824'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/09/timss-6-verisign-referral-error.html' title='TIMSS 6:  VeriSign Referral Error'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-115342376563979827</id><published>2006-08-28T14:15:00.000-05:00</published><updated>2006-08-29T10:27:05.743-05:00</updated><title type='text'>TIMSS 6: INV620 Packing Slip Mod</title><content type='html'>I wanted to add email and phone number to the packing slip that comes out of the TIMSS INV620 TRS process. I though I'd have to pay TMAR to do this simple mod because I can't modify the INV620.exe that the process runs. But I was wrong... I don't have to touch the exe.&lt;br /&gt;&lt;br /&gt;This process works off a stored procedure: &lt;strong&gt;INV620_sp&lt;/strong&gt;, a view: &lt;strong&gt;INV620_vw,&lt;/strong&gt; and a table: &lt;strong&gt;INV620_Processed. &lt;/strong&gt;So I added my 2 columns to the view (included &lt;strong&gt;primary_phone&lt;/strong&gt; &amp;amp; &lt;strong&gt;primary_email_address&lt;/strong&gt; in the view for the ship to customer), added the columns to the table, and updated the stored procedure to include these 2 columns... and voila! The next time I ran the process, the columns were available in the Crystal Report!&lt;br /&gt;&lt;br /&gt;For the Crystal Report, I ran the INV620 process and saved the output as a Crystal Report. Then I opened it, added the columns on the report where I wanted them and saved it as my new &lt;strong&gt;&lt;em&gt;INV620_PackSlip.rpt&lt;/em&gt;&lt;/strong&gt; report.&lt;br /&gt;&lt;br /&gt;I do have to caution you that anything you mess up and can't fix, TMAR will charge you to fix it. So do it in TTST first and make sure you can undo it. Also when you upgrade, you will be responsible to make sure it still works since you did it, not TMAR.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-115342376563979827?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/115342376563979827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=115342376563979827&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115342376563979827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115342376563979827'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/08/timss-6-inv620-packing-slip-mod.html' title='TIMSS 6: INV620 Packing Slip Mod'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-115464172583880838</id><published>2006-08-21T16:32:00.000-05:00</published><updated>2006-08-25T16:46:28.110-05:00</updated><title type='text'>TIMSS 6: Default Authorized Group for Batches</title><content type='html'>In TIMSS 6, batches can have an Authorized Group that can use the batch. This allows anyone to use or manipulate the batch who is a member of a given security group.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/FAR001-Group.jpg" border="0" /&gt;&lt;br /&gt;I have made the default group the one that has my accounting staff so that they always have access to all batches. I have done this by adding a constraint to the table that defaults in the group when a row is inserted into the FAR_BATCH table. I did it this way instead of through extender because there at batches that are created outside of the FAR001 Batch screen, for example TCMS eCommerce batches.&lt;br /&gt;&lt;br /&gt;I have hidden this field on the FAR001 screen, so that it's defaulted to that groups and it can't be changed on FAR001. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-115464172583880838?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/115464172583880838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=115464172583880838&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115464172583880838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115464172583880838'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/08/timss-6-default-authorized-group-for.html' title='TIMSS 6: Default Authorized Group for Batches'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-115514690073346394</id><published>2006-08-11T13:08:00.000-05:00</published><updated>2006-11-07T12:52:16.110-05:00</updated><title type='text'>TIMSS 6: Addresses</title><content type='html'>There seems to be a lot of confusion on how addresses are stored in TIMSS 6. First of all, addresses are broken into 2 parts: the address &amp; the address detail. The address is stored in the CUS_ADDRESS (AD) table and has the street address (i.e. Address lines, City, State, Zip, Country).&lt;br /&gt;&lt;br /&gt;The address detail, stored in the CUS_ADDRESS_DETAIL (CAD) table, has the label name, job title, company, personal line, mail stop, etc. It's stored this way so many customers can share the same street address.&lt;br /&gt;&lt;br /&gt;Joining the 2 tables is done on the CUS_ADDRESS_ID. The CAD will have the MASTER_CUSTOMER_ID of the customer we are looking at. The CA will have the MASTER_CUSTOMER_ID of the customer who is the "owner" of the address. There can be many references to the CUS_ADDRESS_ID in the CAD table, but only one in the CA table. If an address is linked, the MASTER_CUSTOMER_ID will be different customers (i.e. the person in the CAD is not the Owner of the address in the CA table).&lt;br /&gt;&lt;br /&gt;A primary address for the customer is denoted by the PRIORITY_SEQ field in the CAD. A value of 0 (zero) is the primary. The sequence also controls the display order on the Customer's Address tab.&lt;br /&gt;&lt;br /&gt;There are also FORMATTED_ADDRESS and FORMATTED_DETAIL fields in the CA &amp;amp; CAD tables, respectively, that have all the address lines separated by CRLF (carriage return/line feed, ASCII values 13 and 10). These 2 fields can be added together to give the full address label. It's very handy when merging into a document because you only have to use one field and it's already formatted for the given country as you've defined in TIMSS.&lt;br /&gt;&lt;br /&gt;When linking to an address (from the ORDER_DETAIL table) there are 3 thinks that make the address distinct: the MASTER_CUSTOMER_ID in the CAD table, the CUS_ADDRESS_ID, and the ADDRESS_TYPE_CODE in the CAD table. A customer can have multiple address, even multiple address linked to the same address, but they must be of different types.&lt;br /&gt;&lt;br /&gt;A couple handy views are in TIMSS. CUS_ADDRESS_VW can be used when linking to addresses from orders or committee terms. CUS_PRIMARY_ADDRESS_VW is an easy way to get the customer's primary address. You can always refer to these views for a reminder how the CA and CAD should be joined.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-115514690073346394?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/115514690073346394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=115514690073346394&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115514690073346394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115514690073346394'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/08/timss-6-addresses.html' title='TIMSS 6: Addresses'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-115410604950919760</id><published>2006-08-07T12:00:00.000-05:00</published><updated>2006-08-07T07:37:56.856-05:00</updated><title type='text'>TIMSS 6:  Hotel Blocking for Meetings</title><content type='html'>&lt;p&gt;I don't know how many clients actually use hotel blocking in TIMSS, but we use it extensively. The theory is that when you have a meeting, you book room blocks at hotels and your attendees will stay in those blocks. Usually the hotel will charge attrition if you don't book enough rooms in your block.&lt;br /&gt;&lt;br /&gt;TIMSS allows you to take hotel reservation requests with a meeting order. This is not only more convenient for your customers (one stop shopping), but you can also keep track of how many room nights your attendees actually booked at the hotel. TIMSS does not charge the customer for the reservation, instead (using the HTL500 report) you pass the reservations to the hotel and they charge the customer.&lt;br /&gt;&lt;br /&gt;To set this up: &lt;/p&gt;&lt;ol&gt;&lt;li&gt;Setup the hotel as a &lt;strong&gt;Facility&lt;/strong&gt;, adding room types on the appropriate tab&lt;/li&gt;&lt;li&gt;On the meeting setup screen for the main meeting product, go to the &lt;strong&gt;Hotel Blocking&lt;/strong&gt; tab and add your hotel&lt;/li&gt;&lt;li&gt;Create room blocks at the hotel.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;You will need to setup every room type for every night. One nice feature is the &lt;strong&gt;Nights &lt;/strong&gt;box which lets you choose a number of nights to create when setting up a Date. Thus it will copy that setup for so many nights (the field is only available when creating a date).&lt;/p&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/nights.png" border="0" /&gt;&lt;/p&gt;&lt;p&gt;Once you have setup the hotel(s), when you place an order for the meeting, go to the &lt;strong&gt;Product Specifics&lt;/strong&gt; tab, and click on the &lt;strong&gt;Hotel Blocking&lt;/strong&gt; button to reserve a hotel room for the order.&lt;/p&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/hotel.png" border="0" /&gt;&lt;/p&gt;On this screen, you can search for all room, reserved rooms, or available rooms. Check the boxes for the nights are each hotel and each room type to make a reservation. You can also set flags like &lt;strong&gt;Smoking&lt;/strong&gt;, &lt;strong&gt;Wheelchair&lt;/strong&gt; &lt;strong&gt;Access&lt;/strong&gt; &amp; &lt;strong&gt;Special Needs,&lt;/strong&gt; plus record any persons sharing the room. Credit card information stored on this screen will be passed to the hotel so they can charge the customer.&lt;br /&gt;&lt;p&gt;Now that you have reservations, you need to give them to the hotel. Running the HTL500 process will take all the reservations that haven't been reported to the hotel (based on the &lt;strong&gt;Reservation Status&lt;/strong&gt;) and create a report that you can send to the hotel.&lt;/p&gt;&lt;p&gt;Here are a couple of notes: &lt;/p&gt;&lt;ol&gt;&lt;li&gt;I changed the field from Non-Smoking to Smoking since most reservations are not smoking you only need to check the box when someone is a smoker and that saved processing time; I also had to modify the HTL500 report accordingly. &lt;/li&gt;&lt;li&gt;You need to be very clear on the departure date. If I'm staying on at the hotel from 9/18-9/20 does that mean I need a room on the 20th or only on the 19th. Just make sure you data entry staff and hotel are in agreement.&lt;/li&gt;&lt;li&gt;All hotels are different and want this information passed differently. Some will take a PDF and key it in, others want an excel file they can import. The good thing with a Crystal Report is that you can give them either, although you might need to modify the excel file a bit to get it in a good format for them.&lt;/li&gt;&lt;li&gt;If you are using TCMS there is a &lt;strong&gt;Web Enable &lt;/strong&gt;on each room block, so if there are rooms you don't want to make available on the web, that's the place to do it. Also in TCMS, to make the reservation, after you've purchased the meeting product, there is a tiny hotel icon( &lt;a href="http://photos1.blogger.com/blogger/5664/2168/1600/hotel_icon.gif"&gt;&lt;img style="CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/hotel_icon.gif" border="0" /&gt;&lt;/a&gt;) on the screen that the user has to click on to get to the reservation screen. I'm trying to make this more visible so that no one misses it... I don't want to be charged attrition!&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-115410604950919760?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/115410604950919760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=115410604950919760&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115410604950919760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115410604950919760'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/08/timss-6-hotel-blocking-for-meetings.html' title='TIMSS 6:  Hotel Blocking for Meetings'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-115417324492243047</id><published>2006-07-31T06:08:00.000-05:00</published><updated>2006-07-30T18:32:10.536-05:00</updated><title type='text'>TCMS:  IFRAME not scrolling to top</title><content type='html'>We are using TCMS in an IFRAME on our website. This way TCMS is a separate site but looks like it's still a part of our main website.&lt;br /&gt;&lt;br /&gt;One issue we had was that when visitors navigated within the TCMS IFRAME, the IFRAME was not scrolling to the top of the next page. For example, when checking out, the &lt;strong&gt;Place My Order&lt;/strong&gt; button is down far on the page, especially if there are several items in the cart. When the button is clicked, then order goes through and an invoice is displayed, however the IFRAME did not scroll to the top so the user might see a blank page, unless they scrolled up.&lt;br /&gt;&lt;br /&gt;I found the following solution on the web (&lt;a href="http://www.webmasterworld.com/forum21/10675.htm" target="_blank"&gt;http://www.webmasterworld.com/forum21/10675.htm&lt;/a&gt;) and it worked like a charm. On the page calling the IFRAME add the following function:&lt;br /&gt;&lt;br /&gt;&amp;lt;script language="javascript"&gt;&lt;br /&gt;function scrollTotop()&lt;br /&gt;{scroll(0,0);}&lt;br /&gt;&amp;lt;/script&gt;&lt;br /&gt;&lt;br /&gt;Then where the IFRAME is called add&lt;br /&gt;&lt;br /&gt;&amp;lt;IFRAME name="iframe" &lt;strong&gt;onload="scrollTotop()"&lt;/strong&gt; ... etc&gt;&lt;br /&gt;&lt;br /&gt;This way every time the IFRAME loads a page, it scrolls to the top.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-115417324492243047?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/115417324492243047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=115417324492243047&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115417324492243047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115417324492243047'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/07/tcms-iframe-not-scrolling-to-top.html' title='TCMS:  IFRAME not scrolling to top'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-115274082966100813</id><published>2006-07-24T06:46:00.000-05:00</published><updated>2006-07-23T14:22:02.523-05:00</updated><title type='text'>TIMSS 6: Searching for other fields</title><content type='html'>Say you wanted to search on a screen for a field that isn't on the search screen by default. You can add to the fields that you can search to so you can find exactly what you are looking for.&lt;br /&gt;&lt;br /&gt;For example, say you are in accounting and wanted to find all the meeting products that hadn't been validated yet so you could validate them. You'd want to add the VALID_FLAG to the search screen.&lt;br /&gt;&lt;br /&gt;To do this, first you will need to see what you are searching against on that screen. So open the MTG001 screen and click on the binoculars to open the search screen. Then click on the down arrow next to the name of the view to see it's actual name.&lt;br /&gt;&lt;br /&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/search.gif" border="0" /&gt;&lt;br /&gt;&lt;p&gt;Once you know what view/table you are searching against, open the &lt;strong&gt;Ad-Hoc/Query Metadata&lt;/strong&gt; screen and pull it up.&lt;/p&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/meta_search.gif" border="0" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Here you can add fields to query against when you hit the binoculars on any screen that searches against this view/table. &lt;/p&gt;&lt;p&gt;Moreover, if it is searching against a view you can alter that view in the database and then click the &lt;strong&gt;Synchronize with DB&lt;/strong&gt; button to have your new column shown here. For example, if you had add a column using extender and wanted to be able to search against it you could add it to the view and then to this screen.&lt;/p&gt;&lt;p&gt;Please note that TMAR may update views when you upgrade and your changes may be lost, so make note of things you've added.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-115274082966100813?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/115274082966100813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=115274082966100813&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115274082966100813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115274082966100813'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/07/timss-6-searching-for-other-fields.html' title='TIMSS 6: Searching for other fields'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-115189200281178312</id><published>2006-07-17T20:59:00.000-05:00</published><updated>2006-07-17T07:49:41.310-05:00</updated><title type='text'>TIMSS 6: Shipping Charges</title><content type='html'>There are four methods that can be used to calculate shipping in TIMSS:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;By Weight-&lt;/strong&gt; a flat rate plus an amount per a unit weight&lt;/li&gt;&lt;li&gt;&lt;strong&gt;By Price-&lt;/strong&gt; a percentage of the price is used for shipping&lt;/li&gt;&lt;li&gt;&lt;strong&gt;A Flat Rate-&lt;/strong&gt; a flat dollar amount is charged&lt;/li&gt;&lt;li&gt;&lt;strong&gt;By Schedule- &lt;/strong&gt;a fixed or percentage is used for different price ranges.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;You will need to set this up for each shipping method (SHIP_VIA in types &amp; codes) and for each country; although you can have more than one type of shipping calculation for each. &lt;/p&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/shipping_charges.gif" border="0" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I have 8 setups since I have 2 shipping methods: Standard &amp; Expedited, and four countries: USA, MEX, CAN, &amp;amp; ALL COUNTRIES (All other countries that don't have shipping defined). We charge shipping by a Schedule where an amount is charged based on the order total. For the USA: $0-$30=$5; $30.01-$75=$7.50; $75.01-$150=$12.50; an over $150=$15.00. &lt;/p&gt;&lt;p&gt;Once you have shipping setup, you should add it to each inventoried product. Domestic countries are setup on the Shipping Setup tab of the Org Unit Definition.&lt;/p&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/product_shipping_charges.gif" border="0" /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;For each product you can pick a calculation method that you've created. You may also add a surcharge (some extra shipping) and override the shipping calculation and give a dollar amount.&lt;/p&gt;&lt;p&gt;You will need to make sure that the SHIP_VIA codes and the Shipping Calculations are &lt;strong&gt;Available to Web&lt;/strong&gt; if you want to use these with TCMS. I have also updated the description of the SHIP_VIA codes since they are displayed when checking out in TCMS: &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Standard (5-10 days domestic; 4-6 weeks int'l)&lt;br /&gt;Expedited (2 days domestic; 5-7 days int'l)&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-115189200281178312?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/115189200281178312/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=115189200281178312&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115189200281178312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115189200281178312'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/07/timss-6-shipping-charges.html' title='TIMSS 6: Shipping Charges'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-115212856099939979</id><published>2006-07-10T06:13:00.000-05:00</published><updated>2006-07-09T11:14:39.590-05:00</updated><title type='text'>Meeting Confirmation Email</title><content type='html'>This came up on the listserv this week, so I figured I'd tell how we do meeting confirmation emails. Firstly, we require all regisrants to have an email address so we can email them confirmations.&lt;br /&gt;&lt;br /&gt;Then weekly we run the TRS &lt;strong&gt;ORD660&lt;/strong&gt; process in &lt;strong&gt;ACK&lt;/strong&gt; format for a selected meeting. This generates acknowledgement letters and (in &lt;strong&gt;PROD&lt;/strong&gt; mode) stores the data in the &lt;strong&gt;ORD660_Processed&lt;/strong&gt; table with the job key. The process picks up those orders that haven't had an acknowledgement letter, or have had a line item added after the acknowledgement letter date (stored on the order and populated by this process).&lt;br /&gt;&lt;br /&gt;We then have a Crystal reoprt that pulls orders for a particular job key run of ORD660 from the &lt;strong&gt;ORD660_Processed&lt;/strong&gt; table along with other pertant data (assistant email, hotel reservation dates, special needs). I'd show the query, but it's one of the longest I've written!&lt;br /&gt;&lt;br /&gt;This data is then merged with a Word document to send out an email. One run is done for the primary email address and another is done with the same information to the person's assistant's email address (&lt;strong&gt;ASSISTANT&lt;/strong&gt; is a phone location we use).&lt;br /&gt;&lt;br /&gt;When we were on TIMSS 5 we had a similar process, but the BJS job was &lt;strong&gt;MTG660&lt;/strong&gt; in &lt;strong&gt;ACK&lt;/strong&gt; mode and we used an Impromptu report to get the data from the &lt;strong&gt;MTG660_MASTER_TAB &lt;/strong&gt;table based on a job key.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS5 &amp;amp; TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-115212856099939979?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/115212856099939979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=115212856099939979&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115212856099939979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115212856099939979'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/07/meeting-confirmation-email.html' title='Meeting Confirmation Email'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-115089838256648722</id><published>2006-07-03T06:59:00.000-05:00</published><updated>2006-07-02T21:02:04.583-05:00</updated><title type='text'>Web account creation</title><content type='html'>We just launched a new website that is integrated with TIMSS using TCMS and web services. I was telling &lt;strong&gt;&lt;em&gt;our&lt;/em&gt;&lt;/strong&gt; good friend Sean about how new accounts are created on our site and he thought it was excellent blogging material, so here it is.&lt;br /&gt;&lt;br /&gt;When a new user comes to &lt;a href="http://www.cof.org"&gt;www.cof.org&lt;/a&gt; and wishes to create an account, the process is as follows:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The new user enters their email address (this will be their username).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;This email address is compared against primary email addresses (and usernames) in TIMSS.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If the email address already is in use, a password reset is sent to the user either for their existing account, or a new account with the email as the login is created and a password reset is sent.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If not in use, a message is sent to the address with a link to follow to complete the registration process (this validates the email address):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;A message has been sent to your e-mail address containing information about the registration process. You must use the link in this e-mail to complete the registration process.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;This message has been sent to you because you requested to sign-up for access to the Council on Foundation website at http://www.cof.org. Please follow the link provided below to complete the registration process. &lt;/span&gt;&lt;/span&gt;&lt;a href="https://www.cof.org/Account/NewAccounts.cfm?emailVerification=%2D3%3C%5EWVBTNG%2D20R7%26%240%20%20%250"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;https://www.cof.org/Account/NewAccounts.cfm?emailVerification=%2D3%3C%5EWVBTNG%2D20R7%26%240%20%20%250&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Following the link lets the new user enter their information (name, address, etc).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If the email domain is recognized as an organization's domain (i.e. cof.org) then the new user is linked to that organization. The Council's members are foundations and their employees and board members need to receive member benefits.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If the domain is not recognized (as is the case for many board members who have accounts elsewhere), the new user can pick which organization they should be affiliated with. This generates an email to our primary contact at the organization (if there is not an email for that contact, it is sent to a TIMSS administrator) for verification.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Yes, we do have a small issue where email primary addresses are not unique (foundations have one email address, or couples sharing an email address), but this number is small and it is very easy to get your own free email account. Using email addresses this way (as a username/unique identifier) is fairly common across the industry.&lt;/p&gt;&lt;p&gt;To help make email addresses unique, I've "extended" TIMSS to not allow email address with a location of ASSISTANT to be primary.&lt;/p&gt;&lt;p&gt;We did import the usernames (that weren't email addresses) and passwords into our new site (and thus TIMSS because that's where they are now stored) so everyone wouldn't need to create a new account.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Applies to TIMSS5, TIMSS6 &amp;amp; TIMSS7&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-115089838256648722?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/115089838256648722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=115089838256648722&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115089838256648722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115089838256648722'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/07/web-account-creation.html' title='Web account creation'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-115142486861565564</id><published>2006-06-27T11:09:00.000-05:00</published><updated>2006-06-29T18:20:41.356-05:00</updated><title type='text'>Tax on shipping charges in DC &amp; MD</title><content type='html'>I asked our lawyers if we were required to charge tax on shipping charges in DC &amp; MD (states where we have a presence). Here is what they determined for our organization:&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;District of Columbia&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;According to DC ST § 47-2002, sales tax is imposed on the gross receipts from sales. Gross receipts are defined in DC ST § 47-2001(h) as the total amount of sales prices for retail sales. According to DC ST § 47-2001(p)(2)(E), the term "sales price" does not include "transportation charges separately stated, if the transportation occurs after the sale of the property is made." This information was confirmed with Rochelle Washington (202-442-6636) of the DC Office of Tax and Revenue on June 27, 2006. Based upon this information, shipping charges are not subject to DC sales tax so long as the charges are separately itemized. Since our shipping is a combination of both shipping &amp;amp; handling, tax must be charged.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Maryland&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;According to the &lt;a href="http://business.marylandtaxes.com/taxinfo/salesanduse/Sales_Use_Tax_Facts.pdf"&gt;Maryland Sales and Use Tax Facts&lt;/a&gt; (July 2006-June 2007) , "separately stated shipping charges are not taxable; however, handling charges are a part of the taxable price." So long as shipping and handling charges are not combined, Maryland tax does not need to be applied to shipping charges. Since our shipping is a combination of both shipping &amp; handling, tax must be charged.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS5 &amp;amp; TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-115142486861565564?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/115142486861565564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=115142486861565564&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115142486861565564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/115142486861565564'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/06/tax-on-shipping-charges-in-dc-md.html' title='Tax on shipping charges in DC &amp; MD'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-114960139449858849</id><published>2006-06-26T10:24:00.000-05:00</published><updated>2006-06-26T11:25:49.336-05:00</updated><title type='text'>Processing Bounce-Backs</title><content type='html'>If your association is like mine, you send out large blast emails... which means you get a lot of bounce backs. Wouldn't it be nice if there was a piece of software that could help you process all the bounce backs? Well there is: &lt;a href="http://www.glocksoft.com/ep/index.htm"&gt;G-Lock Email Processor&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/glock.png" border="0" /&gt;&lt;br /&gt;This software will monitor an inbox and using rules you define, allow you to group similar types of bounce backs and let you get the email addresses they came from. Then you can update these email addresses in TIMSS.&lt;br /&gt;&lt;br /&gt;Yes, this is the second product I've mentioned from this company (see &lt;a href="http://robtimss.blogspot.com/2006/02/email-address-verification.html"&gt;Email Address Verification&lt;/a&gt;), and no they aren't paying me.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS5 &amp;amp; TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-114960139449858849?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/114960139449858849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=114960139449858849&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/114960139449858849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/114960139449858849'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/06/processing-bounce-backs.html' title='Processing Bounce-Backs'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-114964710124368936</id><published>2006-06-19T06:59:00.000-05:00</published><updated>2006-10-15T18:57:03.863-05:00</updated><title type='text'>TIMSS 6: Error Messages</title><content type='html'>Have you ever received an error message in TIMSS that had a spelling or grammar error? How about wishing you could add more info to an error message to make it clearer for your users? Well in TIMSS 6 you can. Error messages are stored in tables starting with APP_MESSAGE.&lt;br /&gt;&lt;br /&gt;For example:&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/error1.gif" border="0" /&gt;&lt;/p&gt;&lt;p&gt;can be found in APP_MESSAGE_TEXT as message 51 in the APP subsystem. And&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/error2.gif" border="0" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;can be found in APP_MESSAGE as message_id 18 in the CUS subsystem.&lt;/p&gt;&lt;p&gt;Please note that it's not obvious where the message is used so you might not want to change it too much. Also TMAR may update the message in a future release and overwrite your changes. Hopefully you will report your change to TIMSSCare and they will make the change to the message in the base product.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-114964710124368936?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/114964710124368936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=114964710124368936&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/114964710124368936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/114964710124368936'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/06/timss-6-error-messages.html' title='TIMSS 6: Error Messages'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-114884103822959129</id><published>2006-06-12T13:00:00.000-05:00</published><updated>2006-06-12T12:52:10.293-05:00</updated><title type='text'>TIMSS 6: POS Sales Tax</title><content type='html'>Sales tax can be automatically charged by TIMSS. In general, sales tax will be charged if three things are true: 1) a tax is setup for the location of the sale; 2) the product has a tax defined; and 3) the customer is taxable.&lt;br /&gt;&lt;br /&gt;Usually the location is where the product is shipped to, however if you are selling to the customer in-person (i.e. at your bookstore) you will charge the tax of the locality you are currently in.&lt;br /&gt;&lt;br /&gt;TIMSS handles this by letting you setup a POS (point of sale) batch. On the top right of FAR001 you can make this batch a POS batch by checking the box and putting in the country, state, and warehouse.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/POS%20Batch.gif" border="0" /&gt;&lt;br /&gt;&lt;p&gt;To charge tax in this locality, you will need to setup a tax for it.&lt;/p&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/POS%20Tax.gif" border="0" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Checking the &lt;strong&gt;POS&lt;/strong&gt; box (I've changed my caption to &lt;strong&gt;POS Only&lt;/strong&gt;) at the bottom right of ORD199 tells TIMSS that this tax should only be used on POS batches. So in the figures above, my conference bookstore is in PA and I will charge 7% tax on POS sales there.&lt;/p&gt;&lt;p&gt;I changed the caption (using extender) to make it clearer. If I only want to charge this tax for POS batches then I check the box, but in the case where my bookstore is at my headquarters in DC, I'd need to charge POS tax on sales there, as well as orders shipped to DC (since my business has a presence in DC I need to collect DC sales tax). Thus I would &lt;strong&gt;&lt;em&gt;NOT &lt;/em&gt;&lt;/strong&gt;check the &lt;strong&gt;POS&lt;/strong&gt; box for DC so that I can use it for both regular sales where products are shipped to DC and POS sales where they are bought at my bookstore in DC.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-114884103822959129?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/114884103822959129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=114884103822959129&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/114884103822959129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/114884103822959129'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/06/timss-6-pos-sales-tax.html' title='TIMSS 6: POS Sales Tax'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-114789634623867183</id><published>2006-06-06T07:57:00.000-05:00</published><updated>2006-06-06T08:15:36.380-05:00</updated><title type='text'>TIMSS 6:  More Extender Security &amp; Help</title><content type='html'>Here's some info from release notes about setting up field level security in TIMSS 6:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Field Level Security&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;You can set security for individual fields using Extender using the existing security codes under the SEC_PRIVILEGE type or create new ones. Use the SetObjectSecurity method and the ApplyField Security function to implement field level security.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Steps in setting up Field Level Security &lt;/strong&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Define an Extender field on TIMSS Screen. &lt;/li&gt;&lt;li&gt;Submit the Extender batch. &lt;/li&gt;&lt;li&gt;Create a new code under SEC_PRIVILEGE app type. &lt;/li&gt;&lt;li&gt;Assign appropriate privilege to user groups. &lt;/li&gt;&lt;li&gt;Open Extender screen again and invoke the MyForm.SetObjectSecurity method under appropriate event in the script. &lt;/li&gt;&lt;li&gt;Submit the Extender batch and deploy the Extender dll (...EXT.dll). &lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;strong&gt;SetObjectSecurity &lt;/strong&gt;&lt;/p&gt;&lt;p&gt;You can use public method SetObjectSecurity to enable/disable any object (e.g., textbox, drop down, button, and grid) using Extender.&lt;br /&gt;This method takes the following six parameters (two required and four optional) &lt;/p&gt;&lt;ol&gt;&lt;li&gt;pstrName - Name of the Control for which you setup the security.&lt;/li&gt;&lt;li&gt;pstrSecurityOperation - This is the custom security that needs to be setup. &lt;/li&gt;&lt;li&gt;strApplication (Optional) - The screen/application name on which the field exists.&lt;/li&gt;&lt;li&gt;pstrTablLevel1 (Optional) - The tab level 1 of the screen/application &lt;/li&gt;&lt;li&gt;pstrTablLevel2 (Optional) - The tab level 2 of the screen/application &lt;/li&gt;&lt;li&gt;pstrTablLevel3 (Optional) - The tab level 3 of the screen/application &lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;strong&gt;ApplyFieldSecurity &lt;/strong&gt;&lt;/p&gt;&lt;p&gt;You can use public function ApplyFieldSecurity to make a field non-editable and masked (like the SSN field on Individual screen) using Extender. This method takes following six parameters (three required and three optional) &lt;/p&gt;&lt;ol&gt;&lt;li&gt;pstrField - This parameter is used to pass the Textbox Value for which you setup the security &lt;/li&gt;&lt;li&gt;pstrSecurityOperation - This will be the custom security that needs to be setup. &lt;/li&gt;&lt;li&gt;pstrApplication - The screen/application name on which the field exists. &lt;/li&gt;&lt;li&gt;pstrMaskChar (Optional) - The character that is used for masking the chars of the field. The default is # &lt;/li&gt;&lt;li&gt;pintNumberOfDisplayChar (Optional) - The number of characters in the text field that you do not want to Mask. The default is 0 (Zero) &lt;/li&gt;&lt;li&gt;pstrDirection (Optional) - Which direction you want to mask. If you want to show the first set of characters and mask the rest then you pass the parameter as First. Otherwise pass End. The default is End.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Note: &lt;/em&gt;&lt;/strong&gt;This method works only for the Textbox type of controls which have string data. &lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Also if want to see the Extender Scripting Help document, when you have the Scripting Editor screen open, click on the blue question mark on the top right of the screen.&lt;/p&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/scripting_help.gif" border="0" /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-114789634623867183?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/114789634623867183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=114789634623867183&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/114789634623867183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/114789634623867183'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/06/timss-6-more-extender-security-help.html' title='TIMSS 6:  More Extender Security &amp; Help'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-114746044857242142</id><published>2006-05-31T17:00:00.000-05:00</published><updated>2006-05-31T16:49:26.713-05:00</updated><title type='text'>TIMSS 6:  Call Topic Security</title><content type='html'>For Contact Tracking (MRM001 &amp; MRM003) you can add security to control who can see certain call Topics and their Subjects.&lt;br /&gt;&lt;br /&gt;In Types and Codes (APP005) pull up the &lt;strong&gt;CALL_TOPIC&lt;/strong&gt; type. For the topic you want to add security to, make sure the &lt;strong&gt;Public Code &lt;/strong&gt;is not checked (Save and Refresh screen if needed). This will activate the &lt;strong&gt;Special Security&lt;/strong&gt; button at the bottom of the screen.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/Special_Sec.png" border="0" /&gt; &lt;/p&gt;&lt;p&gt;This will allow you to choose security groups that have access to these topics and their subjects when creating/updating a contact as well as when searching.&lt;/p&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/Special_Sec2.png" border="0" /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;br /&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-114746044857242142?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/114746044857242142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=114746044857242142&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/114746044857242142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/114746044857242142'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/05/timss-6-call-topic-security.html' title='TIMSS 6:  Call Topic Security'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-114765821387200096</id><published>2006-05-27T14:43:00.000-05:00</published><updated>2006-06-02T14:41:05.133-05:00</updated><title type='text'>Extender Scripting: Birth Date Validation</title><content type='html'>Someone at TAUG asked if it was possible to do validation on a customer's birth date. You can use the script below in the &lt;strong&gt;&lt;em&gt;OnValidated&lt;/em&gt;&lt;/strong&gt; event for the &lt;strong&gt;Birth Date&lt;/strong&gt; field on the Individual screen (CUSoo1I) to do just that.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;Public Sub dtBirthdate_OnValidated ( ByRef MyForm As Object, ByRef MyControl As Object)&lt;br /&gt;dim Age as String &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;If Myform.getformControlByName("dtBirthdate").text = "(none)" Or Myform.getformControlByName("dtBirthdate").text= "" Then&lt;br /&gt;Exit Sub&lt;br /&gt;End If&lt;br /&gt;Age=year(now())-year(Myform.getformControlByName("dtBirthdate").value)&lt;br /&gt;If Age&gt;100 or Age&amp;lt;15 then&lt;br /&gt;MsgBox("The age of the person is "+Age+". Please make sure the birth date is correct.",MsgBoxStyle.Information, "TIMSS - Information")&lt;br /&gt;End If&lt;br /&gt;End Sub&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If the person is over 100 or under 15 (ok, the calculation isn't exact but it's close enough) the user will get the following box:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" height="113" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/birth_date_validation.png" width="411" border="0" /&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-114765821387200096?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/114765821387200096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=114765821387200096&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/114765821387200096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/114765821387200096'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/05/extender-scripting-birth-date.html' title='Extender Scripting: Birth Date Validation'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-114745130815845200</id><published>2006-05-23T09:12:00.000-05:00</published><updated>2006-05-23T17:17:19.550-05:00</updated><title type='text'>TIMSS 6:  Ad-Hoc &amp; Search Grids</title><content type='html'>When searching or running an Ad-hoc Query in TIMSS 6, there are a few of things you can do to manipulate the table to make it easier to look at your data in the grid (the thrid April showed me at TAUG).&lt;br /&gt;&lt;br /&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/Query_Grid.0.gif" border="0" /&gt;&lt;br /&gt;&lt;strong&gt;Sorting:&lt;/strong&gt; You can sort on any of the columns by clicking on the name of the column. When you do so, you will see a grayed out arrow pointing up and the data will be sorted in ascending order. Clicking on it again will flip the arrow and change the sort to descending order.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Move Columns: &lt;/strong&gt;You can move columns in 2 ways. First you can drag and drop them. Second, you can click on the little black arrow next to the column name and choose which column you want to see displayed.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Splitting the Grid: &lt;/strong&gt;At the bottom left of the grid, you will see a little bar that you can grab and drag over. This will split the grid in two. This is handy when you are looking at a lot of fields and want to keep the customer ID or name on the left while scrolling on the right.&lt;br /&gt;&lt;br /&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/Query_Grid_split.0.gif" border="0" /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-114745130815845200?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/114745130815845200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=114745130815845200&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/114745130815845200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/114745130815845200'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/05/timss-6-ad-hoc-search-grids.html' title='TIMSS 6:  Ad-Hoc &amp; Search Grids'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-114601931009393974</id><published>2006-05-18T18:29:00.000-05:00</published><updated>2006-05-18T18:42:07.553-05:00</updated><title type='text'>Crystal Reports: Conditionally suppressing a Field</title><content type='html'>In Crystal Reports, you can suppress fields based some conditions you define. To do this, right click on the object and click the &lt;strong&gt;&lt;em&gt;Format&lt;/em&gt;&lt;/strong&gt; option to get the &lt;strong&gt;&lt;em&gt;Format Editor&lt;/em&gt;&lt;/strong&gt; window. The click on the button to the right of the &lt;strong&gt;&lt;em&gt;Suppress&lt;/em&gt;&lt;/strong&gt; check box.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://photos1.blogger.com/blogger/5664/2168/1600/CR_Format_Editor.gif"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/CR_Format_Editor.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;This opens the Formula Workshop screen. If the formula returns &lt;strong&gt;&lt;em&gt;TRUE&lt;/em&gt;&lt;/strong&gt; then the box is checked and the object is suppressed. If it is &lt;strong&gt;&lt;em&gt;FALSE&lt;/em&gt;&lt;/strong&gt; then the box is unchecked and the object is not suppressed.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/CR_Formula.png" border="0" /&gt;&lt;br /&gt;So in the example above when &lt;strong&gt;&lt;em&gt;PROSP_Filter&lt;/em&gt;&lt;/strong&gt; is &lt;strong&gt;&lt;em&gt;PROSP&lt;/em&gt;&lt;/strong&gt;, the object should be shown. Otherwise it should be suppressed. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS5 &amp;amp; TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-114601931009393974?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/114601931009393974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=114601931009393974&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/114601931009393974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/114601931009393974'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/05/crystal-reports-conditionally.html' title='Crystal Reports: Conditionally suppressing a Field'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-114747406720437101</id><published>2006-05-15T19:00:00.000-05:00</published><updated>2006-05-16T14:03:49.906-05:00</updated><title type='text'>TIMSS 6: Ordering Multiple Products</title><content type='html'>Here are a couple quick ways to order multiple products that I learned at TAUG.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;1. On the Call Center, you can select mulitple products from the &lt;strong&gt;Quick Pick Products &lt;/strong&gt;and enter one in the &lt;strong&gt;Product Code&lt;/strong&gt; at the bottom of the screen; then hit &lt;strong&gt;Enter Orders&lt;/strong&gt; to create an order with all of them. They can't be sub-products.&lt;/p&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/MRM001_ordering.4.png" border="0" /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;p&gt;2. On ORD001, when searching for a product, you can hold down &lt;strong&gt;&lt;em&gt;Ctrl&lt;/em&gt;&lt;/strong&gt; and select multiple products to be added to an order.&lt;/p&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/Search_ordering.2.png" border="0" /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-114747406720437101?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/114747406720437101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=114747406720437101&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/114747406720437101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/114747406720437101'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/05/timss-6-ordering-multiple-products.html' title='TIMSS 6: Ordering Multiple Products'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-114744959382181093</id><published>2006-05-12T10:49:00.000-05:00</published><updated>2006-05-12T10:59:54.066-05:00</updated><title type='text'>TAUG 2006 is over</title><content type='html'>TAUG 2006 is over now and I'd have to say it was a pretty good one. TMAR always puts on a great event and this was no exception. Not only was it great to see the old familiar faces, but it was also great meeting all the first time attendees.&lt;br /&gt;&lt;br /&gt;Thanks to all of you who told me that you get a lot out of this blog. One person told me that something he found here saved his organization $8,000!&lt;br /&gt;&lt;br /&gt;Even thought it was my sixth TAUG I still got a lot off good ideas and tips, one of which will save my staff a lot of time when entering orders. Don't worry, they will show up here soon. :) &lt;br /&gt;&lt;br /&gt;Although once again my favorite session had to be the open training session for 5 hours! Thanks to April and Parag for staying the extra hour and answering all our questions. It's always fun trying to stump you.&lt;br /&gt;&lt;br /&gt;What next year's TAUG really needs is new presenters (I need a rest). I know you all are doing some neat stuff, present it. You've got a year to prepare.&lt;br /&gt;&lt;br /&gt;See you all at the next TAUG in Albuquerque, April 22-25!&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS5 &amp; TIMSS6 &amp;amp; TIMSS7&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-114744959382181093?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/114744959382181093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=114744959382181093&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/114744959382181093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/114744959382181093'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/05/taug-2006-is-over.html' title='TAUG 2006 is over'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-114601856025662645</id><published>2006-05-06T13:05:00.000-05:00</published><updated>2006-05-06T13:09:02.163-05:00</updated><title type='text'>Crystal Reports: Using Parameters to Control a Report</title><content type='html'>When you add a Crystal Report to the TRS, you can control the behavior of the report using paramters that are passed to the report. Using the &lt;strong&gt;&lt;em&gt;Select Expert&lt;/em&gt;&lt;/strong&gt; you can use an &lt;strong&gt;&lt;em&gt;or&lt;/em&gt;&lt;/strong&gt; to control what happens.&lt;br /&gt;&lt;br /&gt;For example the &lt;strong&gt;&lt;em&gt;PROSP_Filter&lt;/em&gt;&lt;/strong&gt; parameter is used to pass either &lt;strong&gt;&lt;em&gt;ALL&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;PROSP&lt;/em&gt;&lt;/strong&gt; or &lt;strong&gt;&lt;em&gt;NON-PROSP&lt;/em&gt;&lt;/strong&gt; to control what &lt;strong&gt;&lt;em&gt;USR_COF_STATUS&lt;/em&gt;&lt;/strong&gt; is pulled for the report. In the statement below, only one of the conditions is true because of the paramete value:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;({?PROSP_Filter}="ALL"&lt;br /&gt;&lt;strong&gt;or&lt;/strong&gt; &lt;span style="color:#000099;"&gt;({?PROSP_Filter}="PROSP" &lt;strong&gt;and&lt;/strong&gt; {CUSTOMER.USR_COF_STATUS} in ["PROSP","RMEM"])&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;or&lt;/strong&gt; &lt;span style="color:#000099;"&gt;({?PROSP_Filter}="NON-PROSP" &lt;strong&gt;and&lt;/strong&gt; not({CUSTOMER.USR_COF_STATUS} in ["PROSP","RMEM"])&lt;/span&gt;))&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;For the &lt;strong&gt;&lt;em&gt;or&lt;/em&gt;&lt;/strong&gt; statements, both parts must be true, so the &lt;strong&gt;&lt;em&gt;PROSP_Filter&lt;/em&gt;&lt;/strong&gt; controls which &lt;strong&gt;&lt;em&gt;USR_COF_STATUS&lt;/em&gt;&lt;/strong&gt; is pulled for the report. You could obviously add more conditions to the &lt;strong&gt;&lt;em&gt;or &lt;/em&gt;&lt;/strong&gt;statements to give the parameter more control over what data is pulled for this report.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-114601856025662645?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/114601856025662645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=114601856025662645&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/114601856025662645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/114601856025662645'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/05/crystal-reports-using-parameters-to.html' title='Crystal Reports: Using Parameters to Control a Report'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-114520670875064293</id><published>2006-05-01T08:32:00.000-05:00</published><updated>2006-04-29T16:41:39.336-05:00</updated><title type='text'>Customer Class and Status</title><content type='html'>We use these fields extensively, but had to change slightly when we moved from 4.7.2 to 6.1.9.&lt;br /&gt;&lt;br /&gt;We use Customer Class to define what type of organization the customer is (or works for). For example a Community Foundation, a Family Foundation, an Attorney/Law Firm, or a Hotel.&lt;br /&gt;&lt;br /&gt;We were using Customer Status in TIMSS 4.7.2 to show how the customer was related to us. For example, a member, prospect, resigned member, or a collegial group. However in TIMSS 6, customer status had to be ACTIVE for a customer to be allowed to do things (I think this has been changed in a later version where you can define which codes mean ACTIVE).&lt;br /&gt;&lt;br /&gt;So I created an extender field to hold the converted status called &lt;strong&gt;&lt;em&gt;usr_cof_status&lt;/em&gt;&lt;/strong&gt;. This has worked splendidly.&lt;br /&gt;&lt;br /&gt;The main thing I would suggest is that when you have similar groups you want to be able to pull together, name them similarly so you can use the LIKE operator to pull them all in queries.&lt;br /&gt;&lt;br /&gt;For example, we have several forms of members that we want to count/pull as members, but we want to be able to easily differentiate them. So they have been named:&lt;br /&gt;&lt;br /&gt;MEMBER- a regular member&lt;br /&gt;MEMEMG- an emerging member&lt;br /&gt;MEMSUP- a supporting organization of a member&lt;br /&gt;MEMAFF- an affiliate of a member&lt;br /&gt;&lt;br /&gt;Using &lt;strong&gt;&lt;em&gt;LIKE 'MEM%'&lt;/em&gt;&lt;/strong&gt; (or &lt;strong&gt;&lt;em&gt;Starts With&lt;/em&gt;&lt;/strong&gt; in ad-hoc query) I can pull them all instead of listing them all out. More importantly, when searching on screens in TIMSS, one can just enter MEM to get them all since TIMSS also searches with the &lt;em&gt;&lt;strong&gt;LIKE&lt;/strong&gt;&lt;/em&gt; operator.&lt;br /&gt;&lt;br /&gt;The same was done with customer class, where we have&lt;br /&gt;&lt;br /&gt;CORPFDN- Corporate Foundation&lt;br /&gt;CORPGP- Corporate Giving Program&lt;br /&gt;CORPBO- Corporate Foundation &amp; Giving Program&lt;br /&gt;CORPNON- Non-US Corporate Foundation&lt;br /&gt;&lt;br /&gt;And if only my international foundation classes end in NON in them, I can search for &lt;strong&gt;&lt;em&gt;LIKE '%NON'&lt;/em&gt;&lt;/strong&gt; to get all the international foundations.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS5 &amp;amp; TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-114520670875064293?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/114520670875064293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=114520670875064293&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/114520670875064293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/114520670875064293'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/05/customer-class-and-status.html' title='Customer Class and Status'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-114520157744171468</id><published>2006-04-25T08:05:00.000-05:00</published><updated>2006-04-25T08:59:20.473-05:00</updated><title type='text'>Extender Scripting: Finding the right event</title><content type='html'>So you are writing scripts in the extender and you aren't sure which event fires when you when you want your code to be executed? Use a &lt;strong&gt;&lt;em&gt;MsgBox&lt;/em&gt;&lt;/strong&gt; to see which event fires when.&lt;br /&gt;&lt;br /&gt;In the event you are curious about, put the following statement:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;MsgBox("Test Message #1")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This will put a dialog box on the screen in TIMSS when the event fires.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5664/2168/320/test_message2.0.jpg" border="0" /&gt;You can obviously do this for multiple events, just change the message so you know which event gave the message box.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-114520157744171468?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/114520157744171468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=114520157744171468&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/114520157744171468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/114520157744171468'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/04/extender-scripting-finding-right-event.html' title='Extender Scripting: Finding the right event'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21442545.post-114555242179579202</id><published>2006-04-20T11:49:00.000-05:00</published><updated>2006-04-23T19:36:43.233-05:00</updated><title type='text'>TIMSS 6: Ad-Hoc &amp; Search Operators</title><content type='html'>I was inspired by Susannah 's WebEx on Ad-hoc Queries today. When looking at the Advanced Query in Ad-Hoc or the Search screen, there are several operators you can use. Below is a listing of them and how to use them.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Operator&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Example Data&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BT&lt;/td&gt;&lt;td&gt;Between 2 values, separated by commas (no space)&lt;/td&gt;&lt;td&gt;&lt;strong&gt;1/1/2005,1/31/2005&lt;/strong&gt; (e.g. date between, and including, 1/1/2005 and 1/31/2005 )&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ENDS&lt;/td&gt;&lt;td&gt;Ends with entered text&lt;/td&gt;&lt;td&gt;&lt;strong&gt;NON&lt;/strong&gt; (e.g. customer class ends with NON)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;EQ&lt;/td&gt;&lt;td&gt;Equals (=)&lt;/td&gt;&lt;td&gt;&lt;strong&gt;VA&lt;/strong&gt; (e.g. state equals VA)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GT&lt;/td&gt;&lt;td&gt;Greater than (&gt;)&lt;/td&gt;&lt;td&gt;&lt;strong&gt;12/31/2004&lt;/strong&gt; (e.g. date is greater than 12/31/2004)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GTE&lt;/td&gt;&lt;td&gt;Greater than or equal to (&gt;=)&lt;/td&gt;&lt;td&gt;&lt;strong&gt;12/31/2004&lt;/strong&gt; (e.g. date is greater than or equal to 12/31/2004)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HAS&lt;/td&gt;&lt;td&gt;Data as entered text in it&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Council&lt;/strong&gt; (e.g. Name has the word Council in it)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;IN&lt;/td&gt;&lt;td&gt;In list of values, separated by commas (no spaces)&lt;/td&gt;&lt;td&gt;&lt;strong&gt;MD,DC,VA&lt;/strong&gt; (e.g. State is either MD, DC, VA)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LT&lt;/td&gt;&lt;td&gt;Less than (&lt;)&lt;/td&gt;&lt;td&gt;&lt;strong&gt;12/31/2004&lt;/strong&gt; (e.g. date is less than 12/31/2004)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LTE&lt;/td&gt;&lt;td&gt;Less than or equal to (&lt;=)&lt;/td&gt;&lt;td&gt;&lt;strong&gt;12/31/2004&lt;/strong&gt; (e.g. date is less than or equal to 12/31/2004)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;NOT IN&lt;/td&gt;&lt;td&gt;Not in list of values, separated by commas (no spaces)&lt;/td&gt;&lt;td&gt;&lt;strong&gt;MD,DC,VA&lt;/strong&gt; (e.g. State is other than MD, DC, VA; and not missing)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;NOTEQ&lt;/td&gt;&lt;td&gt;Not equal to&lt;/td&gt;&lt;td&gt;&lt;strong&gt;VA&lt;/strong&gt; (e.g. state other than VA; and not missing)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;NOTNULL&lt;/td&gt;&lt;td&gt;Not missing&lt;/td&gt;&lt;td&gt;no data needed (e.g. email is not missing)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;NULL&lt;/td&gt;&lt;td&gt;Missing&lt;/td&gt;&lt;td&gt;no data needed (e.g. email is missing)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;STARTS&lt;/td&gt;&lt;td&gt;Starts with entered text&lt;/td&gt;&lt;td&gt;&lt;strong&gt;COR&lt;/strong&gt; (e.g. customer class starts with COR)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LT OR NULL&lt;/td&gt;&lt;td&gt;Less than or missing&lt;/td&gt;&lt;td&gt;&lt;strong&gt;12/31/2004&lt;/strong&gt; (e.g. date is less than 12/31/2004 or date is missing)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GT OR NULL&lt;/td&gt;&lt;td&gt;Greater than or missing&lt;/td&gt;&lt;td&gt;&lt;strong&gt;12/31/2004&lt;/strong&gt; (e.g. date is greater than 12/31/2004 or date is missing)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;When you setup the &lt;strong&gt;&lt;em&gt;Ad-Hoc Metadata &lt;/em&gt;&lt;/strong&gt;(META001), you can choose a default operator. The important thing to note here is that this is not only what will be defaulted on the &lt;strong&gt;&lt;em&gt;Advanced Query&lt;/em&gt;&lt;/strong&gt; tab, but is also the operator that is used on the &lt;strong&gt;&lt;em&gt;Simple Query&lt;/em&gt;&lt;/strong&gt; tab. If you are searching on the &lt;strong&gt;&lt;em&gt;Simple Query&lt;/em&gt;&lt;/strong&gt; tab and are unsure what the default operator is, click over to the &lt;strong&gt;&lt;em&gt;Advanced Query&lt;/em&gt;&lt;/strong&gt; tab and see what it is set to.&lt;br /&gt;&lt;br /&gt;Here are 2 update statements to set the default operator to &lt;strong&gt;&lt;em&gt;Starts With&lt;/em&gt;&lt;/strong&gt; for views you've already added (starting with &lt;strong&gt;&lt;em&gt;USR_&lt;/em&gt;&lt;/strong&gt;) and queries you've saved (where a value isn't already defined). They only update those that are &lt;strong&gt;S&lt;/strong&gt;tring values, not &lt;strong&gt;D&lt;/strong&gt;ate or &lt;strong&gt;N&lt;/strong&gt;uemeric.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;begin tran&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;update meta_query_view_column&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;set operator_code='STARTS'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;where view_name like 'USR_%'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;and datatype_code='S'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;rollback tran&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;begin tran&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;update meta_saved_query_detail &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;set operator_code='STARTS'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;where (filter_data is null or operator_code not in ('NULL','NOTNULL'))&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;and exists (select 1 from meta_query_view_column c &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;where c.view_name=meta_saved_query_detail.view_name &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;and c.column_name=meta_saved_query_detail.column_name &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;and c.datatype_code='S')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;rollback tran&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Applies to: TIMSS6&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21442545-114555242179579202?l=robtimss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robtimss.blogspot.com/feeds/114555242179579202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21442545&amp;postID=114555242179579202&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/114555242179579202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21442545/posts/default/114555242179579202'/><link rel='alternate' type='text/html' href='http://robtimss.blogspot.com/2006/04/timss-6-ad-hoc-search-operators.html' title='TIMSS 6: Ad-Hoc &amp; Search Operators'/><author><name>Rob Kaighn</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
