<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.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>Coding for Office Accounting</title><link>http://blogs.msdn.com/martha/default.aspx</link><description>Martha Arellano's blog about coding and using Office Accounting.</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Creating Add-ins from Visual Studio for Office Accounting 2007</title><link>http://blogs.msdn.com/martha/archive/2006/11/10/creating-add-ins-from-visual-studio-for-office-accounting-2007.aspx</link><pubDate>Sat, 11 Nov 2006 06:10:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1056954</guid><dc:creator>martha</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/martha/comments/1056954.aspx</comments><wfw:commentRss>http://blogs.msdn.com/martha/commentrss.aspx?PostID=1056954</wfw:commentRss><description>&lt;P&gt;Wow, the number of bloggers on the team is growing exponentially!!! I was alone for quite some time and then &lt;A class="" href="http://blogs.msdn.com/bizideas/" mce_href="http://blogs.msdn.com/bizideas/"&gt;Isaias&lt;/A&gt; started. This week I already linked to &lt;A class="" href="http://blogs.msdn.com/jesperbirkolsen" mce_href="http://blogs.msdn.com/jesperbirkolsen"&gt;Jesper's blog&lt;/A&gt; and today I just found out that Jorn also started his blog at &lt;A href="http://blogs.msdn.com/jorn"&gt;http://blogs.msdn.com/jorn&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;Hey guys, you should let me know about this so I'm not caught off guard. Well, anyway hopefully Jorn will blog about our Reports. I know that I'm going to read his blog as he has a very amusing writing style. Actually, his &lt;A class="" href="http://blogs.msdn.com/jorn/archive/2006/11/09/creating-add-ins-simply-use-the-templates.aspx" mce_href="http://blogs.msdn.com/jorn/archive/2006/11/09/creating-add-ins-simply-use-the-templates.aspx"&gt;second post&lt;/A&gt; about creating Add-ins from Visual Studio is great! I didn't know about it until now and it's great because I'll be able to use that for my next blog idea (keep posted).&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1056954" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/martha/archive/tags/Office+Accounting/default.aspx">Office Accounting</category></item><item><title>A week after releasing Office Accounting 2007</title><link>http://blogs.msdn.com/martha/archive/2006/11/08/a-week-after-releasing-office-accounting-2007.aspx</link><pubDate>Thu, 09 Nov 2006 10:56:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1043034</guid><dc:creator>martha</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/martha/comments/1043034.aspx</comments><wfw:commentRss>http://blogs.msdn.com/martha/commentrss.aspx?PostID=1043034</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;So what is going on right now? Well, last Monday Oct 30&lt;SUP&gt;th&lt;/SUP&gt; we shipped &lt;A class="" href="http://www.ideawins.com/" mce_href="http://www.ideawins.com/"&gt;Office Accounting 2007&lt;/A&gt; and made express available as a free download. Tuesday I got to see the videos of our launch in &lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;&lt;st1:place w:st="on"&gt;&lt;A class="" href="http://blogs.msdn.com/rajattaneja/archive/2006/10/30/willows-spring-il.aspx" mce_href="http://blogs.msdn.com/rajattaneja/archive/2006/10/30/willows-spring-il.aspx"&gt;&lt;st1:City w:st="on"&gt;Willow Springs&lt;/st1:City&gt;, &lt;st1:State w:st="on"&gt;IL&lt;/st1:State&gt;&lt;/A&gt;&lt;/st1:place&gt;. Wednesday we started to think about our next release. We got Monday off and Tuesday we had a small celebration by going to &lt;A class="" href="http://www.parlorbilliards.com/" mce_href="http://www.parlorbilliards.com/"&gt;the Parlor Billiards&lt;/A&gt;. It was a very nice event; unfortunately there was a raffle but I didn’t get any prize. The rest of the week we are doing customer visits, which is very interesting because not everyone on the product team gets to interact with customers on a daily basis. Unfortunately we only get to visit one customer. I would like to talk to customers that are just starting to use our product, probably they'll have great insight about what we are missing and what we did right.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;So what happens next? Well, there are a lot of things I am planning to blog about. Another developer from our team, Jesper, started blogging about the Loader (you can read his blog &lt;A class="" href="http://blogs.msdn.com/jesperbirkolsen/archive/2006/10/27/what-do-you-get-when-using-the-loader.aspx" mce_href="http://blogs.msdn.com/jesperbirkolsen/archive/2006/10/27/what-do-you-get-when-using-the-loader.aspx"&gt;here&lt;/A&gt;). I’m doing a brownbag next week about blogging to our team, so hopefully we’ll get more bloggers about Office Accounting, especially PMs that are underrepresented in this space. Other than that, it is an interesting time when we have time to innovate for our next release.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1043034" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/martha/archive/tags/Office+Accounting/default.aspx">Office Accounting</category></item><item><title>Are you thinking about selling on eBay using Office Accounting 2007?</title><link>http://blogs.msdn.com/martha/archive/2006/10/31/are-you-thinking-about-selling-on-ebay-using-office-accounting-2007.aspx</link><pubDate>Wed, 01 Nov 2006 04:27:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:916448</guid><dc:creator>martha</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/martha/comments/916448.aspx</comments><wfw:commentRss>http://blogs.msdn.com/martha/commentrss.aspx?PostID=916448</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;A href="http://blogs.msdn.com/bizideas/" mce_href="http://blogs.msdn.com/bizideas/"&gt;&lt;FONT face=Calibri size=3&gt;Isaias blogs&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt; about how to sell on &lt;/FONT&gt;&lt;A href="http://www.ebay.com/" mce_href="http://www.ebay.com/"&gt;&lt;FONT face=Calibri size=3&gt;eBay&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt; from Office Accounting 2007&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;Isaias is probably one of the experts on this, as he owned this feature from early own and worked very hard on seeing this through. It really is a great feature to have linked to your accounting system. I worked on bits and pieces of this and since I have used eBay before, but it was always interesting to see how this feature (and its UI) evolved into what it is now. I’m very interested in hearing feedback about this, and I know that the entire feature is too, so go ahead and comment about it. To get started, don’t forget to check out the step by step process in this &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/bizideas/archive/2006/10/31/selling-online-on-office-accounting-2007.aspx" mce_href="http://blogs.msdn.com/bizideas/archive/2006/10/31/selling-online-on-office-accounting-2007.aspx"&gt;&lt;FONT face=Calibri size=3&gt;post&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=916448" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/martha/archive/tags/Office+Accounting/default.aspx">Office Accounting</category><category domain="http://blogs.msdn.com/martha/archive/tags/eBay/default.aspx">eBay</category></item><item><title>Office Accounting Express 2007</title><link>http://blogs.msdn.com/martha/archive/2006/10/30/office-accounting-express-2007.aspx</link><pubDate>Tue, 31 Oct 2006 03:34:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:905089</guid><dc:creator>martha</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/martha/comments/905089.aspx</comments><wfw:commentRss>http://blogs.msdn.com/martha/commentrss.aspx?PostID=905089</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;A href="http://news.zdnet.com/2100-3513_22-6130582.html"&gt;&lt;FONT face=Calibri size=3&gt;Microsoft tries to lure ‘mom and pop’ companies&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt;. Interesting title which I don’t really agree that we want to ‘lure’ but well, it got my attention so I decided to blog about it. First of all, I’m glad that we shipped v 2.0 or our product on time! Second, we just announced about Office Accounting Express 2007 which is a free download, so many small businesses can benefit from this and give it a try. Third, we are using a very cool marketing campaign. Unfortunately I can’t give more details about the campaign because I don’t know anything other than what is at the &lt;/FONT&gt;&lt;A href="http://www.ideawins.com/"&gt;&lt;FONT face=Calibri size=3&gt;ideawins&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt; website, but you’d have to admit that an electric spinning fork, a caffeinated salad, climate-control socks or fruit favored coffee do sound cool. I probably can’t participate but it’s something I’ll be watching. The &lt;/FONT&gt;&lt;A href="http://ideawins.com/faq.html"&gt;&lt;FONT face=Calibri size=3&gt;FAQ&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt; on the site looks to be very good, for anyone that is wondering about our product.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Here are links to the articles talking about Office Accounting 2007 that I could find:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Articles&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;A href="http://www.crn.com/sections/custom/custom.jhtml?articleId=193500093"&gt;&lt;FONT face=Calibri size=3&gt;CRN&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt; (this is probably the most in-depth article I could find)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;A href="http://www.eweek.com/article2/0,1895,2047399,00.asp"&gt;&lt;FONT face=Calibri size=3&gt;eWeek&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;A href="http://www.techweb.com/wire/software/193500278"&gt;&lt;FONT face=Calibri size=3&gt;TechWeb&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;A href="http://www.techworld.com/midsizedbusiness/news/index.cfm?newsID=7207&amp;amp;pagtype=all"&gt;&lt;FONT face=Calibri size=3&gt;Techworld&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;A href="http://www.infoworld.com/article/06/10/30/HNmssmb_1.html"&gt;&lt;FONT face=Calibri size=3&gt;InfoWorld&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Blog posts&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;A href="http://www.downloadsquad.com/2006/10/30/microsoft-is-offering-office-accounting-express-2007-for-free/"&gt;&lt;FONT face=Calibri size=3&gt;Microsoft is offering Office Accounting Express 2007 for free&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;A href="http://www.accmanpro.com/2006/10/30/microsoft-office-accounting-express-2007-free/"&gt;&lt;FONT face=Calibri size=3&gt;Microsoft Office Accounting Express 2007 free&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;A href="http://msmvps.com/blogs/bradley/archive/2006/10/30/Hey_2100_--There_2700_s-a-free-SBA-Express-_2800_US_2900_.aspx"&gt;&lt;FONT face=Calibri size=3&gt;Free Download: Office Accounting 2007 Express&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&lt;/o:p&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=905089" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/martha/archive/tags/Office+Accounting/default.aspx">Office Accounting</category></item><item><title>UI Add-in close events don’t fire when SBA is closed</title><link>http://blogs.msdn.com/martha/archive/2006/10/20/ui-add-in-close-events-don-t-fire-when-sba-is-closed.aspx</link><pubDate>Sat, 21 Oct 2006 02:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:851481</guid><dc:creator>martha</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/martha/comments/851481.aspx</comments><wfw:commentRss>http://blogs.msdn.com/martha/commentrss.aspx?PostID=851481</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;When a UI Add-in form is open and SBA 2006/Office Accounting 2007 is closed, the UI Add-in form closes without firing the Closed or Closing events.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This prevents the developer from asking if the user would like to save their changes before the form closes. SBA forms, if the SBA shell is closed, ask the user if they'd like to save changes before exiting and ISV's would like this behavior as well.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Ok, so I found about this thanks to &lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;&lt;st1:country-region w:st="on"&gt;&lt;st1:place w:st="on"&gt;Chad&lt;/st1:place&gt;&lt;/st1:country-region&gt;. He helps ISVs and users in our newsgroup and in this case, it seems that addressing this issue in my blog will be helpful. So to start with, this problem happens if you show a modeless form, but you want to ask the user if they want to save the changes to the form, before the form is closed. If you handle the Closing event, you can do this when the user closes your form. But if the user tries to close the SBA shell directly, your form will close automatically because you will not get the Closing event. Ok, so I hope you understand the problem now.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;To solve this, we will use the IWin32Window owner parameter that you get from the DoAction callback:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;TABLE class=MsoNormalTable style="WIDTH: 100%; mso-cellspacing: 0in; mso-padding-alt: 0in 0in 0in 0in" cellSpacing=0 cellPadding=0 width="100%" border=0 class="MsoNormalTable"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;Visual Basic&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 1; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;PRE&gt;&lt;FONT face="Courier New"&gt;Sub DoAction( _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;ByVal &lt;SPAN id=parameterToolTip title="" tabIndex=0&gt;&lt;SPAN class=tip&gt;ID&lt;/SPAN&gt;&lt;/SPAN&gt; As &lt;B&gt;String&lt;/B&gt;, _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;ByVal &lt;SPAN id=parameterToolTip title="" tabIndex=0&gt;&lt;SPAN class=tip&gt;entity&lt;/SPAN&gt;&lt;/SPAN&gt; As &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;IBaseMasterEntity&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;, _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;ByVal &lt;SPAN id=parameterToolTip title="" tabIndex=0&gt;&lt;SPAN class=tip&gt;instance&lt;/SPAN&gt;&lt;/SPAN&gt; As &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;ISmallBusinessInstance&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;, _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;ByVal &lt;SPAN id=parameterToolTip title="" tabIndex=0&gt;&lt;SPAN class=tip&gt;formsFactory&lt;/SPAN&gt;&lt;/SPAN&gt; As &lt;B&gt;Object&lt;/B&gt;, _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;ByVal &lt;SPAN id=parameterToolTip title="" tabIndex=0&gt;&lt;SPAN class=tip&gt;owner&lt;/SPAN&gt;&lt;/SPAN&gt; As &lt;B&gt;IWin32Window&lt;/B&gt; _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;)&lt;/FONT&gt;&lt;/PRE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;SPAN codeLanguage="CSharp"&gt;
&lt;TABLE class=MsoNormalTable style="WIDTH: 100%; mso-cellspacing: 0in; mso-padding-alt: 0in 0in 0in 0in" cellSpacing=0 cellPadding=0 width="100%" border=0 class="MsoNormalTable"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;C#&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 1; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;PRE&gt;&lt;FONT face="Courier New"&gt;&lt;B&gt;void&lt;/B&gt; DoAction(&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;B&gt;string&lt;/B&gt; &lt;SPAN id=parameterToolTip title="" tabIndex=0&gt;&lt;SPAN class=tip&gt;ID&lt;/SPAN&gt;&lt;/SPAN&gt;, &lt;BR&gt;&lt;/FONT&gt;&lt;SPAN style="mso-tab-count: 1"&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;FONT face="Courier New"&gt;IBaseMasterEntity&lt;/FONT&gt;&lt;FONT face="Courier New"&gt; &lt;SPAN id=parameterToolTip title="" tabIndex=0&gt;&lt;SPAN class=tip&gt;entity&lt;/SPAN&gt;&lt;/SPAN&gt;, &lt;BR&gt;&lt;/FONT&gt;&lt;SPAN style="mso-tab-count: 1"&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;FONT face="Courier New"&gt;ISmallBusinessInstance&lt;/FONT&gt;&lt;FONT face="Courier New"&gt; &lt;SPAN id=parameterToolTip title="" tabIndex=0&gt;&lt;SPAN class=tip&gt;instance&lt;/SPAN&gt;&lt;/SPAN&gt;, &lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;B&gt;object&lt;/B&gt; &lt;SPAN id=parameterToolTip title="" tabIndex=0&gt;&lt;SPAN class=tip&gt;formsFactory&lt;/SPAN&gt;&lt;/SPAN&gt;, &lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;B&gt;IWin32Window&lt;/B&gt; &lt;SPAN id=parameterToolTip title="" tabIndex=0&gt;&lt;SPAN class=tip&gt;owner&lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/SPAN&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;The IWin32Window is the handle to the window where the menu or toolbar button was pressed, so you can do the following:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;this&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;.sbaForm = owner &lt;SPAN style="COLOR: blue"&gt;as&lt;/SPAN&gt; Form;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;if&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; (&lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.sbaForm != &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.sbaForm.Closing += &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; CancelEventHandler(sbaForm_Closing);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;}&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Then, you can handle the closing event of the SBA Form and prompt the user to save. Since it is a CancelEventHandler you can also cancel the event so the application will not close. Here is a quick example:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;private&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; sbaForm_Closing(&lt;SPAN style="COLOR: blue"&gt;object&lt;/SPAN&gt; sender, CancelEventArgs e)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (MessageBox.Show("Do you want to close?","Customer Invoices",&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;MessageBoxButtons.YesNo) == DialogResult.No)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;e.Cancel = &lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.BringToFront();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;else&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.Close();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;}&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;This is just a quick sample where I simply ask the user to confirm they want to hide my form and if they say no, then I set the Cancel property to true so the form doesn’t close. This content is provided as-is, implies no warranties and confers no rights.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;There is a quick catch, if you add this handler for the Closing event, don’t forget to unsubscribe from it when your form is disposed:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;protected&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; &lt;SPAN style="COLOR: blue"&gt;override&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; Dispose( &lt;SPAN style="COLOR: blue"&gt;bool&lt;/SPAN&gt; disposing )&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt;( disposing )&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt;(components != &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;components.Dispose();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (&lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.sbaForm != &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.sbaForm.Closing -= &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; CancelEventHandler(sbaForm_Closing);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;base&lt;/SPAN&gt;.Dispose( disposing );&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=851481" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/martha/archive/tags/SBA+AddIns/default.aspx">SBA AddIns</category><category domain="http://blogs.msdn.com/martha/archive/tags/Office+Small+Business+Accounting/default.aspx">Office Small Business Accounting</category><category domain="http://blogs.msdn.com/martha/archive/tags/Office+Accounting/default.aspx">Office Accounting</category><category domain="http://blogs.msdn.com/martha/archive/tags/IUIAddInDriver/default.aspx">IUIAddInDriver</category></item><item><title>Moving SBA SDK 1.0 Add-ins to SBA SDK 2.0 (Office Accounting 2007)</title><link>http://blogs.msdn.com/martha/archive/2006/10/18/moving-sba-sdk-1-0-add-ins-to-sba-sdk-2-0-office-accounting-2007.aspx</link><pubDate>Wed, 18 Oct 2006 21:25:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:840210</guid><dc:creator>martha</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/martha/comments/840210.aspx</comments><wfw:commentRss>http://blogs.msdn.com/martha/commentrss.aspx?PostID=840210</wfw:commentRss><description>&lt;P&gt;The next version of &lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?familyid=2dae9876-27b4-4103-97b4-4cd1d6c809d4&amp;amp;displaylang=en" target=_blank mce_href="http://www.microsoft.com/downloads/details.aspx?familyid=2dae9876-27b4-4103-97b4-4cd1d6c809d4&amp;amp;displaylang=en"&gt;SBA SDK&lt;/A&gt; is coming (under a different product name) and it's time to start looking at some of the changes in the Add-ins area.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Referencing SBAAPI.dll&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;First of all, we found out that our 1.0 SDK sample for UIAddIn, we were referencing SBAAPI (when we are always telling you not to do it).&amp;nbsp;So now that 2.0 is coming I can show you why this is bad. The problem with this is that it references the v1 sbaapi.dll which is not going to be there for 2.0, so if you try to install this add-in in our 2.0 product you will get the following error when you try to click on the "Invoices" button.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 929px; HEIGHT: 126px" height=126 src="http://martha.members.winisp.net/images/AddInReferencingSBAAPI.PNG" width=929 mce_src="http://martha.members.winisp.net/images/AddInReferencingSBAAPI.PNG"&gt;&lt;/P&gt;
&lt;P&gt;If you don't want your add-in to work with Office Accounting 2007 then this is ok, but in case you do, here is what you need to do to remove the reference to SBAAPI.&lt;BR&gt;&lt;STRONG&gt;1.&lt;/STRONG&gt; In the UIAddIn project, remove the reference to SBAAPI.&lt;BR&gt;&lt;STRONG&gt;2.&lt;/STRONG&gt; You'll get the following build error:&lt;/P&gt;
&lt;P&gt;CustomerInvoices.cs(63): The type or namespace name 'CustomerAccount' could not be found (are you missing a using directive or an assembly reference?)&lt;/P&gt;
&lt;P&gt;The problem goes away if you use the ICustomerAccount instead of the CustomerAccount class that exists in SBAAPI. Here is the corrected line of code:&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;this&lt;/FONT&gt;&lt;FONT size=2&gt;.customerName = ((ICustomerAccount)smallBusinessInstance.CustomerAccounts.GetByPrimaryKey(customerID)).Name;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;This&amp;nbsp;problem has&amp;nbsp;been fixed in our SBA SDK 2.0. You can find the SBA SDK 2.0 beta &lt;A class="" href="http://connect.microsoft.com/OfficeAccountingBeta/Downloads/DownloadDetails.aspx?DownloadID=1814" target=_blank mce_href="http://connect.microsoft.com/OfficeAccountingBeta/Downloads/DownloadDetails.aspx?DownloadID=1814"&gt;here&lt;/A&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;Business Logic Add-ins&lt;/STRONG&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;If you tried using my sample code from my ISdkAddInDriver Sample that I posted in &lt;A class="" href="http://blogs.msdn.com/martha/archive/2006/07/16/667639.aspx" mce_href="http://blogs.msdn.com/martha/archive/2006/07/16/667639.aspx"&gt;C#&lt;/A&gt; or in &lt;A class="" href="http://blogs.msdn.com/martha/archive/2006/10/02/SBA-Business-Logic-Add_2D00_in-Sample-in-VB.NET-_2800_ISdkAddInDriver_2900_.aspx" mce_href="http://blogs.msdn.com/martha/archive/2006/10/02/SBA-Business-Logic-Add_2D00_in-Sample-in-VB.NET-_2800_ISdkAddInDriver_2900_.aspx"&gt;VB.NET&lt;/A&gt;, there are changes that you need to make if you want to remove the reference to SBAAPI.dll. If you want to do validation, you need to throw an ApplicationException instead of a SmallBusinessException, for example the new code will be:&lt;/FONT&gt;&lt;FONT size=2&gt; 
&lt;P&gt;&lt;STRONG&gt;C# -&amp;gt;&lt;/STRONG&gt; &lt;FONT color=#0000ff size=2&gt;throw&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; ApplicationException("EMAIL MISSING");&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;VB.NET -&amp;gt;&lt;/STRONG&gt; &lt;FONT color=#0000ff size=2&gt;Throw&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;New&lt;/FONT&gt;&lt;FONT size=2&gt; ApplicationException("EMAIL MISSING")&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt; &lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;One of the improvements we've made for Office Accounting 2007 in validation is the error message that users will see when the business logic add-in throws an ApplicationException.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;In Small Business Accounting 2006 you will see this:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;IMG style="WIDTH: 371px; HEIGHT: 192px" height=192 src="http://martha.members.winisp.net/images/BusinessLogicAddInV1.PNG" width=371 mce_src="http://martha.members.winisp.net/images/BusinessLogicAddInV1.PNG"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;In Office Accounting 2007 you will see this:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;IMG style="WIDTH: 360px; HEIGHT: 165px" height=165 src="http://martha.members.winisp.net/images/BusinessLogicAddInV2.PNG" width=360 mce_src="http://martha.members.winisp.net/images/BusinessLogicAddInV2.PNG"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;As you can see, the error message now is shorter and more helpful. First, we show the Add-in name and we show whatever Message the Add-in specifies in the ApplicationException. You can find Office Accounting 2007 beta &lt;A class="" href="http://connect.microsoft.com/OfficeAccountingBeta" target=_blank mce_href="http://connect.microsoft.com/OfficeAccountingBeta"&gt;here&lt;/A&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;UI Add-ins&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;One of the improvements we made here is the ability to have cascading menus (up to 3 levels), so now you can organize your menus better. We have updated the UI Add-in sample in SBA SDK 2.0 to show cascading menus. You can find the SBA SDK 2.0 beta &lt;A class="" href="http://connect.microsoft.com/OfficeAccountingBeta/Downloads/DownloadDetails.aspx?DownloadID=1814" target=_blank mce_href="http://connect.microsoft.com/OfficeAccountingBeta/Downloads/DownloadDetails.aspx?DownloadID=1814"&gt;here&lt;/A&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;IMG style="WIDTH: 537px; HEIGHT: 123px" height=123 src="http://martha.members.winisp.net/images/CascadingMenus.PNG" width=537 mce_src="http://martha.members.winisp.net/images/CascadingMenus.PNG"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/P&gt;&lt;/FONT&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=840210" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/martha/archive/tags/SBA+AddIns/default.aspx">SBA AddIns</category><category domain="http://blogs.msdn.com/martha/archive/tags/ISdkAddInDriver/default.aspx">ISdkAddInDriver</category><category domain="http://blogs.msdn.com/martha/archive/tags/Business+Logic+Add-in/default.aspx">Business Logic Add-in</category><category domain="http://blogs.msdn.com/martha/archive/tags/Office+Accounting/default.aspx">Office Accounting</category><category domain="http://blogs.msdn.com/martha/archive/tags/IUIAddInDriver/default.aspx">IUIAddInDriver</category></item><item><title>SBA Business Logic Add-in Sample in VB.NET (ISdkAddInDriver)</title><link>http://blogs.msdn.com/martha/archive/2006/10/02/SBA-Business-Logic-Add_2D00_in-Sample-in-VB.NET-_2800_ISdkAddInDriver_2900_.aspx</link><pubDate>Mon, 02 Oct 2006 19:42:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:781215</guid><dc:creator>martha</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/martha/comments/781215.aspx</comments><wfw:commentRss>http://blogs.msdn.com/martha/commentrss.aspx?PostID=781215</wfw:commentRss><description>&lt;P&gt;A couple months ago I posted a step by step process for doing a Business Logic Add-in Sample in C#, so finally here is the second part for doing this in VB.NET. The instructions are pretty much copied from the &lt;A class="" href="http://blogs.msdn.com/martha/archive/2006/07/16/667639.aspx" target=_blank mce_href="http://blogs.msdn.com/martha/archive/2006/07/16/667639.aspx"&gt;original post&lt;/A&gt; but I have translated the code to VB and verified it.&lt;/P&gt;
&lt;P&gt;Let's start.&lt;/P&gt;
&lt;P&gt;1. Open the UIAddIn project (from VB.NET Samples)&lt;BR&gt;2. Add a new class that implements the &lt;STRONG&gt;ISdkAddInDriver&lt;/STRONG&gt; interface. I got the basic code from the Concepts Manual of our SDK. I'm going to post the code here:&lt;/P&gt;
&lt;DIV class=code&gt;&lt;FONT color=blue&gt;Imports&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;Microsoft.BusinessSolutions.SmallBusinessAccounting&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=blue&gt;Public&amp;nbsp;Class&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;BusinessLogic&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Implements&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;ISdkAddInDriver&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Private&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;m_contextObject&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;As&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;IBaseMasterEntity&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Private&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;instance&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;As&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;ISmallBusinessInstance&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Public&amp;nbsp;Sub&amp;nbsp;New&lt;/FONT&gt;&lt;FONT color=black&gt;(&lt;/FONT&gt;&lt;FONT color=blue&gt;ByVal&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;contextObject&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;As&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;IBaseMasterEntity)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;MyBase&lt;/FONT&gt;&lt;FONT color=black&gt;.&lt;/FONT&gt;&lt;FONT color=blue&gt;New&lt;/FONT&gt;&lt;FONT color=black&gt;()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Me&lt;/FONT&gt;&lt;FONT color=black&gt;.m_contextObject&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;=&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;contextObject&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Me&lt;/FONT&gt;&lt;FONT color=black&gt;.instance&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;=&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;contextObject.SmallBusinessInstance&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;End&amp;nbsp;Sub&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Public&amp;nbsp;ReadOnly&amp;nbsp;Property&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;ContextObject()&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;As&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;IBaseMasterEntity&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Get&lt;BR&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;Return&amp;nbsp;Me&lt;/FONT&gt;&lt;FONT color=black&gt;.m_contextObject&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;End&amp;nbsp;Get&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End&amp;nbsp;Property&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Public&amp;nbsp;Sub&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;RunPreSave()&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Implements&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;ISdkAddInDriver.RunPreSave&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=darkgreen&gt;'&amp;nbsp;Do&amp;nbsp;Pre-Save&amp;nbsp;work&amp;nbsp;here&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;End&amp;nbsp;Sub&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Public&amp;nbsp;Sub&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;RunPostSave()&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Implements&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;ISdkAddInDriver.RunPostSave&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=darkgreen&gt;'&amp;nbsp;Do&amp;nbsp;Post-Save&amp;nbsp;work&amp;nbsp;here&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;End&amp;nbsp;Sub&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Public&amp;nbsp;Sub&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;RunPreDelete()&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Implements&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;ISdkAddInDriver.RunPreDelete&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=darkgreen&gt;'&amp;nbsp;Do&amp;nbsp;Pre-Delete&amp;nbsp;work&amp;nbsp;here&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;End&amp;nbsp;Sub&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Public&amp;nbsp;Sub&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;RunPostDelete()&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Implements&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;ISdkAddInDriver.RunPostDelete&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=darkgreen&gt;'&amp;nbsp;Do&amp;nbsp;Post-Delete&amp;nbsp;work&amp;nbsp;here&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;End&amp;nbsp;Sub&lt;BR&gt;End&amp;nbsp;Class&lt;/FONT&gt; &lt;/DIV&gt;
&lt;P&gt;3. Now we need to hook the business logic addin so it can be registered and instantiated by SBA. Here's what I have to do: &lt;/P&gt;
&lt;P&gt;In DriverRegistration.vb we need to return a new myDriverInfo for the business logic addin. I added this code in line 37 (in the&amp;nbsp;GetDriverInfos method)&amp;nbsp;&lt;/P&gt;
&lt;DIV class=code&gt;&lt;FONT color=black&gt;myDriverInfo&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;=&amp;nbsp;New&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;MyDriverInfo(&lt;/FONT&gt;&lt;FONT color=blue&gt;New&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;Guid(&lt;/FONT&gt;&lt;FONT color=#808080&gt;"6EF926D5-79B8-476e-8847-3AE0BCCBF28F"&lt;/FONT&gt;&lt;FONT color=black&gt;),&amp;nbsp;DriverType.SdkAddIn,&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;False&lt;/FONT&gt;&lt;FONT color=black&gt;,&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#808080&gt;""&lt;/FONT&gt;&lt;FONT color=black&gt;,&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#808080&gt;"Validate&amp;nbsp;Customer&amp;nbsp;Email&amp;nbsp;Business&amp;nbsp;Logic&amp;nbsp;Addin"&lt;/FONT&gt;&lt;FONT color=black&gt;,&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#808080&gt;"This&amp;nbsp;is&amp;nbsp;a&amp;nbsp;test&amp;nbsp;business&amp;nbsp;logic&amp;nbsp;to&amp;nbsp;validate&amp;nbsp;email&amp;nbsp;on&amp;nbsp;customers."&lt;/FONT&gt;&lt;FONT color=black&gt;,&amp;nbsp;Guid.Empty,&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;GetType&lt;/FONT&gt;&lt;FONT color=black&gt;(BusinessLogic).FullName)&lt;BR&gt;&lt;BR&gt;driverInfo.Add(myDriverInfo)&lt;/FONT&gt; &lt;/DIV&gt;
&lt;P&gt;I'm just creating a new guid because I will only have one business logic on this assembly. The last parameter uses BusinessLogic which is the name of my class implementing the ISdkAddInDriver.&lt;/P&gt;
&lt;P&gt;In DriverRegistration.vb I need to instantiate my business logic addin. I change the LoadSdkAddInDriver to return a new instance of my BusinessLogic class. This is my new implementation:&lt;/P&gt;
&lt;DIV class=code&gt;&lt;FONT color=blue&gt;Public&amp;nbsp;Function&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;LoadSdkAddInDriver(&lt;/FONT&gt;&lt;FONT color=blue&gt;ByVal&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;driverGuid&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;As&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;Guid,&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;ByVal&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;ownerEntity&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;As&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;IBaseMasterEntity)&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;As&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;ISdkAddInDriver&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Implements&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;IDriverFactory.LoadSdkAddInDriver&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Return&amp;nbsp;New&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;BusinessLogic(ownerEntity)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=blue&gt;End&amp;nbsp;Function&lt;/FONT&gt; &lt;/DIV&gt;
&lt;P&gt;Finally, in MyDriverInfo.vb we need to support the AppliedTypes property. In this case, I'm simple going to change the property directly just to make this addin work.&lt;/P&gt;
&lt;DIV class=code&gt;&lt;FONT color=blue&gt;Public&amp;nbsp;ReadOnly&amp;nbsp;Property&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;AppliedTypes()&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;As&amp;nbsp;Type&lt;/FONT&gt;&lt;FONT color=black&gt;()&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Implements&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;IDriverInfo.AppliedTypes&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Get&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Return&amp;nbsp;New&amp;nbsp;Type&lt;/FONT&gt;&lt;FONT color=black&gt;()&amp;nbsp;{&lt;/FONT&gt;&lt;FONT color=blue&gt;GetType&lt;/FONT&gt;&lt;FONT color=black&gt;(ICustomerAccount)}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;End&amp;nbsp;Get&lt;BR&gt;End&amp;nbsp;Property&lt;/FONT&gt; &lt;/DIV&gt;
&lt;P&gt;4. I'm going to put a simple validation for customers so we can test this business logic addin. If the addin wants to cancel the save event (from the PreSave handler), it needs to throw an exception. The message shown to the user will be an ugly technical message, so I would personally suggest to show a friendly message before that. Here is my code:&lt;/P&gt;
&lt;DIV class=code&gt;&lt;BR&gt;&lt;FONT color=blue&gt;Public&amp;nbsp;Sub&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;RunPreSave()&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Implements&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;ISdkAddInDriver.RunPreSave&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Dim&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;customer&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;As&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;ICustomerAccount&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;=&amp;nbsp;CType&lt;/FONT&gt;&lt;FONT color=black&gt;(ContextObject,&amp;nbsp;ICustomerAccount)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Dim&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;email&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;As&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;ICustomerVendorEmail&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;=&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;customer.CustomerVendorEmails.GetByType(CustomerVendorEmailType.Email1)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;If&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;((email.EmailAddress&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;=&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;Nothing)&amp;nbsp;_&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;OrElse&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;(email.EmailAddress.Length&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;=&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=maroon&gt;0&lt;/FONT&gt;&lt;FONT color=black&gt;))&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Throw&amp;nbsp;New&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;SmallBusinessException(ErrorCases.EmailTypeInvalid,&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#808080&gt;"EMAIL&amp;nbsp;MISSING"&lt;/FONT&gt;&lt;FONT color=black&gt;)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;End&amp;nbsp;If&lt;BR&gt;End&amp;nbsp;Sub&lt;/FONT&gt; &lt;/DIV&gt;
&lt;P&gt;&lt;STRONG&gt;Gotchas&lt;BR&gt;&lt;/STRONG&gt;Each time you modify the code in the UIAddIn project, the assembly version will change so you would need to reinstall you addin again or change the AssemblyInfo.cs to have a fixed version number. This was the only issue I ran into. Then,&amp;nbsp;I just have to copy the UIAddin.dll to the SBA location and install it. If you were to ship a business logic, I would suggest you add it to your GAC and install in a separate folder.&lt;/P&gt;
&lt;P&gt;You can download my sample &lt;A class="" href="http://martha.members.winisp.net/samples/BusinessLogicAddinVB.zip" target=_blank mce_href="http://martha.members.winisp.net/samples/BusinessLogicAddinVB.zip"&gt;here&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=781215" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/martha/archive/tags/SBA+AddIns/default.aspx">SBA AddIns</category><category domain="http://blogs.msdn.com/martha/archive/tags/Office+Small+Business+Accounting/default.aspx">Office Small Business Accounting</category><category domain="http://blogs.msdn.com/martha/archive/tags/ISdkAddInDriver/default.aspx">ISdkAddInDriver</category><category domain="http://blogs.msdn.com/martha/archive/tags/Business+Logic+Add-in/default.aspx">Business Logic Add-in</category><category domain="http://blogs.msdn.com/martha/archive/tags/Office+Accounting/default.aspx">Office Accounting</category></item><item><title>How to programmatically verify if an Add-in is installed</title><link>http://blogs.msdn.com/martha/archive/2006/09/12/how-to-programmatically-verify-if-an-add-in-is-installed.aspx</link><pubDate>Tue, 12 Sep 2006 20:20:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:750855</guid><dc:creator>martha</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/martha/comments/750855.aspx</comments><wfw:commentRss>http://blogs.msdn.com/martha/commentrss.aspx?PostID=750855</wfw:commentRss><description>&lt;P&gt;I wanted to post a quick sample that I think might be useful. The escenario that I ran into is when you have two Add-ins that complement each other, a UI Add-in and a &lt;A href="http://blogs.msdn.com/martha/archive/2006/07/16/667639.aspx"&gt;Business Logic Add-in&lt;/A&gt;. Since the user can enable only one of them and disable the other, you might want to check for this and then ask the user to enable both of them to have all the functionality. To check the status of a particular Add-in, you need the &lt;STRONG&gt;IDriverInfo.DriverGuid&lt;/STRONG&gt; (since that is unique) that you used when you registered your Add-in.&lt;/P&gt;
&lt;DIV class=code&gt;&lt;FONT color=black&gt;System.Data.DataView&amp;nbsp;dataView&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;=&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;instance.DriverRegistrations.DataView&lt;/FONT&gt;&lt;FONT color=blue&gt;;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=darkgreen&gt;//&amp;nbsp;We&amp;nbsp;look&amp;nbsp;for&amp;nbsp;the&amp;nbsp;DriverGuid&amp;nbsp;of&amp;nbsp;our&amp;nbsp;known&amp;nbsp;addin&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=black&gt;dataView.RowFilter&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;=&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#808080&gt;"DriverGuid&amp;nbsp;=&amp;nbsp;'DF7ADD4C-BE62-42e5-9F30-44EAD462AC62'"&lt;/FONT&gt;&lt;FONT color=blue&gt;;&lt;BR&gt;&lt;BR&gt;if&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;(dataView.Count&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;==&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=maroon&gt;1&lt;/FONT&gt;&lt;FONT color=black&gt;)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IDriverRegistration&amp;nbsp;driverRegistration&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;=&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;instance.DriverRegistrations.GetByDataRow(dataView[&lt;/FONT&gt;&lt;FONT color=maroon&gt;0&lt;/FONT&gt;&lt;FONT color=black&gt;].Row)&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;as&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;IDriverRegistration&lt;/FONT&gt;&lt;FONT color=blue&gt;;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;Console.WriteLine(String.Format(&lt;/FONT&gt;&lt;FONT color=#808080&gt;"Addin&amp;nbsp;{0}&amp;nbsp;is&amp;nbsp;&amp;nbsp;registered&amp;nbsp;and&amp;nbsp;is&amp;nbsp;{1}."&lt;/FONT&gt;&lt;FONT color=black&gt;,&amp;nbsp;driverRegistration.AddinName,&amp;nbsp;driverRegistration.DriverStatus.ToString()))&lt;/FONT&gt;&lt;FONT color=blue&gt;;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=black&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=blue&gt;else&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=black&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(&lt;/FONT&gt;&lt;FONT color=#808080&gt;"Addin&amp;nbsp;not&amp;nbsp;found"&lt;/FONT&gt;&lt;FONT color=black&gt;)&lt;/FONT&gt;&lt;FONT color=blue&gt;;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=black&gt;}&lt;/FONT&gt; &lt;/DIV&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=750855" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/martha/archive/tags/SBA+AddIns/default.aspx">SBA AddIns</category><category domain="http://blogs.msdn.com/martha/archive/tags/Office+Small+Business+Accounting/default.aspx">Office Small Business Accounting</category><category domain="http://blogs.msdn.com/martha/archive/tags/Office+Accounting/default.aspx">Office Accounting</category></item><item><title>MS Accounting Tool Gets a New Name, New Beta</title><link>http://blogs.msdn.com/martha/archive/2006/09/11/ms-accounting-tool-gets-a-new-name-new-beta.aspx</link><pubDate>Tue, 12 Sep 2006 00:34:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:749951</guid><dc:creator>martha</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/martha/comments/749951.aspx</comments><wfw:commentRss>http://blogs.msdn.com/martha/commentrss.aspx?PostID=749951</wfw:commentRss><description>&lt;P&gt;Yes, last week we announced the public beta of Office Accounting 2007, which is pretty cool because we've been working very hard on this version (since before the previous version was on the shelves). The biggest news is the product name change (does that mean I should change the name of my blog?) and I really can't say much about that because I'm a developer and for some reason we don't name products (marketing people do). Our General Manager, Rajat Taneja talks about this on &lt;A href="http://blogs.msdn.com/rajattaneja/archive/2006/09/08/746712.aspx"&gt;his blog&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;To download Office Accounting 2007 beta go &lt;A href="http://connect.microsoft.com/OfficeAccountingBeta"&gt;here&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;The closest thing to a list of what's new in this new version is &lt;A href="http://sba.microsoft.com/release.html?txg=ed64cace-bfaa-4f10-bbf8-b525fe2de6f2"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;For developers:&lt;/P&gt;
&lt;P&gt;We don't have the Software Development Kit for this version yet, but you can always look into our new API once you install the products. The most insteresting feature is probably our versioning and our Loader interfaces, and once you understand that, you'll be ready to start using the API of the new version. I will try to get into more detail in the future. Send your feedback!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=749951" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/martha/archive/tags/Office+Small+Business+Accounting/default.aspx">Office Small Business Accounting</category><category domain="http://blogs.msdn.com/martha/archive/tags/Office+Accounting/default.aspx">Office Accounting</category></item><item><title>SBA SDK : Finding the Kits that contain my Item in VB.NET</title><link>http://blogs.msdn.com/martha/archive/2006/08/17/sba-sdk-finding-the-kits-that-contain-my-item-in-vb-net.aspx</link><pubDate>Fri, 18 Aug 2006 03:32:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:705021</guid><dc:creator>martha</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/martha/comments/705021.aspx</comments><wfw:commentRss>http://blogs.msdn.com/martha/commentrss.aspx?PostID=705021</wfw:commentRss><description>&lt;P&gt;I must confess I'm a little rusty in my VB because I don't use it often enough. But I wanted to post this sample in Visual Basic .NET. I used&amp;nbsp;the &lt;A href="http://carlosag.net/Tools/CodeTranslator/Default.aspx"&gt;Code Translator from CarlosAg&lt;/A&gt; and it worked&amp;nbsp;perfectly, except that it couldn't&amp;nbsp;translate the implicit convertion of an int to a string when this is used in a string operation.&amp;nbsp;In my &lt;A href="http://blogs.msdn.com/martha/archive/2006/07/31/684371.aspx"&gt;original post&lt;/A&gt; I explain about what this sample does and here is the code:&lt;/P&gt;
&lt;DIV class=code&gt;&lt;FONT color=blue size=2&gt;Public&amp;nbsp;Sub&amp;nbsp;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=black&gt;FindKitsThatContainMyItem()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Debug.WriteLine(&lt;/FONT&gt;&lt;FONT color=#808080&gt;"Finding&amp;nbsp;Kits&amp;nbsp;that&amp;nbsp;contain&amp;nbsp;'Snow&amp;nbsp;Sports&amp;nbsp;Helmet,&amp;nbsp;Adult'"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=black size=2&gt;)&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=darkgreen&gt;'&amp;nbsp;use&amp;nbsp;DataView&amp;nbsp;to&amp;nbsp;find&amp;nbsp;all&amp;nbsp;Kit&amp;nbsp;Items&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Dim&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;itemsDataView&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;As&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;DataView&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;=&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=black&gt;utilitiesInstance.SbaInstance.ItemAccounts.DataView&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;itemsDataView.RowFilter&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;=&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;(&lt;/FONT&gt;&lt;FONT color=#808080&gt;"AccountTypeID="&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;+&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;CType&lt;/FONT&gt;&lt;FONT color=black&gt;(AccountType.KitItemAccount,&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Integer&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=black&gt;).ToString)&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;For&amp;nbsp;Each&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;dataRowView&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;As&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;DataRowView&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;In&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=black&gt;itemsDataView&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Dim&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;kit&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;As&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;IKitItemAccount&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;=&amp;nbsp;CType&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=black&gt;(utilitiesInstance.SbaInstance.ItemAccounts.GetByDataRow(dataRowView.Row),&amp;nbsp;IKitItemAccount)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;For&amp;nbsp;Each&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;kitMember&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;As&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;IKitMember&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;In&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=black&gt;kit.KitMembers.ChildList&lt;BR&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;&lt;/FONT&gt;&lt;FONT color=blue&gt;If&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;((&lt;/FONT&gt;&lt;FONT color=blue&gt;Not&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;(kitMember.NonKitItemAccount)&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Is&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=black&gt;Nothing)&amp;nbsp;_&lt;BR&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;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;AndAlso&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;(kitMember.NonKitItemAccount.Name&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;=&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#808080&gt;"Snow&amp;nbsp;Sports&amp;nbsp;Helmet,&amp;nbsp;Adult"&lt;/FONT&gt;&lt;FONT color=black&gt;))&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=blue size=2&gt;Then&lt;BR&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;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black size=2&gt;Debug.WriteLine(kit.Name)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&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;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=blue&gt;End&amp;nbsp;If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Next&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Next&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;Debug.WriteLine(&lt;/FONT&gt;&lt;FONT color=#808080&gt;"-------"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=black&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=blue&gt;End&amp;nbsp;Sub&lt;/FONT&gt; &lt;/FONT&gt;&lt;/DIV&gt;
&lt;P&gt;You can get the sample from &lt;A href="http://martha.members.winisp.net/samples/FindingKitsVB.zip"&gt;here&lt;/A&gt;. I hope you find this useful.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=705021" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/martha/archive/tags/SBA+AddIns/default.aspx">SBA AddIns</category><category domain="http://blogs.msdn.com/martha/archive/tags/Office+Small+Business+Accounting/default.aspx">Office Small Business Accounting</category><category domain="http://blogs.msdn.com/martha/archive/tags/Office+Accounting/default.aspx">Office Accounting</category></item><item><title>DigiGirlz Job Shadow</title><link>http://blogs.msdn.com/martha/archive/2006/08/16/703521.aspx</link><pubDate>Thu, 17 Aug 2006 07:58:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:703521</guid><dc:creator>martha</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/martha/comments/703521.aspx</comments><wfw:commentRss>http://blogs.msdn.com/martha/commentrss.aspx?PostID=703521</wfw:commentRss><description>&lt;P&gt;I am a volunteer to be a job shadow for the DigiGirlz camp that Microsoft organizes every year. It is a wonderful idea and I'm also passionate about getting more women into Computer Science or Engineering. I couldn't find a lot of info about this externally, but there is a recent article that talks about it &lt;A href="http://seattlepi.nwsource.com/business/281416_msftgirls16.html"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;This is my second time around and this year, they have increased the&amp;nbsp;time that girls have for coming to my office and&amp;nbsp;hear&amp;nbsp;me explain about my job and how I got here. I'm excited because this year they have included girls from different other states and I will have two high school students over. My plan is that I spent half the time doing my job and the other half talking to them and explaining in more detail about what I do as a developer at Microsoft. I got their essay (this is needed to be selected to be a DigiGirl) and a form where they have to answer a couple of questions about the job shadow experience. For one question, they had to rank in order of preference the different jobs at Microsoft, and one of them put &lt;A href="http://www.microsoft.com/college/ft_softdeseng.mspx"&gt;Developer&lt;/A&gt; position as number 1 and the other as number 4. Cool, so I'll show them about writing code and problem solving!&lt;BR&gt;&lt;BR&gt;The other interesting question for me is to also rank their job shadow expectations, and it is important to read this to try to focus on some of the things that they expect. Here are the top 4 things I will try to touch on tomorrow:&lt;BR&gt;- skills needed for the job&lt;BR&gt;- learn more about Microsoft as a workplace&lt;BR&gt;- how much education do they need to get this job&lt;BR&gt;- see how technology is used in my job&lt;/P&gt;
&lt;P&gt;This is interesting because the two that I would be more interested are:&lt;BR&gt;- see how the knowledge I am gaining in school is used in the job&lt;BR&gt;- see what people do all day on the job&lt;BR&gt;&lt;BR&gt;When I was in highschool little did I know that I would end up in this position and doing what I did. I actually was tired of taking many classes that I never thought I would need (like accounting). I also want to hear about what they have been doing in the camp (I really have no idea about that).&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=703521" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/martha/archive/tags/Career/default.aspx">Career</category></item><item><title>Who is using our SDK?</title><link>http://blogs.msdn.com/martha/archive/2006/08/15/702013.aspx</link><pubDate>Wed, 16 Aug 2006 06:32:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:702013</guid><dc:creator>martha</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/martha/comments/702013.aspx</comments><wfw:commentRss>http://blogs.msdn.com/martha/commentrss.aspx?PostID=702013</wfw:commentRss><description>&lt;P&gt;We always try to think about the person that is going to ultimately use our &lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=2dae9876-27b4-4103-97b4-4cd1d6c809d4&amp;amp;displaylang=en"&gt;SDK&lt;/A&gt;&amp;nbsp;but the reality that&amp;nbsp;is that we not always end up receiving all the feedback that we should. When someone is just starting to use our SDK, they do ask us questions (through our newsgroups) or they use our ISV program, but once they are up to speed, I've never heard their feedback or questions. I was personally responsible for the design of the UI AddIns for SBA and I tried to make a very straight forward API that used XML (so it can be extended in the future) and a universal method called DoAction, to call the Addin back after the user did an action. I don't know if there are any solutions out there that use them or not.&lt;/P&gt;
&lt;P&gt;So far, we have a directory that lists the different SBA solutions from ISVs that are part of our program (the directory we have is &lt;A href="http://directory.partners.extranet.microsoft.com/searchresults.aspx?i=1&amp;amp;pname=&amp;amp;spec=0&amp;amp;pid=66&amp;amp;vid=0&amp;amp;country=&amp;amp;SearchType=P"&gt;here&lt;/A&gt;). If you are indeed developing using our SDK, please let us know what you think and what we did wrong.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=702013" width="1" height="1"&gt;</description></item><item><title>Three years at Microsoft!!!</title><link>http://blogs.msdn.com/martha/archive/2006/08/04/three-years-at-microsoft.aspx</link><pubDate>Sat, 05 Aug 2006 02:10:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:689032</guid><dc:creator>martha</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/martha/comments/689032.aspx</comments><wfw:commentRss>http://blogs.msdn.com/martha/commentrss.aspx?PostID=689032</wfw:commentRss><description>&lt;P&gt;Yes, on August 4th, 2003 I went to the New Employee Orientation. I had just finished my bachelors degree from &lt;A href="http://www.mty.itesm.mx/principal.html"&gt;ITESM Campus Monterrey&lt;/A&gt; and was moving to start my career at Microsoft. I had been an intern twice, but the first team I interned at didn't exist anymore and the second team I interned with didn't really appeal to me. I wanted to find a smaller team to work in and I found &lt;A href="http://www.microsoft.com/office/outlook/contactmanager/prodinfo/default.mspx"&gt;Business Contact Manager for Outlook&lt;/A&gt;. I had talked on the phone with the person that was going to be my lead and I didn't know much about the product, except that it was designed for small businesses. In my first week, as part of my ramp up, they ask me to take a look at BCM v.1 in spanish to find grammatical errors (which I did). I spent 2-3 months learning about different grid components in .NET and prototyping different approaches for the BCM report engine. Then, I moved to SBA.&lt;/P&gt;
&lt;P&gt;When I got to SBA I was still ramping up on my new job at Microsoft and I wasn't involved in the top level architecture of the product. Rajat Taneja, our GM blogged about what happened in this period &lt;A href="http://blogs.msdn.com/rajattaneja/archive/2006/03/19/555251.aspx"&gt;here&lt;/A&gt;. I got to work on the grid component for SBA (because of my experience with that). I was in the UI Infrastructure team and I joined SBA too late to enjoy a trip to Denmark (as other coworkers did). I'd say that I joined just in time to participate in the genesis of the current architecture used by SBA.&lt;/P&gt;
&lt;P&gt;And ever since then, I've been here as a Developer in the SBA team. Some people have come and go. We shipped SBA 2006. I'm working on the next SBA release. I got my first patent cube at Microsoft. I recruited my best friend from college to SBA. And now, I even got a blog.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=689032" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/martha/archive/tags/Career/default.aspx">Career</category></item><item><title>SBA SDK : Finding the Kits that contain my Item</title><link>http://blogs.msdn.com/martha/archive/2006/07/31/sba-sdk-finding-the-kits-that-contain-my-item.aspx</link><pubDate>Mon, 31 Jul 2006 20:48:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:684371</guid><dc:creator>martha</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/martha/comments/684371.aspx</comments><wfw:commentRss>http://blogs.msdn.com/martha/commentrss.aspx?PostID=684371</wfw:commentRss><description>&lt;P&gt;This is a quick sample I put together after a &lt;A href="http://www.microsoft.com/office/community/en-us/default.mspx?dg=microsoft.public.sba.sdk&amp;amp;lang=en&amp;amp;cr=US&amp;amp;mid=19de30e8-891a-4faf-b136-d0751e123048"&gt;post&lt;/A&gt;&amp;nbsp;in our newsgroups. I don't think we have this functionality but I could see that some users (especially those with thousands of items in their inventory) could use this. So this sample is to show how the classes in our SDK will allow you to have this functionality. I'm going to use the &lt;STRONG&gt;LoggingIn&lt;/STRONG&gt; sample from our &lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=2dae9876-27b4-4103-97b4-4cd1d6c809d4&amp;amp;displaylang=en"&gt;SBA SDK&lt;/A&gt; that takes care of initializing the ISmallBusinessInstance for me. I'm going to use SBA's &lt;STRONG&gt;sampleproductcompany&lt;/STRONG&gt; (Northwind Traders) and for this sample, I'm going to look for Kits that contain the "&lt;STRONG&gt;Snow Spors Helmet, Adult&lt;/STRONG&gt;" item.&lt;/P&gt;
&lt;DIV class=code&gt;public&amp;nbsp;void&amp;nbsp;FindKitsThatContainMyItem()&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Debug.WriteLine("Finding&amp;nbsp;Kits&amp;nbsp;that&amp;nbsp;contain&amp;nbsp;'Snow&amp;nbsp;Sports&amp;nbsp;Helmet,&amp;nbsp;Adult'");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;use&amp;nbsp;DataView&amp;nbsp;to&amp;nbsp;find&amp;nbsp;all&amp;nbsp;Kit&amp;nbsp;Items&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DataView&amp;nbsp;itemsDataView&amp;nbsp;=&amp;nbsp;utilities.SbaInstance.ItemAccounts.DataView;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;itemsDataView.RowFilter&amp;nbsp;=&amp;nbsp;"AccountTypeID="&amp;nbsp;+&amp;nbsp;(int)AccountType.KitItemAccount;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;foreach&amp;nbsp;(DataRowView&amp;nbsp;dataRowView&amp;nbsp;in&amp;nbsp;itemsDataView)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IKitItemAccount&amp;nbsp;kit&amp;nbsp;=&amp;nbsp;utilities.SbaInstance.ItemAccounts.GetByDataRow(dataRowView.Row)&amp;nbsp;as&amp;nbsp;IKitItemAccount;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;foreach&amp;nbsp;(IKitMember&amp;nbsp;kitMember&amp;nbsp;in&amp;nbsp;kit.KitMembers.ChildList)&lt;BR&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;((kitMember.NonKitItemAccount&amp;nbsp;!=&amp;nbsp;null)&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;(kitMember.NonKitItemAccount.Name&amp;nbsp;==&amp;nbsp;"Snow&amp;nbsp;Sports&amp;nbsp;Helmet,&amp;nbsp;Adult"))&lt;BR&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;{&lt;BR&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;&amp;nbsp;Debug.WriteLine(kit.Name);&lt;BR&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;&amp;nbsp;break;&lt;BR&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;}&lt;BR&gt;&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;&amp;nbsp;}&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Debug.WriteLine("-------");&lt;BR&gt;} &lt;/DIV&gt;
&lt;P&gt;I'm not using any UI in this sample, so the next step for anyone interested in this functionality will be to create a SBA UI Addin that exposes this functionality in the Item Form, shows a list of Kit Items and then allows you to open those forms. If anyone is interested in that, please let me know and I'll post some sample code for doing that.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=684371" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/martha/archive/tags/SBA+AddIns/default.aspx">SBA AddIns</category><category domain="http://blogs.msdn.com/martha/archive/tags/Office+Small+Business+Accounting/default.aspx">Office Small Business Accounting</category><category domain="http://blogs.msdn.com/martha/archive/tags/Office+Accounting/default.aspx">Office Accounting</category></item><item><title>Our SBA SDK newsgroup</title><link>http://blogs.msdn.com/martha/archive/2006/07/28/681697.aspx</link><pubDate>Fri, 28 Jul 2006 19:50:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:681697</guid><dc:creator>martha</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/martha/comments/681697.aspx</comments><wfw:commentRss>http://blogs.msdn.com/martha/commentrss.aspx?PostID=681697</wfw:commentRss><description>&lt;P&gt;I recently started reading and participating on our SBA SDK &lt;A href="http://www.microsoft.com/office/community/en-us/default.mspx?dg=microsoft.public.sba.sdk&amp;amp;lang=en&amp;amp;cr=US"&gt;newsgroup&lt;/A&gt; on a regular basis. Before, I only went there from time to time. I'm glad that many customers and developers go there to ask questions and post suggestions, because we really read them and go through them. Recently I found a &lt;A href="http://www.microsoft.com/office/community/en-us/default.mspx?dg=microsoft.public.sba.sdk&amp;amp;lang=en&amp;amp;cr=US&amp;amp;mid=6160c2c5-14af-4a6a-a9e7-b45cfe295ae2"&gt;post&lt;/A&gt; about our Business Logic Addins and about how it was a bad experience if we wanted to do a validation because we showed one of the most horrible error messages (with a callstack) to the end user. After looking at this issue, I thought about how to solve this and then I fired an email to other people on the team so we could address this for a&amp;nbsp;future version.&lt;/P&gt;
&lt;P&gt;Then, yesterday, I found an interesting &lt;A href="http://www.microsoft.com/office/community/en-us/default.mspx?dg=microsoft.public.sba.sdk&amp;amp;lang=en&amp;amp;cr=US&amp;amp;mid=19de30e8-891a-4faf-b136-d0751e123048"&gt;post&lt;/A&gt; from 'Old Blind Dog' that&amp;nbsp; wanted to know how to find which kits in your company contained a particular item. A real scenario that our product doesn't have &lt;STRONG&gt;BUT&amp;nbsp;you can do this with our SDK&lt;/STRONG&gt;, so I put my work aside for a second and tried to do this using our classes and C# and voila! I got a 20 line sample for doing this. Of course, this doesn't include the connectivity to SBA and all that, I just simply modified one of the existing SDK Samples. Now I just need to&amp;nbsp;post the sample and try to get him to start using our SDK. Anyway, I'll post later the sample, I need to do some other work to meet my deadlines.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=681697" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/martha/archive/tags/Office+Small+Business+Accounting/default.aspx">Office Small Business Accounting</category></item></channel></rss>