<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.infopathdev.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>InfoPath Dev</title><link>http://www.infopathdev.com/blogs/</link><description>InfoPath Dev is dedicated to bringing you the information and tools you need to be successful in your Microsoft Office InfoPath development projects.</description><dc:language>en-US</dc:language><generator>CommunityServer 2007 SP2 (Build: 20611.960)</generator><item><title>XPath's confusing not() function - inverting a boolean field</title><link>http://www.infopathdev.com/blogs/jimmy/archive/2008/10/25/xpath-s-confusing-not-function-inverting-a-boolean-field.aspx</link><pubDate>Sat, 25 Oct 2008 03:19:00 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:33522</guid><dc:creator>Jimmy</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;If you&amp;#39;ve ever tried to toggle a boolean field back and forth in an InfoPath form, or perform some behavior based on the inverse of a field&amp;#39;s value, you may have encountered a problem I found.&amp;nbsp; The not() function does not behave the way one would intuitively expect.&amp;nbsp; The online &lt;a class="" href="http://office.microsoft.com/en-us/infopath/HP011552811033.aspx"&gt;InfoPath function reference&lt;/a&gt; describes the function as follows:&lt;/p&gt;
&lt;table class=""&gt;

&lt;tr&gt;
&lt;td class=""&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b class="bterm"&gt;not &lt;/b&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/td&gt;
&lt;td class=""&gt;Returns true if the argument is false or null. Returns false if the argument is true or not null.&lt;/td&gt;
&lt;td class=""&gt;&lt;b class="bterm"&gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;So what happens when a field is false and not null? 
&lt;p&gt;In actuality, any time the not() function contains a reference to a field, it returns &lt;em&gt;true&lt;/em&gt; if&amp;nbsp;the field exists, and &lt;em&gt;false&lt;/em&gt; if it does not exist, regardless of its value.&lt;/p&gt;
&lt;p&gt;To demonstrate this, I&amp;#39;ve created an InfoPath form with a boolean field in an optional section, and set up a rule and expression box like this:&lt;/p&gt;
&lt;p&gt;&lt;img style="WIDTH:749px;HEIGHT:466px;" height="466" src="http://www.infopathdev.com/blogs/jimmy/notFunction/notRule.jpg" width="749" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;When I preview the form, it exhibits the following behavior:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.infopathdev.com/blogs/jimmy/notFunction/notChanges.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;not(field1)&lt;/strong&gt; is only true when &lt;em&gt;field1&lt;/em&gt; is non-existent, and when &lt;em&gt;field1&lt;/em&gt; has a value, &lt;strong&gt;not(field1)&lt;/strong&gt; is always false.&lt;br /&gt;What&amp;#39;s more, the button changes the value of &lt;em&gt;field1&lt;/em&gt; from true to false, but not from false to true. It&amp;#39;s only half of a toggle button!&lt;/p&gt;
&lt;p&gt;&lt;font size="+1"&gt;&lt;strong&gt;The solution:&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Despite all this, we can obtain the inverse of a boolean field&amp;#39;s value with a little finagling.&lt;/p&gt;
&lt;p&gt;The XPath expression &lt;strong&gt;field1 = &amp;quot;true&amp;quot;&lt;/strong&gt; will have the value &amp;quot;false&amp;quot; when &lt;em&gt;field1&lt;/em&gt; is false, and &amp;quot;true&amp;quot; when &lt;em&gt;field1&lt;/em&gt; is true; in other words, it will always follow &lt;em&gt;field1&lt;/em&gt;&amp;#39;s value whenever &lt;em&gt;field1&lt;/em&gt; exists.&amp;nbsp;&amp;nbsp;We can&amp;nbsp;conclude that &lt;strong&gt;not(field1 = &amp;quot;true&amp;quot;)&lt;/strong&gt; will be the inverse of &lt;em&gt;field1&lt;/em&gt;&amp;#39;s value, and that is certainly the case. But if we are going to use an equality expression to determine &lt;em&gt;field1&lt;/em&gt;&amp;#39;s value, we may as well ditch the not() function entirely, and just use the expression &lt;strong&gt;field1 = &lt;em&gt;&amp;quot;false&amp;quot;&lt;/em&gt;&lt;/strong&gt;, which will be &amp;quot;true&amp;quot; when &lt;em&gt;field1&lt;/em&gt; is false, and &amp;quot;false&amp;quot; when &lt;em&gt;field1&lt;/em&gt; is true.&amp;nbsp; Here are the new settings for the expression box and the button&amp;#39;s rule:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.infopathdev.com/blogs/jimmy/notFunction/goodNotRule.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;And when I preview the form, I see this behavior:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.infopathdev.com/blogs/jimmy/notFunction/goodNotChanges.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Both expressions have the inverse of the value of &lt;em&gt;field1&lt;/em&gt; when it exists, and the button correctly toggles &lt;em&gt;field1&lt;/em&gt;&amp;#39;s value. One final note is that the two expressions have different values when &lt;em&gt;field1&lt;/em&gt; does not exist.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=33522" width="1" height="1"&gt;</description></item><item><title>URL Input Parameters 'Gotcha'</title><link>http://www.infopathdev.com/blogs/hilary/archive/2008/10/07/url-input-parameters-gotcha.aspx</link><pubDate>Wed, 08 Oct 2008 01:55:00 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:32913</guid><dc:creator>Hilary Stoupa</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Ah, input parameters. It is so nice to be able to open a form with some values already filled in, isn&amp;#39;t it? Except, of course, when they don&amp;#39;t work. And to say they are a bear to debug would be an enormous understatement.&lt;/p&gt;
&lt;p&gt;I was recently helping a forum user with a form using input parameters passed in from a URL. Every thing &lt;strong&gt;looked&lt;/strong&gt; exactly right. But try as we might, we kept getting an error:&lt;br /&gt;&lt;img title="Given Key Not Present error" alt="Given Key Not Present error" src="http://www.infopathdev.com/blogs/hilary/Input%20Parameters/GivenKeyNotPresent.png" /&gt;&lt;/p&gt;
&lt;p&gt;And the field we wanted filled from the parameter remained blank:&lt;br /&gt;&lt;img title="Sad and blank field" style="WIDTH:249px;HEIGHT:43px;" height="43" alt="Sad and blank field" src="http://www.infopathdev.com/blogs/hilary/Input%20Parameters/BlankDepartment.png" width="249" /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;For purposes of demonstration, I&amp;#39;ll mopdify &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.office.infopath.loadingeventargs.inputparameters.aspx"&gt;this&lt;/a&gt; code posted on MSDN for the LoadingEventArgs.InputParameters property.&lt;/p&gt;
&lt;p&gt;My form code looks like this:&lt;/p&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;void&lt;/font&gt; FormEvents_Loading(&lt;font color="#0000ff"&gt;object&lt;/font&gt; sender, &lt;font color="#2b91af"&gt;LoadingEventArgs&lt;/font&gt; e)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;try&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;string&lt;/font&gt; vDept = e.InputParameters[&lt;font color="#a31515"&gt;&amp;quot;Dept&amp;quot;&lt;/font&gt;];&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#2b91af"&gt;XPathNavigator&lt;/font&gt; myNav = CreateNavigator();&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myNav.SelectSingleNode(&lt;font color="#a31515"&gt;&amp;quot;/my:TestForm/my:Department&amp;quot;&lt;/font&gt;, NamespaceManager).SetValue(vDept);&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;catch&lt;/font&gt; (&lt;font color="#2b91af"&gt;Exception&lt;/font&gt; ex)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#2b91af"&gt;MessageBox&lt;/font&gt;.Show(ex.Message);&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:10pt;LINE-HEIGHT:115%;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;Now, you&amp;#39;ll notice that unlike the MSDN sample, I&amp;#39;ve added a little bit of error handling. Without it, the input parameters fail silently. While that may be the preferred end result, while trying to figure out why your parameter isn&amp;#39;t populating a form field -- well, without a try/catch, you&amp;#39;ll end up weeping and smacking your forehead against your desk. We don&amp;#39;t want that. &lt;/p&gt;
&lt;p&gt;Basically, all this code does is get the value of the input parameter, and set a form field to that value. To use&amp;nbsp;the parameter, you&amp;#39;d add it to the URL for the template, like this:&lt;br /&gt;&lt;a href="http://sharepointsite/FormLibrary/Forms/template.xsn?Dept=Accounting"&gt;http://SharePointSite/FormLibrary/Forms/template.xsn?Dept=Accounting&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Sadly, follow this exactly and you will get the &amp;quot;Given Key not Present&amp;quot; error. Want to know why? Because on its way to your form, that parameter key got dropped to lower case. So did the value. So we &lt;strong&gt;think &lt;/strong&gt;we are sending in &lt;strong&gt;&amp;#39;Dept&amp;#39;&lt;/strong&gt; and &lt;strong&gt;&amp;#39;Accounting&amp;#39;&lt;/strong&gt; but in fact we are sending &lt;strong&gt;&amp;#39;dept&amp;#39;&lt;/strong&gt; and &lt;strong&gt;&amp;#39;accounting&amp;#39;&lt;/strong&gt;. Modify the code to:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt; vDept = e.InputParameters[&lt;font color="#a31515"&gt;&amp;quot;dept&amp;quot;&lt;/font&gt;];&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Guess what? No more error. Republish the form, and you can use the same input parameters from the URL above to open the form with the Department field filled:&lt;br /&gt;&lt;img title="Populated field" style="WIDTH:247px;HEIGHT:52px;" height="52" alt="Populated field" src="http://www.infopathdev.com/blogs/hilary/Input%20Parameters/PopulatedDepartment.png" width="247" /&gt;&lt;br /&gt;Do you notice the case of the word &lt;strong&gt;&amp;#39;accounting&amp;#39;&lt;/strong&gt;? The value passed was &lt;strong&gt;&amp;#39;Accounting&amp;#39;&lt;/strong&gt; -- and that is what lead me to guess that the parameter key was being changed to lower case as well.&lt;/p&gt;
&lt;p&gt;One last thing to keep in mind with URL input parameters -- be aware you are going to have to do some clean up if you are passing in strings like this. First off, you are going to lose any capitalization. Secondly, if you are passing in a string with spaces, be prepared to clean out all the &lt;strong&gt;&amp;#39;%20&amp;#39;&lt;/strong&gt;s.&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=32913" width="1" height="1"&gt;</description><category domain="http://www.infopathdev.com/blogs/hilary/archive/tags/Input+Parameters/default.aspx">Input Parameters</category></item><item><title>Creating a Web Link or href for SharePoint New Button on InfoPath Forms Library</title><link>http://www.infopathdev.com/blogs/rob/archive/2008/09/22/creating-a-web-link-for-sharepoint-new-on-infopath-forms-library.aspx</link><pubDate>Tue, 23 Sep 2008 00:49:00 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:32443</guid><dc:creator>NG_Nibbler</dc:creator><slash:comments>3</slash:comments><description>&lt;p&gt;Using the New button on a SharePoint InfoPath Document List is not intuitive for new SharePoint users.&amp;nbsp; It would be nice if users could simply click a web link to launch a new InfoPath Form.&amp;nbsp; Here is how to do this in a single&amp;nbsp;line URL&amp;nbsp;...&lt;/p&gt;
&lt;p&gt;Edit a Web Page and add a web link using this format:&lt;/p&gt;
&lt;p&gt;&amp;lt;a href=&amp;quot;BLOCKED SCRIPTcreateNewDocumentWithProgID(escapeProperlyCore(&amp;#39;http://{SERVER}/{SITE}/{LIBRARY}/Forms/template.xsn&amp;#39;, true), &amp;#39;http://{SERVER}/{SITE}/{LIBRARY}/&amp;#39;, &amp;#39;SharePoint.OpenXMLDocuments&amp;#39;, true)&amp;quot;&amp;gt;Create a New Document&amp;lt;/a&amp;gt;&lt;/p&gt;
&lt;p&gt;Note: if you see the words BLOCKED SCRIPT in the line above, replace it with &amp;#39;j a v a s c r i p t :&amp;#39;&amp;nbsp;without the single quotes as shown here and without any spaces.&amp;nbsp; This blog automatically replaces the key word &amp;#39;java script&amp;#39; (when run together) and the colon with the phrase BLOCKED SCRIPT.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;You must replace&amp;nbsp;{SERVER}, {SITE}, and {LIBRARY} with your path to the forms library.&amp;nbsp; Also, you can change the phrase &amp;quot;Create a New Document&amp;quot; to whatever you want.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;I have not done this yet, but I also believe that if you have more than one form published to a library, you will need to determine what the form&amp;#39;s name is.&amp;nbsp; The default name of &amp;quot;template.xsn&amp;quot; is used in the example above.&amp;nbsp; So, if you have more than one published form, you may need to change &amp;quot;template.xsn&amp;quot; to whatever it is called.&amp;nbsp; You can view and manage all InfoPath templates by going to the Forms Library where the form is published, then select: Settings--&amp;gt;Form Library Settings--&amp;gt;Advanced Settings.&lt;/p&gt;
&lt;p&gt;There are posts similar to this on the web; however, none of them are as &lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;concise as this &lt;/span&gt;single line launcher.&amp;nbsp; Credit for this goes to my colleague, Phil Chuang.&amp;nbsp; Thanks Phil.&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=32443" width="1" height="1"&gt;</description><category domain="http://www.infopathdev.com/blogs/rob/archive/tags/SharePoint+InfoPath+New+Button+Web+Link/default.aspx">SharePoint InfoPath New Button Web Link</category></item><item><title>Workaround for non-descriptive errors in IPFS</title><link>http://www.infopathdev.com/blogs/ernesto/archive/2008/09/19/workaround-for-non-descriptive-errors-in-ipfs.aspx</link><pubDate>Fri, 19 Sep 2008 21:41:00 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:32406</guid><dc:creator>ErnestoM</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Sometimes InfoPath Forms Server (IPFS) gives you a non-descriptive error when you try to admin-publish a form using the &amp;quot;Manage Form Templates&amp;quot; UI in SharePoint Central Administration. These steps could provide a more informative error message.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Deploy the solution via stsadm. First time installations should use uploadformtemplate; otherwise use upgradeformtemplate:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;stsadm -o uploadformtemplate -filename ...&lt;br /&gt;stsadm -o upgradeformtemplate -filename ... -upgradetype overwrite&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;This has to be done from the SharePoint machine. Typically stsadm lives in this folder: C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;For example, if the dropped solution is located on a machine from which the admin is term-served from, this can be used (modify the path as needed):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;stsadm -o upgradeformtemplate -filename &amp;quot;&lt;/em&gt;&lt;a&gt;&lt;em&gt;\\tsclient\C\SScore.xsn&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&amp;quot; -upgradetype overwrite&lt;br /&gt;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=32406" width="1" height="1"&gt;</description><category domain="http://www.infopathdev.com/blogs/ernesto/archive/tags/IPFS/default.aspx">IPFS</category></item><item><title>So you want to send an email.....</title><link>http://www.infopathdev.com/blogs/hilary/archive/2008/08/24/so-you-want-to-send-an-email.aspx</link><pubDate>Sun, 24 Aug 2008 17:52:00 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:31659</guid><dc:creator>Hilary Stoupa</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;There are two very common email scenarios with InfoPath. One -- you want to use an email submit connection but modify some things before the email goes out (common reasons: you&amp;#39;d like to use form fields in the Information section which is not currently supported in the user interface, you need more flexibility to determine who the email should be sent to, you have other logic you need to perform prior to sending the form) and two -- you don&amp;#39;t want to submit the form via email, you just need to send an email to someone with some form information in it. &lt;/p&gt;
&lt;p&gt;Let&amp;#39;s address both of those scenarios. A few caveats first&amp;nbsp;--for scenario 1, I haven&amp;#39;t included error handling. If your user cancels the submit when they see the preview of the email to be submitted, they are going to get some ugly messages. I&amp;#39;m sorry. It is Sunday afternoon, and I&amp;#39;m being a slacker. Also, for scenario 2, &amp;nbsp;your form will have to be full trust to do cool stuff like send an email that isn&amp;#39;t&amp;nbsp;based on a submit connection -- at least, mine had to be.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Here is the data source I&amp;#39;ll be using for all the samples, just so you know what the xpath is pointing to:&lt;br /&gt;&lt;img title="Data Source" style="WIDTH:274px;HEIGHT:124px;" height="124" alt="Data Source" src="http://www.infopathdev.com/blogs/hilary/Send%20Email/SendEmail1.png" width="274" /&gt;&lt;/p&gt;
&lt;p&gt;Okay, without further ado, scenario 1:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Modify email submit properties before submitting:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In this scenario, I have added an email submit connection to my form. My form submit options are set to use my email connection:&lt;/p&gt;
&lt;p&gt;&lt;img title="Submit Options dialog" style="WIDTH:389px;HEIGHT:342px;" height="342" alt="Submit Options dialog" src="http://www.infopathdev.com/blogs/hilary/Send%20Email/SendEmailSubmitOptions.png" width="389" /&gt;&lt;/p&gt;
&lt;p&gt;Also, I&amp;#39;ve added a button to my form that I&amp;#39;m &lt;strong&gt;*calling*&lt;/strong&gt; a submit button, but in reality, it is just an ordinary old button I&amp;#39;ve labeled Submit:&lt;/p&gt;
&lt;p&gt;&lt;img title="Button Properties" style="WIDTH:433px;HEIGHT:309px;" height="309" alt="Button Properties" src="http://www.infopathdev.com/blogs/hilary/Send%20Email/SendEmailSubmitButton1.png" width="433" /&gt;&lt;/p&gt;
&lt;p&gt;C# -- 2007 Object Model&lt;/p&gt;
&lt;blockquote&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;void&lt;/font&gt; btnSubmit_Clicked(&lt;font color="#0000ff"&gt;object&lt;/font&gt; sender, &lt;font color="#2b91af"&gt;ClickedEventArgs&lt;/font&gt; e)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;//get the value from the text field&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;string&lt;/font&gt; interestingText = MainDataSource.CreateNavigator().SelectSingleNode(&lt;font color="#a31515"&gt;&amp;quot;/my:myFields/my:textField&amp;quot;&lt;/font&gt;, NamespaceManager).Value;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;//get the value from the date field&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;string&lt;/font&gt; date = MainDataSource.CreateNavigator().SelectSingleNode(&lt;font color="#a31515"&gt;&amp;quot;/my:myFields/my:dateField&amp;quot;&lt;/font&gt;, NamespaceManager).Value;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;//get that email submit connection&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#2b91af"&gt;EmailSubmitConnection&lt;/font&gt; emailSubmit = (&lt;font color="#2b91af"&gt;EmailSubmitConnection&lt;/font&gt;)&lt;font color="#0000ff"&gt;this&lt;/font&gt;.DataConnections[&lt;font color="#a31515"&gt;&amp;quot;Email Submit&amp;quot;&lt;/font&gt;];&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;//set the introduction with a value from the form&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; emailSubmit.Introduction = &lt;font color="#a31515"&gt;&amp;quot;This is my shiny new introduction with a date from my form: &amp;quot;&lt;/font&gt; + date + &lt;font color="#a31515"&gt;&amp;quot;\nAnd an interesting value from a text field as well: &amp;quot;&lt;/font&gt; + interestingText;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;//submit the form&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;this&lt;/font&gt;.Submit();&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;VB.Net -- 2007 Object Model&lt;/p&gt;
&lt;blockquote&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;Public&lt;/font&gt; &lt;font color="#0000ff"&gt;Sub&lt;/font&gt; btnSubmit_Clicked(&lt;font color="#0000ff"&gt;ByVal&lt;/font&gt; sender &lt;font color="#0000ff"&gt;As&lt;/font&gt; &lt;font color="#0000ff"&gt;Object&lt;/font&gt;, &lt;font color="#0000ff"&gt;ByVal&lt;/font&gt; e &lt;font color="#0000ff"&gt;As&lt;/font&gt; ClickedEventArgs)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;&amp;#39;get the value from the text field&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;Dim&lt;/font&gt; interestingText &lt;font color="#0000ff"&gt;As&lt;/font&gt; &lt;font color="#0000ff"&gt;String&lt;/font&gt; = MainDataSource.CreateNavigator().SelectSingleNode(&lt;font color="#a31515"&gt;&amp;quot;/my:myFields/my:textField&amp;quot;&lt;/font&gt;, NamespaceManager).Value&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;&amp;#39;get the value from the date field&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;Dim&lt;/font&gt; dateField &lt;font color="#0000ff"&gt;As&lt;/font&gt; &lt;font color="#0000ff"&gt;String&lt;/font&gt; = MainDataSource.CreateNavigator().SelectSingleNode(&lt;font color="#a31515"&gt;&amp;quot;/my:myFields/my:dateField&amp;quot;&lt;/font&gt;, NamespaceManager).Value&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;&amp;#39;get that email submit connection&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;Dim&lt;/font&gt; emailSubmit &lt;font color="#0000ff"&gt;As&lt;/font&gt; EmailSubmitConnection = &lt;font color="#0000ff"&gt;Me&lt;/font&gt;.DataConnections(&lt;font color="#a31515"&gt;&amp;quot;Email Submit&amp;quot;&lt;/font&gt;)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;&amp;#39;set the introduction with a value from the form&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; emailSubmit.Introduction = &lt;font color="#a31515"&gt;&amp;quot;This is my shiny new introduction with a date from my form: &amp;quot;&lt;/font&gt; + dateField + System.Environment.NewLine + &lt;font color="#a31515"&gt;&amp;quot;And an interesting value from a text field as well: &amp;quot;&lt;/font&gt; + interestingText&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;&amp;#39;submit the form&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;Me&lt;/font&gt;.Submit()&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;End&lt;/font&gt; &lt;font color="#0000ff"&gt;Sub&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;And, scenario 2:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Send an email with some form information in it:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We are going to use a button click event (I named my button btnEmail -- nothing against the oh-so-intuitive IP default names like &amp;#39;CTRL15_23&amp;#39; but I am fond of slightly more meaningful names) and send an email to someone with information from the textField and the dateField in our form.&lt;/p&gt;
&lt;p&gt;C# -- 2007 Object Model&lt;/p&gt;
&lt;blockquote&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;void&lt;/font&gt; btnEmail_Clicked(&lt;font color="#0000ff"&gt;object&lt;/font&gt; sender, &lt;font color="#2b91af"&gt;ClickedEventArgs&lt;/font&gt; e)&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008000"&gt;//get the value from the text field&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;string&lt;/font&gt; subject = MainDataSource.CreateNavigator().SelectSingleNode(&lt;font color="#a31515"&gt;&amp;quot;/my:myFields/my:textField&amp;quot;&lt;/font&gt;, NamespaceManager).Value;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;//get the value from the date field&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;string&lt;/font&gt; date = MainDataSource.CreateNavigator().SelectSingleNode(&lt;font color="#a31515"&gt;&amp;quot;/my:myFields/my:dateField&amp;quot;&lt;/font&gt;, NamespaceManager).Value;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;//set the information for the message&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#2b91af"&gt;MailAddress&lt;/font&gt; from = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#2b91af"&gt;MailAddress&lt;/font&gt;(&amp;quot;&lt;font color="#a31515"&gt;someone@someplace.com&amp;quot;&lt;/font&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#2b91af"&gt;MailAddress&lt;/font&gt; to = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#2b91af"&gt;MailAddress&lt;/font&gt;(&lt;font color="#a31515"&gt;&amp;quot;someoneElse@someplace.com&amp;quot;&lt;/font&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#2b91af"&gt;MailMessage&lt;/font&gt; msgmail = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#2b91af"&gt;MailMessage&lt;/font&gt;(from, to);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;//the body has the date variable we created in it, the subject uses the value from our text box -- mind you, this is all made up for a demo, so it isn&amp;#39;t all that interesting&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msgmail.Body = &lt;font color="#a31515"&gt;&amp;quot;A new form was created on &amp;quot;&lt;/font&gt; + date + &lt;font color="#a31515"&gt;&amp;quot;. Please review it.&amp;quot;&lt;/font&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msgmail.Subject = subject;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;//this stuff is going to vary depending on your setup&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#2b91af"&gt;SmtpClient&lt;/font&gt; client = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#2b91af"&gt;SmtpClient&lt;/font&gt;(&lt;font color="#a31515"&gt;&amp;quot;smtp.someServer.com&amp;quot;&lt;/font&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; client.Credentials = &lt;font color="#0000ff"&gt;new&lt;/font&gt; System.Net.&lt;font color="#2b91af"&gt;NetworkCredential&lt;/font&gt;(&lt;font color="#a31515"&gt;&amp;quot;someUserName&amp;quot;&lt;/font&gt;, &lt;font color="#a31515"&gt;&amp;quot;somePassword&amp;quot;&lt;/font&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;//send that baby out&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; client.Send(msgmail);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;At the top of your code window, with the other &amp;quot;using&amp;quot; statements, be sure to add this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;font face="Courier New"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;"&gt; System.Net.Mail;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/font&gt;&lt;/font&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;VB.Net -- 2007 Object Model&lt;/p&gt;
&lt;blockquote&gt;&lt;font size="2"&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;Public&lt;/font&gt; &lt;font color="#0000ff"&gt;Sub&lt;/font&gt; btnEmail_Clicked(&lt;font color="#0000ff"&gt;ByVal&lt;/font&gt; sender &lt;font color="#0000ff"&gt;As&lt;/font&gt; &lt;font color="#0000ff"&gt;Object&lt;/font&gt;, &lt;font color="#0000ff"&gt;ByVal&lt;/font&gt; e &lt;font color="#0000ff"&gt;As&lt;/font&gt; ClickedEventArgs)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;&amp;#39;get the value from the text field&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;Dim&lt;/font&gt; subject &lt;font color="#0000ff"&gt;As&lt;/font&gt; &lt;font color="#0000ff"&gt;String&lt;/font&gt; = MainDataSource.CreateNavigator().SelectSingleNode(&lt;font color="#a31515"&gt;&amp;quot;/my:myFields/my:textField&amp;quot;&lt;/font&gt;, NamespaceManager).Value&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;&amp;#39;get the value from the date field&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;Dim&lt;/font&gt; dateField &lt;font color="#0000ff"&gt;as&lt;/font&gt; &lt;font color="#0000ff"&gt;String&lt;/font&gt; = MainDataSource.CreateNavigator().SelectSingleNode(&lt;font color="#a31515"&gt;&amp;quot;/my:myFields/my:dateField&amp;quot;&lt;/font&gt;, NamespaceManager).Value&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;&amp;#39;set the information for the message&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;Dim&lt;/font&gt; fromAddress &lt;font color="#0000ff"&gt;As&lt;/font&gt; MailAddress = &lt;font color="#0000ff"&gt;New&lt;/font&gt; MailAddress(&lt;font color="#a31515"&gt;&amp;quot;&lt;font style="FONT-SIZE:10pt;" color="#a31515"&gt;someone@someplace.com&lt;/font&gt;&amp;quot;&lt;/font&gt;)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;Dim&lt;/font&gt; toAddress &lt;font color="#0000ff"&gt;As&lt;/font&gt; MailAddress = &lt;font color="#0000ff"&gt;New&lt;/font&gt; MailAddress(&lt;font style="FONT-SIZE:10pt;" color="#a31515"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#a31515"&gt;someoneElse@someplace.com&amp;quot;&lt;/font&gt;)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;Dim&lt;/font&gt; msgmail &lt;font color="#0000ff"&gt;As&lt;/font&gt; MailMessage = &lt;font color="#0000ff"&gt;New&lt;/font&gt; MailMessage(fromAddress, toAddress)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;&amp;#39;the body has the date variable we created in it, the subject uses the value from our text box -- mind you, this is all made up for a demo, so it isn&amp;#39;t all that interesting&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msgmail.Body = &lt;font color="#a31515"&gt;&amp;quot;A new form was created on &amp;quot;&lt;/font&gt; + dateField + &lt;font color="#a31515"&gt;&amp;quot;. Please review it.&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msgmail.Subject = subject&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;&amp;#39;this stuff is going to vary depending on your setup&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;Dim&lt;/font&gt; client &lt;font color="#0000ff"&gt;As&lt;/font&gt; SmtpClient = &lt;font color="#0000ff"&gt;New&lt;/font&gt; SmtpClient(&lt;font color="#a31515"&gt;&amp;quot;smtp.someServer.com&amp;quot;&lt;/font&gt;)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; client.Credentials = &lt;font color="#0000ff"&gt;New&lt;/font&gt; System.Net.NetworkCredential(&lt;font color="#a31515"&gt;&lt;font style="FONT-SIZE:10pt;" color="#a31515"&gt;&amp;quot;someUserName&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;, &lt;/font&gt;&lt;font style="FONT-SIZE:10pt;" color="#a31515"&gt;&amp;quot;somePassword&amp;quot;&lt;/font&gt;&lt;/font&gt;)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;&amp;#39;send that baby out&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; client.Send(msgmail)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="PADDING-RIGHT:0in;MARGIN-TOP:0in;PADDING-LEFT:0in;FONT-SIZE:11pt;MARGIN-BOTTOM:0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;End&lt;/font&gt; &lt;font color="#0000ff"&gt;Sub&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;mso-no-proof:yes;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;At the top of your code window, with the other &amp;quot;Imports&amp;quot; statements, be sure to add this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;mso-no-proof:yes;"&gt;Imports&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;mso-no-proof:yes;"&gt; System.Net.Mail&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Now promise to only use your newfound powers for good, and have fun!&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=31659" width="1" height="1"&gt;</description><category domain="http://www.infopathdev.com/blogs/hilary/archive/tags/Email+Submit/default.aspx">Email Submit</category><category domain="http://www.infopathdev.com/blogs/hilary/archive/tags/Email/default.aspx">Email</category></item><item><title>InfoPath 2007 Object Model Map</title><link>http://www.infopathdev.com/blogs/hilary/archive/2008/08/22/infopath-2007-object-model-poster.aspx</link><pubDate>Fri, 22 Aug 2008 23:43:00 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:31655</guid><dc:creator>Hilary Stoupa</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Okay, I know I&amp;#39;m always a few days late to the picnic, but I found &lt;a href="http://www.infopathdev.com/blogs/hilary/InfoPathObjectModelMap.pdf"&gt;this&lt;/a&gt; great poster while online looking for something else, and thought this would be a great place to share it. Now if I just had a humongous color printer, I&amp;#39;d finally be able to gussy up my office properly....&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=31655" width="1" height="1"&gt;</description><category domain="http://www.infopathdev.com/blogs/hilary/archive/tags/2007+Object+Model/default.aspx">2007 Object Model</category></item><item><title>More new DBXL v2.2 Documentation published this week</title><link>http://www.infopathdev.com/blogs/ernesto/archive/2008/08/22/more-new-dbxl-v2-2-documentation-published-this-week.aspx</link><pubDate>Fri, 22 Aug 2008 21:33:00 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:31651</guid><dc:creator>ErnestoM</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;The following new documents have been published this week. &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;qForm:&lt;/strong&gt;&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/qform/entry31585.aspx"&gt;How To Manage qForm’s Client Side Notifications&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/qform/entry31601.aspx"&gt;How To Localize Your InfoPath with QdCatalogBase&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/qform/entry31590.aspx"&gt;How to use the template feature in qForm&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/qform/entry31564.aspx"&gt;How to customize Status values in qForm&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;Permissions:&lt;/strong&gt;&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/permissions/entry31562.aspx"&gt;An Overview of DBXL Permissions&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/permissions/entry31552.aspx"&gt;Three ways to configure provider permissions in web.config&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/permissions/entry31538.aspx"&gt;How To Enable QdFlow Permissions for a Document Type&lt;/a&gt; - note that this requires qForm&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;Document Deployer:&lt;/strong&gt;&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/document_deployer/entry31582.aspx"&gt;Document Deployer User Guide&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/document_deployer/entry31629.aspx"&gt;Deleting all documents for a document type using Document Deployer&lt;/a&gt;&amp;nbsp;- note that this download comes with the necessary scenario file&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/document_deployer/entry31630.aspx"&gt;Reshredding all documents for a document type using Document Deployer&lt;/a&gt;&amp;nbsp;- note that this download comes with the necessary scenario file&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;Other subjects:&lt;/strong&gt;&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/misc/entry31650.aspx"&gt;How to use Full Trust form templates in DBXL&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/misc/entry31581.aspx"&gt;How To Setup Server-Side E-Mail Notifications&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/bulk_operations/entry31584.aspx"&gt;Bulk Assignment Tool&lt;/a&gt;&amp;nbsp;- note that this scenario comes with the tool itself&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;
&lt;p&gt;Check them out if you are using or interested in using DBXL v2.2!&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=31651" width="1" height="1"&gt;</description></item><item><title>How To Add Documents to Another Document Type Inline</title><link>http://www.infopathdev.com/blogs/ernesto/archive/2008/08/20/how-to-add-documents-to-another-document-type-inline.aspx</link><pubDate>Wed, 20 Aug 2008 21:39:00 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:31607</guid><dc:creator>ErnestoM</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;A&amp;nbsp;solution that uses multiple Document Types that feed data to one another often requires one form to be filled out before another.&amp;nbsp; However, the user might not realize this requirement until he or she has already started filling out the second form. &lt;/p&gt;
&lt;p&gt;One example is when you have two Document Types: Customer and Timecard.&amp;nbsp; The Customer Document Type is a qForm that is only opened whenever customers need to be edited or added. The Timecard form pulls from the Customer Document Type to populate the drop-down for assigning hours to a Customer’s Accounts Payable registry.&amp;nbsp; If a user begins to fill out the Timecard form and the customer is not in the drop-down, it is much easier to add the new customer directly from within the Timecard form than having to open the separate Customer form.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.infopathdev.com/photos/dbxl_v22_documentation_images/images/31602/original.aspx" border="1" alt="" /&gt;&amp;nbsp;&lt;br /&gt;&lt;em&gt;Figure 1. A catalog form populating the drop-down for another form.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In this task we will look at the steps necessary to solve this problem.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;Add a Connection to SubmitDocument&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;1.&amp;nbsp;In InfoPath Design mode, open the Data Connections dialog, and then click Add.&lt;br /&gt;2.&amp;nbsp;Add a connection that will Receive data. In the following screen, select Web Service and click Next.&lt;br /&gt;3.&amp;nbsp;Type the URL to the DbxlDocumentService.asmx web service that corresponds to your DBXL installation.&lt;br /&gt;4.&amp;nbsp;Select the SubmitDocument web method, and then click Next.&lt;br /&gt;5.&amp;nbsp;For the docTypeName parameter, type the name of the Document Type that you will be adding documents to, but leave the rest blank.&amp;nbsp; Click Next.&lt;br /&gt;6.&amp;nbsp;Make sure the option to Store a copy of the data in the form template is unchecked, and then click Next.&lt;br /&gt;7.&amp;nbsp;Name the data connection something descriptive, deselect the option to Automatically retrieve data when the form is opened, and then click Finish.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;&lt;img src="http://www.infopathdev.com/photos/dbxl_v22_documentation_images/images/31603/original.aspx" border="1" alt="" /&gt;&lt;br /&gt;Figure 2. The data source for the SubmitDocument web method.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Add Controls to Input Necessary Data&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In the example of adding new Customers from the Timecard form, you will need a control on the view to collect all of the information you need to create a new Customer.&amp;nbsp; You can bind these controls to nodes on the Main DOM, but it is best practice to create a secondary data connection based off an XML document to collect the necessary data.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Get a sample XML document to be added as a secondary data connection&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;1.&amp;nbsp;Open the target form (in this example, the Customer form) as if you were ready to input a new Customer.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;a.&amp;nbsp;If the form is a Catalog form with qForm, click the Add Document button.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;2.&amp;nbsp;From the InfoPath File menu, select Save As.&lt;br /&gt;3.&amp;nbsp;Save the XML document to your desktop.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Now you have an empty XML document that embodies what DBXL is going to receive when adding a new document to the Document Type. In the next step we’ll add that XML Document to the Timecard Document Type to allow input of data.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Add the sample XML document to the host form template&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;1.&amp;nbsp;In the InfoPath Designer, open the Data Connections dialog, and click to Add a new Data Connection.&lt;br /&gt;2.&amp;nbsp;Select to add a new connection to Receive data.&lt;br /&gt;3.&amp;nbsp;Select to retrieve data from an XML Document.&lt;br /&gt;4.&amp;nbsp;Browse to and select the XML document saved to your desktop that was created in the previous section.&lt;br /&gt;5.&amp;nbsp;Select to Include the data as a resource file, and then click Next.&lt;br /&gt;6.&amp;nbsp;Name the data connection something significant, deselect the option to Automatically retrieve data when the form is opened, and click Finish.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Now that the data connection has been added, create the controls to allow entry of the data on the view.&amp;nbsp; Your design might look something like the Figure 3.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;img src="http://www.infopathdev.com/photos/dbxl_v22_documentation_images/images/31604/original.aspx" border="1" alt="" /&gt;&amp;nbsp;&lt;br /&gt;&lt;em&gt;Figure 3. Adding controls to collect document information.&lt;br /&gt;&lt;/em&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;Codeless versus Coded Implementation Techniques&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This task may be accomplished by using rules to construct the necessary XML structure and then submit that XML to the web service.&amp;nbsp;Using rules instead of code can be a quick and easy way to implement this feature for simple forms, but will quickly become too cumbersome for forms that have numerous fields.&amp;nbsp; In the case of adding more complicated documents, you should use the coded implementation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Adding Rules to Submit the New Document&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;After all controls have been added, you are ready to add the rules to the Upload button that will upload a new document. To construct the XML needed to submit to DBXL with Rules you must piece it together from one long string using the values that are stored in the secondary data source.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Breaking the XML Document into manageable pieces&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;1.&amp;nbsp;Open the XML Document saved to your desktop in a text editor, such as Notepad.&lt;br /&gt;2.&amp;nbsp;Separate the document into pieces that you will concatenate together with the values of the secondary data connection.&amp;nbsp; This process is shown in Figure 4.&lt;br /&gt;3.&amp;nbsp;Eliminate the Qdabra DBXL PI node, which will look like this: &amp;lt;?QdabraDBXL docid=&amp;quot;&amp;quot; doctype=&amp;quot;Customer&amp;quot; name=&amp;quot;&amp;quot; author=&amp;quot;&amp;quot; description=&amp;quot;&amp;quot; ?&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;img src="http://www.infopathdev.com/photos/dbxl_v22_documentation_images/images/31605/original.aspx" border="1" alt="" /&gt;&amp;nbsp;&lt;br /&gt;&lt;em&gt;Figure 4. Breaking up the XML.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Add the rules to the Upload button&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;1.&amp;nbsp;Add a rule to the Upload button that will set the value of the /myFields/dataFields/SubmitDocument/xml node, as seen in Figure 5.&lt;br /&gt;2.&amp;nbsp;For the value, click the fx button to add a new formula.&lt;br /&gt;3.&amp;nbsp;Select the option to edit the XPath directly, and type the following:&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;concat(‘XML Fragment 1’, XPath_to_FullName, ‘XML Fragment 2’, XPath_to_PhoneNum, ‘XML Fragment 3’, XPath_to_Email, ‘XML Fragment 4’)&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;4.&amp;nbsp;Be sure to replace the XML Fragment strings with the appropriate XML that you segmented in the previous step.&lt;br /&gt;5.&amp;nbsp;For the XPaths to the various nodes, you can click on the Insert Field or Value button in the expression builder to graphically find the node.&lt;br /&gt;6.&amp;nbsp;Click Ok until you are back to the Rules dialog box for the Upload button.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;At this point, you will have a button that creates the necessary XML on the secondary DOM, so now you must add the rules to query the appropriate data connections.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Add rules to query the data connections&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;1.&amp;nbsp;Click to add a new rule, select the Query Web Service action, and specify the SubmitNewDocument data connection. Make sure this rule executes after the rule that creates and sets the XML string.&lt;br /&gt;2.&amp;nbsp;Add another rule to query the data connection that pulls the Customer list from the database, and then close all dialog boxes.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;img src="http://www.infopathdev.com/photos/dbxl_v22_documentation_images/images/31606/original.aspx" border="1" alt="" /&gt;&amp;nbsp;&lt;br /&gt;&lt;em&gt;Figure 5. The completed rules.&lt;/em&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;Coded Implementation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Implementing this feature using managed code is much simpler and allows for easier manipulation of the XML fragments.&amp;nbsp; Below is an example of creating the necessary XML, loading it into the xml parameter, querying the web service, and then updating the view to reflect the new data.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;[InfoPathEventHandler(MatchPath=&amp;quot;btnUploadNewCustomer&amp;quot;, EventType=InfoPathEventType.OnClick)]&lt;br /&gt;public void btnUploadNewCustomer_OnClick(DocActionEvent e)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IXMLDOMNode nNewCustomerNode = builtInLogic.GetNode(domNewCustomer, &amp;quot;/my:QdCatalog&amp;quot;);&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set the query DOM with everything needed to query&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string name = builtInLogic.GetNodeValue(domNewCustomer, &amp;quot;/my:QdCatalog/my:QdForm/@my:name&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string author = builtInLogic.GetNodeValue(domNewCustomer, &amp;quot;/my:QdCatalog/my:QdForm/@my:author&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string description = builtInLogic.GetNodeValue(domNewCustomer, &amp;quot;/my:QdCatalog/my:QdForm/@my:description&amp;quot;);&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; builtInLogic.SetNodeValue(domSubmitNewCustomer, &amp;quot;/dfs:myFields/dfs:queryFields/tns:SubmitDocument/tns:name&amp;quot;, name);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; builtInLogic.SetNodeValue(domSubmitNewCustomer, &amp;quot;/dfs:myFields/dfs:queryFields/tns:SubmitDocument/tns:author&amp;quot;, author);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; builtInLogic.SetNodeValue(domSubmitNewCustomer, &amp;quot;/dfs:myFields/dfs:queryFields/tns:SubmitDocument/tns:description&amp;quot;, description);&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; builtInLogic.SetNodeValue(domSubmitNewCustomer, &amp;quot;/dfs:myFields/dfs:queryFields/tns:SubmitDocument/tns:xml&amp;quot;, nNewCustomerNode.xml);&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Upload the new customer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ((WebServiceAdapter2)thisXDocument.DataAdapters[&amp;quot;SubmitNewCustomer&amp;quot;]).Query();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Enumerate from the DB to pick up the latest customer&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ((WebServiceAdapter2)thisXDocument.DataAdapters[&amp;quot;EnumCustomer&amp;quot;]).Query();&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Determine the last one added in the list, assume sort by DocId is default&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string sLastCustomerDocId = builtInLogic.GetNodeValue(domCustomer, &amp;quot;/dfs:myFields/dfs:dataFields/ns1:GetColumnsForRows2bResponse/ns1:GetColumnsForRows2bResult/Rows/row[last()]/DocId&amp;quot;);&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set the value of the drop-down to the most recently added customer&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; builtInLogic.SetNodeValue(String.Format(&amp;quot;/my:QdCatalog/my:QdForm[ @my:docId = &amp;#39;{0}&amp;#39; ]/my:Estimate/my:Customer/my:CustomerDocId&amp;quot;, builtInLogic.DocIdToView), sLastCustomerDocId);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;}&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=31607" width="1" height="1"&gt;</description></item><item><title>Reshredding all documents for a document type using the Qdabra DBXL Migration Tool v2</title><link>http://www.infopathdev.com/blogs/david/archive/2008/08/19/reshredding-all-documents-for-a-document-type-using-the-qdabra-dbxl-migration-tool-v2.aspx</link><pubDate>Tue, 19 Aug 2008 19:28:00 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:31541</guid><dc:creator>Greg Collins</dc:creator><slash:comments>1</slash:comments><description>&lt;span style="mso-ansi-language:EN-CA;"&gt;If you have to reshred a lot of documents, there is an easier, automated way of doing this rather than&amp;nbsp;using Qdabra DBXL Administration Tool (aka DAT).&lt;/span&gt;&lt;span style="mso-ansi-language:EN-CA;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;ol&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0in 0in 0pt;"&gt;&lt;span style="mso-ansi-language:EN-CA;"&gt;Download and install the &lt;a class="" href="http://www.infopathdev.com/files/folders/dbxldownload/entry24682.aspx" target="_blank"&gt;Qdabra DBXL Migration Tool&lt;/a&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:EN-CA;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0in 0in 0pt;"&gt;&lt;span style="mso-ansi-language:EN-CA;"&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:EN-CA;"&gt;Download&amp;nbsp;the &lt;a class="" href="http://www.infopathdev.com/files/folders/dbxldownload/entry31479.aspx" target="_blank"&gt;Scenario File&lt;/a&gt; for documents reshredding.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0in 0in 0pt;"&gt;&lt;span style="mso-ansi-language:EN-CA;"&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:EN-CA;"&gt;Open the Migration Tool UI.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0in 0in 0pt;"&gt;&lt;span style="mso-ansi-language:EN-CA;"&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:EN-CA;"&gt;Make sure DBXL Server Root is set to your DBXL (normally http://myserver/QdabraWebService).&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0in 0in 0pt;"&gt;&lt;span style="mso-ansi-language:EN-CA;"&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:EN-CA;"&gt;Select the &amp;quot;custom&amp;quot; tab and load the scenario you&amp;#39;ve downloaded in step 2.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0in 0in 0pt;"&gt;&lt;span style="mso-ansi-language:EN-CA;"&gt;Scroll down in the scenario variables list and set &amp;quot;docType&amp;quot; to the document type you want to clear.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0in 0in 0pt;"&gt;&lt;span style="mso-ansi-language:EN-CA;"&gt;Scroll down the Scenario Variables list and change sourceDBXL/targetDBXL.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0in 0in 0pt;"&gt;&lt;span style="mso-ansi-language:EN-CA;"&gt;Select &amp;quot;ReshredDocuments&amp;quot; in the scenario runs and click &amp;quot;Run&amp;quot;. This should reshred all the documents from the specified document type:&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt;"&gt;&lt;span style="mso-ansi-language:EN-CA;"&gt;&amp;nbsp;&lt;img style="WIDTH:777px;HEIGHT:731px;" height="731" src="http://www.infopathdev.com/photos/blog_pictures/images/31480/original.aspx" width="777" alt="" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=31541" width="1" height="1"&gt;</description></item><item><title>More new DBXL v2.2 Documentation</title><link>http://www.infopathdev.com/blogs/ernesto/archive/2008/08/15/more-new-dbxl-v2-2-documentation.aspx</link><pubDate>Fri, 15 Aug 2008 22:22:00 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:31493</guid><dc:creator>ErnestoM</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;This week we have published three new documents related to DBXL v2.2.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If you are interested in setting up &lt;strong&gt;server-side notifications&lt;/strong&gt; for your forms, check out the document called &lt;a class="" href="http://www.infopathdev.com/files/folders/tools2/entry31310.aspx" target="_blank"&gt;How To Setup Server-Side E-Mail Notifications&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;If you are developing a solution based on our QdCatalogBase.xsn form and are interested in &lt;strong&gt;promoting properties&lt;/strong&gt; other than those promoted by default, check out &lt;a class="" href="http://www.infopathdev.com/files/folders/qform/entry31394.aspx" target="_blank"&gt;How to Use Promoted Properties in qForm&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;If you have an existing solution based on the QdCatalogBase.xsn form, you might be interested in deleting &lt;strong&gt;documents&lt;/strong&gt; for a variety of reasons. However, special care must be taken when doing this, as indicated in the DBXL v2.2 Release Notes. For information, please read &lt;a class="" href="http://www.infopathdev.com/files/folders/qform/entry31433.aspx" target="_blank"&gt;Deleting Documents and Flow for a qForm&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;For a full catalog of the available documentation for DBXL v2.2, please see the &lt;strong&gt;&lt;a class="" href="http://www.infopathdev.com/files/25/default.aspx"&gt;DBXL v2.2 Documentation&lt;/a&gt;&lt;/strong&gt; node in the Browse Folders menu&amp;nbsp;table.&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=31493" width="1" height="1"&gt;</description><category domain="http://www.infopathdev.com/blogs/ernesto/archive/tags/DBXL+v2.2/default.aspx">DBXL v2.2</category><category domain="http://www.infopathdev.com/blogs/ernesto/archive/tags/qForm/default.aspx">qForm</category><category domain="http://www.infopathdev.com/blogs/ernesto/archive/tags/Notifications/default.aspx">Notifications</category></item><item><title>Two new documents related to DBXL v2.2</title><link>http://www.infopathdev.com/blogs/ernesto/archive/2008/07/31/two-new-documents-related-to-dbxl-v2-2.aspx</link><pubDate>Thu, 31 Jul 2008 18:08:00 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:31079</guid><dc:creator>ErnestoM</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;While this week sees the publication of only two documents, they cover two very important topics.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;The &lt;a class="" href="http://www.infopathdev.com/files/folders/web_methods/entry31078.aspx"&gt;&lt;strong&gt;Web Service Developer&amp;#39;s Reference&lt;/strong&gt;&lt;/a&gt; contains development tips and web method descriptions, useful for anyone intending to develop a solution using DBXL.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;The &lt;strong&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/web_methods/entry30952.aspx"&gt;QueryDB User Manual&lt;/a&gt;&lt;/strong&gt; explains the use of QueryDB, a web method that allows your DBXL instance to gather data from SQL, as well as Query Builder, a form tool that makes&amp;nbsp;working with QueryDB an easy task.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;For the list of all available documents covering DBXL v2.2, click on the&amp;nbsp;&lt;a class="" href="http://www.infopathdev.com/files/25/default.aspx"&gt;DBXL v2.2&amp;nbsp;Documentation node&lt;/a&gt; on the right, as well as all its subnodes. Stay tuned for future updates!&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=31079" width="1" height="1"&gt;</description></item><item><title>New documentation available for DBXL v2.2!</title><link>http://www.infopathdev.com/blogs/ernesto/archive/2008/07/25/new-documentation-available-for-dbxl-v2-2.aspx</link><pubDate>Fri, 25 Jul 2008 19:38:00 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:30868</guid><dc:creator>ErnestoM</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Now that &lt;a class="" href="http://www.infopathdev.com/files/folders/dbxldownload/entry29778.aspx"&gt;DBXL v2.2 Beta is available on our website&lt;/a&gt;, we have begun to publish documents that relate to this new product. This week (June 21 to 25) we have published the following documents:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/qform/entry30714.aspx"&gt;&lt;strong&gt;How to Create Nodes in Taxonomy&lt;/strong&gt;&lt;/a&gt;: DBXL allows you to tag your qForm-based solution with a set of category filters. This document will explain how to use the qForm feature.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/web_methods/entry30829.aspx"&gt;Using DBXL Resources&lt;/a&gt;&lt;/strong&gt;: The DBXLResource API allows users to use custom XML in their DBXL Document Type Configurations. This document&amp;nbsp;explains various scenarios&amp;nbsp;that&amp;nbsp;merit the use of&amp;nbsp;XML resources.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/bulk_operations/entry31583.aspx"&gt;How To Use the Bulk Edit Tool&lt;/a&gt;&lt;/strong&gt;: Qdabra’s Bulk Edit Tool allows users to quickly perform bulk editing operations. This document will explain the options available in the Bulk Edit Tool, and it comes with the BulkEditForm.xsn file.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/misc/entry30715.aspx"&gt;Installing and using QuickSearch&lt;/a&gt;&lt;/strong&gt;: QuickSearch is a standalone web service that runs against DBXL v2.1 and v2.2. This document explains the steps required to&amp;nbsp;setup and use QuickSearch in your forms.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class=""&gt;&lt;strong&gt;How To Query the Active Directory Web Service&lt;/strong&gt;&lt;/a&gt;: The Active Directory Service supports two methods: GetUserInfo and GetMyInfo. This document will show you how to set up a sample form that queries GetUserInfo with a user-entered username string.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Mapping and shredding in DBXL is a hot topic in the forums. You can now find the following related documents on InfoPathDev.com:&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;p&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/mapping__shredding/entry30696.aspx"&gt;&lt;strong&gt;How to Configure Database Mappings in DBXL v2.2&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/mapping__shredding/entry30705.aspx"&gt;Setting up large database mappings&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/mapping__shredding/entry30704.aspx"&gt;Can&amp;#39;t delete when there are mapping errors&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/mapping__shredding/entry30703.aspx"&gt;Shredding Two Document Types to the Same Table Creates Duplicate Rows&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/mapping__shredding/entry30701.aspx"&gt;Shredding Without Key Returns Error in Database Mapping&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;
&lt;p&gt;
&lt;p&gt;For a full list of documents available for DBXL v2.2, see the DBXL v2.2 Documentation node.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.infopathdev.com/photos/dbxl_v22_documentation_images/images/30866/original.aspx" alt="" /&gt;&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=30868" width="1" height="1"&gt;</description><category domain="http://www.infopathdev.com/blogs/ernesto/archive/tags/DBXL+v2.2/default.aspx">DBXL v2.2</category></item><item><title>Take Two -- Mapping Data from Nested Repeating Tables to a SQL Database - DBXL v2.2</title><link>http://www.infopathdev.com/blogs/hilary/archive/2008/07/25/second-take-mapping-data-from-nested-repeating-tables-to-a-sql-database-dbxl-v2-2.aspx</link><pubDate>Fri, 25 Jul 2008 15:59:00 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:30855</guid><dc:creator>Hilary Stoupa</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;In an&amp;nbsp;&lt;a href="http://www.infopathdev.com/blogs/hilary/archive/2008/07/11/mapping-data-from-nested-repeating-tables-to-a-sql-database-dbxl-v2-2.aspx"&gt;earlier post&lt;/a&gt;, we looked at mapping data from nested repeating tables using DBXL v2.2. In that post, the SQL table associated with the main repeating form group used an identity column that was set to auto-increment for the key. DBXL, however, currently follows a delete and reshred model (see &lt;a href="http://www.infopathdev.com/files/folders/mapping__shredding/entry30703.aspx"&gt;this&lt;/a&gt; post by Ernesto for more information) which would mean that our identity would change every time the document was updated.&lt;/p&gt;
&lt;p&gt;While this may not be an issue for some scenarios, there could be cases where you would prefer your identity to remain a bit more stable. One way to work around this is to use the DocId (generated by DBXL) for your key -- after all, that&amp;nbsp;number remains the same for the life of the document. However, in our initial example, we have mapped a repeating group for the node path for our main table (Projects). We could have one to umpteen projects for a given DocId!&lt;/p&gt;
&lt;p&gt;I am sure there are many creative solutions to this problem, but only one occurred to me, and that is what I&amp;#39;d like to walk through in this post. What if we modify our Projects table to use a composite key consisting of the DocId and a ProjectId that identifies each project group in the document? We could do away with auto-incrementing completely. The foreign key on the Issues table would relate back to the DocId and ProjectId, and then, upon re-shredding, none of our identites will change. &lt;/p&gt;
&lt;p&gt;First, let&amp;#39;s modify our form schema:&lt;br /&gt;&lt;img title="Form with modified schema" style="WIDTH:355px;HEIGHT:290px;" height="290" alt="Form with modified schema" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataFormSchemaWithId.png" width="355" /&gt;&lt;/p&gt;
&lt;p&gt;We&amp;#39;ve added a ProjectId field. The datatype is integer, and it has a default value of &lt;strong&gt;count(../preceding-sibling::my:Project/my:ProjectId) + 1&lt;/strong&gt; which will give us a running count of our groups -- the field&amp;#39;s value will be 1 for the first group inserted, 2 for the second, and so forth.&lt;/p&gt;
&lt;p&gt;Now we need to modify our database. Add a column called ReportId (we&amp;#39;ll map the DocId to it) to both the Projects and the Issues tables. In the Projects table, remove the Identity specification from the ProjectId column, as we&amp;#39;ll now be mapping our new ProjectId field to that column.&lt;br /&gt;&lt;img title="Projects Table with new column" style="WIDTH:339px;HEIGHT:179px;" height="179" alt="Projects Table with new column" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataProjectsTable.png" width="339" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img title="Issues Table with new column" style="WIDTH:338px;HEIGHT:138px;" height="138" alt="Issues Table with new column" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataIssuesTable.png" width="338" /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;We need to set ReportId and ProjectId as a composite key for the Projects table. While your table is open in design view, right click anywhere on the canvas and select &lt;strong&gt;Indexes/Keys&lt;/strong&gt;:&lt;br /&gt;&lt;img title="Right click menu" style="WIDTH:180px;HEIGHT:215px;" height="215" alt="Right click menu" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataSelectIndex.png" width="180" /&gt;&lt;/p&gt;
&lt;p&gt;When the &lt;strong&gt;Indexes/Keys&lt;/strong&gt; window opens, you can select the button next to the &lt;strong&gt;Columns&lt;/strong&gt; field in the &lt;strong&gt;General&lt;/strong&gt; section and select the columns you wish to use for your composite key:&lt;br /&gt;&lt;img title="Indexes Keys window" style="WIDTH:563px;HEIGHT:357px;" height="357" alt="Indexes Keys window" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataIndexesKeys.png" width="563" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img title="Selecting columns" style="WIDTH:461px;HEIGHT:318px;" height="318" alt="Selecting columns" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MapppingDataIndexPrimary.png" width="461" /&gt;&lt;/p&gt;
&lt;p&gt;Don&amp;#39;t forget to modify the foreign key relationship with the issues table:&lt;br /&gt;&lt;img title="Foreign Key for Issues Table" style="WIDTH:461px;HEIGHT:347px;" height="347" alt="Foreign Key for Issues Table" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataForeignKey.png" width="461" /&gt;&lt;/p&gt;
&lt;p&gt;To our mapping! We need to make a few changes -- we are going to map ResourceId to the DocId and ProjectId to ProjectId. When you select your columns from the Database Tree, your keys will be marked as such. &lt;br /&gt;&lt;img title="Projects table mapped" style="WIDTH:707px;HEIGHT:240px;" height="240" alt="Projects table mapped" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataProjectsTableMapped.png" width="707" /&gt;&lt;/p&gt;
&lt;p&gt;Don&amp;#39;t forget -- special DBXL fields are available to you for mapping in the Schema Tree:&lt;br /&gt;&lt;img title="Schema tree, DBXL" style="WIDTH:269px;HEIGHT:362px;" height="362" alt="Schema tree, DBXL" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataSchemaTree.png" width="269" /&gt;&lt;/p&gt;
&lt;p&gt;Next, we adjust our Issues mapping to reflect our changes, first setting up our keys:&lt;br /&gt;&lt;img title="Issues keys mapped" style="WIDTH:710px;HEIGHT:129px;" height="129" alt="Issues keys mapped" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataMappingFKey.png" width="710" /&gt;&lt;/p&gt;
&lt;p&gt;And, after we add the rest of the Issues columns, our full map looks like this:&lt;br /&gt;&lt;img title="Fully mapped form" style="WIDTH:740px;HEIGHT:500px;" height="500" alt="Fully mapped form" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataFullMap.png" width="740" /&gt;&lt;/p&gt;
&lt;p&gt;Let&amp;#39;s cut to the fun part. We save our new mapping, and open our form, fill it out and submit it:&lt;br /&gt;&lt;img title="Filled out Status Report" style="WIDTH:790px;HEIGHT:464px;" height="464" alt="Filled out Status Report" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataFilledOutSR.png" width="790" /&gt;&lt;/p&gt;
&lt;p&gt;When you look at the tables, you can see that our DocId is being used for ReportId and the new ProjectId field is providing a ProjectId:&lt;br /&gt;&lt;img title="New Rows, Projects table" style="WIDTH:746px;HEIGHT:109px;" height="109" alt="New Rows, Projects table" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataNewRowsProjects.png" width="746" /&gt;&lt;/p&gt;
&lt;p&gt;And, in Issues, we are relating all of a project&amp;#39;s issues back to it, as well as relating the issues to the report:&lt;br /&gt;&lt;img title="New Rows, Issues table" style="WIDTH:544px;HEIGHT:104px;" height="104" alt="New Rows, Issues table" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataNewRowsIssues.png" width="544" /&gt;&lt;/p&gt;
&lt;p&gt;For greater database integrity, you could use the same approach as we used for Projects to provide the Issues group in the form an identity, and create an IssuesId column in your table. Your primary key for your Issues table could be a composite key consisting of ReportId, ProjectId and IssueId.&lt;/p&gt;
&lt;p&gt;We can now reopen our form that we just submitted and make some changes, as well as adding additional rows:&lt;br /&gt;&lt;img title="Updated form" style="WIDTH:797px;HEIGHT:564px;" height="564" alt="Updated form" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataUpdatedForm.png" width="797" /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Once again, we race to the database, happily clapping our hands, to make sure that all our identities remain unchanged and our new identities are what we would expect:&lt;br /&gt;&lt;img title="Updated Projects Table" style="WIDTH:743px;HEIGHT:103px;" height="103" alt="Updated Projects Table" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataUpdatedRowsProjects.png" width="743" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img title="Updated Issues Table" style="WIDTH:555px;HEIGHT:126px;" height="126" alt="Updated Issues Table" src="http://www.infopathdev.com/blogs/hilary/Mapping%20Take%20Two/MappingDataUpdatedRowsIssues.png" width="555" /&gt;&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=30855" width="1" height="1"&gt;</description><category domain="http://www.infopathdev.com/blogs/hilary/archive/tags/DBXL+v2.2/default.aspx">DBXL v2.2</category><category domain="http://www.infopathdev.com/blogs/hilary/archive/tags/Data+Mapping/default.aspx">Data Mapping</category></item><item><title>Codeless way of getting DBXL document properties (docid, doctype and DBXL URL)</title><link>http://www.infopathdev.com/blogs/david/archive/2008/07/22/codeless-way-of-getting-dbxl-document-properties-docid-doctype-and-dbxl-url.aspx</link><pubDate>Tue, 22 Jul 2008 03:08:00 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:30639</guid><dc:creator>davidair</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;A DBXL solution that is designed to be generic needs to be able to access several DBXL properties. For example, a solution that wants to display a hyperlink in an e-mail needs to be able to determine its docid and the DBXL URL.&lt;/p&gt;
&lt;p&gt;While it&amp;#39;s easy to write code to retrieve this data, it is often not desirable to do so. For instance, browser-based solutions are much harder to deploy when they contain code.&lt;/p&gt;
&lt;p&gt;This post describes a way of getting this information using only rules. Here is what you need to do:&lt;/p&gt;
&lt;p&gt;To get the DBXL document ID, add a docId field to your data source and set it on load via this rule:&lt;br /&gt;&lt;strong&gt;substring-before(substring-after(processing-instruction()[local-name(.) = &amp;quot;QdabraDBXL&amp;quot;], &amp;#39;docid=&amp;quot;&amp;#39;), &amp;#39;&amp;quot;&amp;#39;)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Note that this value will not be set for a new document&lt;/p&gt;
&lt;p&gt;To get the DBXL URL, add a url field to your data source and set it on load via this rule:&lt;br /&gt;&lt;strong&gt;substring-before(substring-after(processing-instruction()[local-name(.) = &amp;quot;mso-infoPathSolution&amp;quot;], &amp;#39;href=&amp;quot;&amp;#39;), &amp;quot;/Forms&amp;quot;)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Finally, to get the DBXL document type, add a doctype field to your data source and set it on load via this rule:&lt;br /&gt;&lt;strong&gt;substring-before(substring-after(processing-instruction()[local-name(.) = &amp;quot;mso-infoPathSolution&amp;quot;], concat(url, &amp;quot;/Forms/&amp;quot;)), &amp;quot;/template.xsn&amp;quot;)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Note how the last rule builds on the url value we&amp;#39;ve gotten previously.&lt;/p&gt;
&lt;p&gt;It is important to understand that these rules will only work after the InfoPath solution has been published to DBXL.&lt;/p&gt;
&lt;p&gt;You can download a full sample here: &lt;a href="http://www.infopathdev.com/files/folders/community_uploads/entry30638.aspx"&gt;http://www.infopathdev.com/files/folders/community_uploads/entry30638.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=30639" width="1" height="1"&gt;</description></item><item><title>Connecting an InfoPath Forms Services form template to DBXL v2.2</title><link>http://www.infopathdev.com/blogs/tomlaw/archive/2008/07/18/connecting-an-infopath-forms-services-form-template-to-dbxl-v2-2.aspx</link><pubDate>Sat, 19 Jul 2008 05:17:00 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:30599</guid><dc:creator>Tom Lawrence</dc:creator><slash:comments>1</slash:comments><description>




&lt;h1 class="Section1"&gt;&lt;b&gt;&lt;font face="Cambria" color="#365f91" size="4"&gt;&lt;span style="FONT-SIZE:14pt;LINE-HEIGHT:115%;"&gt;Connecting an InfoPath Forms Services form template to DBXL v2.2&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/h1&gt;
&lt;p class="MsoNormal"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;For users of the InfoPath application in Office 2007, DBXL has been providing a great way to easily connect forms with SQL databases. Now, with the increasing popularity of &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;InfoPath Forms Services (IPFS)&lt;/span&gt;&lt;/i&gt; running on &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Microsoft Office SharePoint Services (MOSS)&lt;/span&gt;&lt;/i&gt;, people are wondering how to connect an IPFS form template to a database using DBXL. It can be done, but for now it requires some form code to access the DBXL web services. This gets around the problem of IPFS being unable to open an xml document from any source other than a SharePoint document collection. Eventually, this should be easy to do from within DBXL without any code in the form template. To provide a solution now, this blog post intends to provide a tutorial of how-to steps for connecting an existing form template with DBXL for use on IPFS. This blog post builds on the initial idea outlined by David Airapetyan in a blog entry at &lt;/span&gt;&lt;span&gt;&lt;a href="http://www.infopathdev.com/blogs/david/archive/2008/05/05/browser-forms-and-dbxl.aspx"&gt;&lt;span&gt;http://www.infopathdev.com/blogs/david/archive/2008/05/05/browser-forms-and-dbxl.aspx&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/font&gt;.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;At the end of this tutorial you should have an IPFS-ready form template that can submit documents to DBXL and load them through the use of a querystring added the IPFS launch URL for your template.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-WEIGHT:bold;FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;I. Preparations&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;I will make some assumptions during this tutorial about how the form template is set up. The instructions provided here can be adapted to any form template. However, if you are not an advanced form template developer you may wish to follow the tutorial through once exactly as described before attempting this on a different form template.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;I will be customizing the ExpenseReport sample that comes with InfoPath. This form template does not contain any existing load or submit handlers. If your form template does, you’ll need to modify them as fits your scenario to connect with the sample code I provide in this tutorial.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;I will assume you have a working SharePoint and MOSS 2007 server, have verified that IPFS is working correctly on simple forms, and that DBXL v2.2 installed and working on the main SharePoint web site at port 80.&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-WEIGHT:bold;FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;II. Modifying the InfoPath Form Template in the Designer&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;u&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;Creating the Form&lt;/span&gt;&lt;/font&gt;&lt;/u&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;Start InfoPath. In the dialog box that opens, click &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Design a Form Template...&lt;/span&gt;&lt;/i&gt;, then click &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Customize a Sample...&lt;/span&gt;&lt;/i&gt;, then choose the template called &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Sample - Expense Report&lt;/span&gt;&lt;/i&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;Save the form template to a convenient location. We’ll need to save the form in order to add code to it. Don’t worry about publishing yet.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;u&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;Creating the &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;GetDocument&lt;/span&gt;&lt;/i&gt; and &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;SubmitDocument&lt;/span&gt;&lt;/i&gt; data adapters&lt;/span&gt;&lt;/font&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;The form code will use two web service data adapters, one called &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;GetDocument&lt;/span&gt;&lt;/i&gt; which will retrieve document data from DBXL, the other called &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;SubmitDocument&lt;/span&gt;&lt;/i&gt; which will post a modified document back to DBXL. First, we’ll configure the &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;GetDocument&lt;/span&gt;&lt;/i&gt; data adapter.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;ol start="3"&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;From the &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Tools&lt;/span&gt;&lt;/i&gt; menu, choose &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Data Connections...&lt;/span&gt;&lt;/i&gt;, then click the &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Add...&lt;/span&gt;&lt;/i&gt; button.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;Select the &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Create a new connection to&lt;/span&gt;&lt;/i&gt; radio button. Then choose &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Receive data&lt;/span&gt;&lt;/i&gt;. Click &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Next&lt;/span&gt;&lt;/i&gt; in the wizard.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;&amp;nbsp;Under &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;From where do you want to receive your data?&lt;/span&gt;&lt;/i&gt;, choose &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Web service&lt;/span&gt;&lt;/i&gt;. Click &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Next&lt;/span&gt;&lt;/i&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;Enter the location of the Qdabra DBXL Document web service. It likely looks like &lt;i&gt;&lt;u&gt;&lt;span style="FONT-STYLE:italic;"&gt;http://&amp;lt;your-server-name&amp;gt;/QdabraWebService/DbxlDocumentService.asmx&lt;/span&gt;&lt;/u&gt;&lt;/i&gt; . Click &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Next&lt;/span&gt;&lt;/i&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;Select the operation called &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;GetDocument&lt;/span&gt;&lt;/i&gt;, near the bottom of the list. Click &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Next&lt;/span&gt;&lt;/i&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;&amp;nbsp;For &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;tns:docId&lt;/span&gt;&lt;/i&gt;, click &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Set Sample Value...&lt;/span&gt;&lt;/i&gt;, enter &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;0&lt;/span&gt;&lt;/i&gt; (that is, zero), click &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;OK&lt;/span&gt;&lt;/i&gt;, then click &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Next&lt;/span&gt;&lt;/i&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;No value is needed for &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;tns:docId&lt;/span&gt;&lt;/i&gt; on the next panel. Just click &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Next&lt;/span&gt;&lt;/i&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;There is no need to store a copy of the data in the form template. Just click &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Next&lt;/span&gt;&lt;/i&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;Uncheck the box &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Automatically retrieve data when the form is opened&lt;/span&gt;&lt;/i&gt;. Our code will do that instead. Then click &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Finish&lt;/span&gt;&lt;/i&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;
&lt;p class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;Now we’ll configure the &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;SubmitDocument&lt;/span&gt;&lt;/i&gt; data adapter.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;ol start="12"&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;We should be back at the data connections dialog box. Click &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Add...&lt;/span&gt;&lt;/i&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;Select the &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Create a new connection to&lt;/span&gt;&lt;/i&gt; radio button. Then choose &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Receive data&lt;/span&gt;&lt;/i&gt;. Click &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Next&lt;/span&gt;&lt;/i&gt; in the wizard. Note: you are choosing &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Receive data&lt;/span&gt;&lt;/i&gt; even though think of the operation as submitting the document. This is a result of how the web service method was defined.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;Under &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;From where do you want to receive your data?&lt;/span&gt;&lt;/i&gt;, choose &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Web service&lt;/span&gt;&lt;/i&gt;. Click &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Next&lt;/span&gt;&lt;/i&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;&amp;nbsp;Enter the location of the Qdabra DBXL Document web service, same as above in step 6. Click &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Next&lt;/span&gt;&lt;/i&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;Select the operation called &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;SubmitDocument&lt;/span&gt;&lt;/i&gt;, near the bottom of the list. Click &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Next&lt;/span&gt;&lt;/i&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;No value is needed for any of the parameters on this panel. Just click &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Next&lt;/span&gt;&lt;/i&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;There is no need to store a copy of the data in the form template. Just click &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Next&lt;/span&gt;&lt;/i&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;Uncheck the box &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Automatically retrieve data when the form is opened&lt;/span&gt;&lt;/i&gt;. Our code will do that instead. Then click &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Finish&lt;/span&gt;&lt;/i&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;Back at the data connections dialog box, click &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Close.&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;u&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;Adding the On Load and Submit handlers&lt;/span&gt;&lt;/font&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;In this series of steps we will hook up the On Load and Submit handlers to form code using &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Visual Studio Tools for Applications (VSTA)&lt;/span&gt;&lt;/i&gt;. However, we won’t fill in the event handlers yet.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;ol start="21"&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;Click the &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Tools&lt;/span&gt;&lt;/i&gt; menu, locate the submenu &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Programming&lt;/span&gt;&lt;/i&gt;, and choose the item &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Loading Event...&lt;/span&gt;&lt;/i&gt;. VSTA will launch and show code for an empty event handler, called &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;FormEvents_Loading&lt;/span&gt;&lt;/i&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;Back in InfoPath Designer, go to the &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Tools&lt;/span&gt;&lt;/i&gt; menu and choose &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Submit Options...&lt;/span&gt;&lt;/i&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;In Expense Report, &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Allow users to submit this form&lt;/span&gt;&lt;/i&gt; will already be checked. If it is not for your form template, check it now.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;Choose &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Perform custom action using Code&lt;/span&gt;&lt;/i&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;Click &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Edit Code...&lt;/span&gt;&lt;/i&gt;. VSTA will flash on the task bar. If you switch to it you’ll notice another empty submit handler, called &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;FormEvents_Submit&lt;/span&gt;&lt;/i&gt;, has appeared.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;Back in InfoPath Designer, click &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;OK&lt;/span&gt;&lt;/i&gt; to dismiss the submit handler dialog box.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;u&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;Writing the custom code to query and submit the DBXL document&lt;/span&gt;&lt;/font&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;In this series of steps we will hook up the On Load and Submit handlers to form code using &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;Visual Studio Tools for Applications (VSTA)&lt;/span&gt;&lt;/i&gt;. However, we won’t fill in the event handlers yet.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;ol start="27"&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN-LEFT:0.25in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;We’ll need to add some subroutines to the form code which will handle querying the web services we added earlier.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p class="MsoNormal" style="MARGIN-LEFT:1in;"&gt;&lt;font face="Calibri" size="2"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;"&gt;a.&amp;nbsp;&amp;nbsp;&lt;/span&gt;If you are programming in Visual Basic, insert the following code just before the &lt;i&gt;&lt;span style="FONT-STYLE:italic;"&gt;End Class&lt;/span&gt;&lt;/i&gt; statement at the bottom of the file:&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="BORDER-RIGHT:windowtext;PADDING-RIGHT:0in;BORDER-TOP:windowtext;PADDING-LEFT:0in;MARGIN-BOTTOM:0pt;PADDING-BOTTOM:0in;MARGIN-LEFT:1.5in;BORDER-LEFT:windowtext;LINE-HEIGHT:normal;MARGIN-RIGHT:0in;PADDING-TOP:0in;BORDER-BOTTOM:windowtext;"&gt;&lt;font face="Courier New" color="blue" size="2"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;"&gt;Private&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New" size="2"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;"&gt; &lt;font color="blue"&gt;&lt;span style="COLOR:blue;"&gt;Function&lt;/span&gt;&lt;/font&gt; GetDocTypeName() &lt;font color="blue"&gt;&lt;span style="COLOR:blue;"&gt;As&lt;/span&gt;&lt;/font&gt; &lt;font color="blue"&gt;&lt;span style="COLOR:blue;"&gt;String&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="BORDER-RIGHT:windowtext;PADDING-RIGHT:0in;BORDER-TOP:windowtext;PADDING-LEFT:0in;MARGIN-BOTTOM:0pt;PADDING-BOTTOM:0in;MARGIN-LEFT:1.5in;BORDER-LEFT:windowtext;LINE-HEIGHT:normal;MARGIN-RIGHT:0in;PADDING-TOP:0in;BORDER-BOTTOM:windowtext;"&gt;&lt;font face="Courier New" color="blue" size="2"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="BORDER-RIGHT:windowtext;PADDING-RIGHT:0in;BORDER-TOP:windowtext;PADDING-LEFT:0in;MARGIN-BOTTOM:0pt;PADDING-BOTTOM:0in;MARGIN-LEFT:1.5in;BORDER-LEFT:windowtext;LINE-HEIGHT:normal;MARGIN-RIGHT:0in;PADDING-TOP:0in;BORDER-BOTTOM:windowtext;"&gt;&lt;font face="Courier New" size="2"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="green"&gt;&lt;span style="COLOR:green;"&gt;&amp;#39; Return the document type name that will be used in DBXL to identify the documents.&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="BORDER-RIGHT:windowtext;PADDING-RIGHT:0in;BORDER-TOP:windowtext;PADDING-LEFT:0in;MARGIN-BOTTOM:0pt;PADDING-BOTTOM:0in;MARGIN-LEFT:1.5in;BORDER-LEFT:windowtext;LINE-HEIGHT:normal;MARGIN-RIGHT:0in;PADDING-TOP:0in;BORDER-BOTTOM:windowtext;"&gt;&lt;font face="Courier New" size="2"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="green"&gt;&lt;span style="COLOR:green;"&gt;&amp;#39; For tutorial simplicity this is hard-coded, but can be obtained via more flexible methods for production templates.&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="BORDER-RIGHT:windowtext;PADDING-RIGHT:0in;BORDER-TOP:windowtext;PADDING-LEFT:0in;MARGIN-BOTTOM:0pt;PADDING-BOTTOM:0in;MARGIN-LEFT:1.5in;BORDER-LEFT:windowtext;LINE-HEIGHT:normal;MARGIN-RIGHT:0in;PADDING-TOP:0in;BORDER-BOTTOM:windowtext;"&gt;&lt;font face="Courier New" size="2"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="blue"&gt;&lt;span style="COLOR:blue;"&gt;Return&lt;/span&gt;&lt;/font&gt; &lt;font color="#a31515"&gt;&lt;span style="COLOR:#a31515;"&gt;&amp;quot;MyDocType&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="BORDER-RIGHT:windowtext;PADDING-RIGHT:0in;BORDER-TOP:windowtext;PADDING-LEFT:0in;MARGIN-BOTTOM:0pt;PADDING-BOTTOM:0in;MARGIN-LEFT:1.5in;BORDER-LEFT:windowtext;LINE-HEIGHT:normal;MARGIN-RIGHT:0in;PADDING-TOP:0in;BORDER-BOTTOM:windowtext;"&gt;&lt;font face="Courier New" color="#a31515" size="2"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="BORDER-RIGHT:windowtext;PADDING-RIGHT:0in;BORDER-TOP:windowtext;PADDING-LEFT:0in;MARGIN-BOTTOM:0pt;PADDING-BOTTOM:0in;MARGIN-LEFT:1.5in;BORDER-LEFT:windowtext;LINE-HEIGHT:normal;MARGIN-RIGHT:0in;PADDING-TOP:0in;BORDER-BOTTOM:windowtext;"&gt;&lt;font face="Courier New" color="blue" size="2"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;"&gt;End&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New" size="2"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;"&gt; &lt;font color="blue"&gt;&lt;span style="CO