<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-455472054123428949</id><updated>2012-02-16T01:41:53.689-06:00</updated><category term='gridview'/><category term='visual studio'/><category term='c#'/><category term='CDOEX'/><category term='.net telerik'/><category term='.net'/><category term='sap mdm com api'/><category term='user control'/><category term='SQL'/><category term='localization'/><category term='SRS'/><title type='text'>.NET, C#, MDM and everything else</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://michaelmalloy.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>46</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-3488182994289570165</id><published>2011-04-12T09:46:00.001-05:00</published><updated>2011-04-12T09:48:05.721-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net telerik'/><title type='text'>RadBinaryImage MapPageRoute not working</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 14px; line-height: 19px; "&gt;Under ASP.NET 4.0,  when using System.Web.Routing  (URL Routing)  with telerik controls I received broken images.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;void RegisterRoutes(System.Web.Routing.RouteCollection routes)&lt;/div&gt;&lt;div&gt;    {&lt;/div&gt;&lt;/div&gt;&lt;div&gt;//make sure this is first&lt;/div&gt;&lt;div&gt;routes.Add(new System.Web.Routing.Route("{resource}.axd/{*pathInfo}", new System.Web.Routing.StopRoutingHandler())); &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;//...other routes here&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;found the answer here:&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.telerik.com/community/forums/aspnet-ajax/ajax/system-web-routing-and-asp-net-ajax-client-side-framework-failed-to-load.aspx"&gt;http://www.telerik.com/community/forums/aspnet-ajax/ajax/system-web-routing-and-asp-net-ajax-client-side-framework-failed-to-load.aspx&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-3488182994289570165?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/3488182994289570165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/3488182994289570165'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2011/04/radbinaryimage-mappageroute-not-working.html' title='RadBinaryImage MapPageRoute not working'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-2588342300866018734</id><published>2011-04-12T09:28:00.000-05:00</published><updated>2011-04-12T09:30:12.784-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><title type='text'>Deploying ASP.NET 4 Web Forms Application Using Routing on IIS 6</title><content type='html'>&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px; "&gt;In IIS 6, opened the properties dialog of the virtual directory, went to the "Directory" tab, click the "Configuration" button, and added a Wildcard application map to the aspnet_isapi.dll (c:\windows\microsoft.net\framework\v4.0.30319\aspnet_isapi.dll) and unchecked the "Verify that file exists" checkbox. This made it work.&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px; "&gt;Found the answer here: &lt;/span&gt;&lt;a href="http://stackoverflow.com/questions/2953713/deploying-asp-net-4-web-forms-application-using-routing-on-iis-6"&gt;http://stackoverflow.com/questions/2953713/deploying-asp-net-4-web-forms-application-using-routing-on-iis-6&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-2588342300866018734?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/2588342300866018734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/2588342300866018734'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2011/04/deploying-aspnet-4-web-forms.html' title='Deploying ASP.NET 4 Web Forms Application Using Routing on IIS 6'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-48111576987594049</id><published>2009-12-03T14:57:00.002-06:00</published><updated>2009-12-03T14:58:17.123-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visual studio'/><category scheme='http://www.blogger.com/atom/ns#' term='SRS'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>SQL Server Reporting Services</title><content type='html'>I had a chart that needed to show negative values. I changed the Y-axis Scale minimum to 'auto' and it worked.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-48111576987594049?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/48111576987594049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/48111576987594049'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2009/12/sql-server-reporting-services.html' title='SQL Server Reporting Services'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-700030829409455391</id><published>2009-03-31T15:25:00.002-05:00</published><updated>2009-03-31T15:26:16.003-05:00</updated><title type='text'>Yeah, well....</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_oMIuXcrlrG0/SdJ8YVUPuFI/AAAAAAAAADw/pRPEeotyxdo/s1600-h/works-on-my-machine-starburst_3.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5319450867358742610" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 200px; CURSOR: hand; HEIGHT: 193px; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_oMIuXcrlrG0/SdJ8YVUPuFI/AAAAAAAAADw/pRPEeotyxdo/s320/works-on-my-machine-starburst_3.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-700030829409455391?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/700030829409455391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/700030829409455391'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2009/03/yeah-well.html' title='Yeah, well....'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_oMIuXcrlrG0/SdJ8YVUPuFI/AAAAAAAAADw/pRPEeotyxdo/s72-c/works-on-my-machine-starburst_3.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-6942503064491329772</id><published>2009-03-04T13:57:00.006-06:00</published><updated>2009-03-05T11:24:53.543-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Activate Reporting Services 2000 on Windows 2000</title><content type='html'>I installed SQL Server Reporting Services on Windows 2000. At the end it said I had to manually activate Reporting Services.&lt;br /&gt;&lt;br /&gt;This is what I did:&lt;br /&gt;&lt;br /&gt;C:\WINNT\Microsoft.NET\Framework\v1.1.4322&gt;aspnet_regiis.exe –i&lt;br /&gt;&lt;br /&gt;Then this….&lt;br /&gt;&lt;br /&gt;C:\WINNT\Microsoft.NET\Framework\v1.1.4322&gt;rsactivate -c"C:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\RSReportServer.config"&lt;br /&gt;&lt;br /&gt;------------&lt;br /&gt;&lt;br /&gt;If you had to restore a database that crashed, you'll need to restore the RSReportServer.config and then do a -r like this:&lt;br /&gt;&lt;br /&gt;C:\WINNT\Microsoft.NET\Framework\v1.1.4322&gt;rsactivate -c"C:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\RSReportServer.config" -r&lt;br /&gt;&lt;br /&gt;Found the answer here:&lt;br /&gt;&lt;a href="http://sqlforums.windowsitpro.com/web/forum/messageview.aspx?catid=92&amp;amp;threadid=27885&amp;amp;enterthread=y"&gt;http://sqlforums.windowsitpro.com/web/forum/messageview.aspx?catid=92&amp;amp;threadid=27885&amp;amp;enterthread=y&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-6942503064491329772?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/6942503064491329772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/6942503064491329772'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2009/03/activate-reporting-services-2000-on.html' title='Activate Reporting Services 2000 on Windows 2000'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-8899255493571577929</id><published>2008-11-13T14:49:00.002-06:00</published><updated>2008-11-13T14:57:51.846-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>C# find last months date range</title><content type='html'>DateTime firstDay = new DateTime(DateTime.Now.AddMonths(-1).Year, DateTime.Now.AddMonths(-1).Month, 1);&lt;br /&gt;&lt;br /&gt;int DaysinMonth = DateTime.DaysInMonth(DateTime.Now.AddMonths(-1).Year, DateTime.Now.AddMonths(-1).Month);&lt;br /&gt;&lt;br /&gt;DateTime lastDay = firstDay.AddMonths(1).AddTicks(-1);&lt;br /&gt;&lt;br /&gt;used code found here:&lt;br /&gt;&lt;a href="http://anuraj.wordpress.com/2007/12/03/last-day-and-first-day-of-the-month-using-c/"&gt;http://anuraj.wordpress.com/2007/12/03/last-day-and-first-day-of-the-month-using-c/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-8899255493571577929?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/8899255493571577929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/8899255493571577929'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2008/11/c-find-last-months-date-range.html' title='C# find last months date range'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-8497089394614184659</id><published>2008-08-08T14:04:00.000-05:00</published><updated>2008-08-08T14:04:49.733-05:00</updated><title type='text'>Why I'm Unimpressed With Rawness Of Skillz</title><content type='html'>&lt;a href="http://www.jondavis.net/blog/post/2008/08/Why-Im-Unimpressed-With-Rawness-Of-Skillz.aspx"&gt;Why I'm Unimpressed With Rawness Of Skillz&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-8497089394614184659?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.jondavis.net/blog/post/2008/08/Why-Im-Unimpressed-With-Rawness-Of-Skillz.aspx' title='Why I&apos;m Unimpressed With Rawness Of Skillz'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/8497089394614184659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/8497089394614184659'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2008/08/why-im-unimpressed-with-rawness-of.html' title='Why I&apos;m Unimpressed With Rawness Of Skillz'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-8961832405901349961</id><published>2008-06-10T09:41:00.000-05:00</published><updated>2008-06-10T09:41:31.698-05:00</updated><title type='text'>SSRS 2005 Report prints blank pages - landscape mode</title><content type='html'>&lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3346844&amp;amp;SiteID=1"&gt;Re: SSRS 2005 Report prints blank pages - MSDN Forums&lt;/a&gt;: "SSRS 2005 Report prints blank pages"&lt;br /&gt;&lt;br /&gt;Body + Right marigin + Left margin  should be less than page width&lt;br /&gt;Body + Top margin + Bottom margin  should be less than page height&lt;br /&gt;&lt;br /&gt;If you have header and footer take them also into account&lt;br /&gt;If you have any text box ,please check it is width and also matrix data regions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-8961832405901349961?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3346844&amp;SiteID=1' title='SSRS 2005 Report prints blank pages - landscape mode'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/8961832405901349961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/8961832405901349961'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2008/06/ssrs-2005-report-prints-blank-pages.html' title='SSRS 2005 Report prints blank pages - landscape mode'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-5359910885881020563</id><published>2008-04-24T12:03:00.002-05:00</published><updated>2008-04-24T12:10:27.273-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>c# read Excel 2007 .xlsx files</title><content type='html'>In order to read .xlsx files you need the drivers: &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=7554f536-8c28-4598-9b72-ef94e038c891"&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=7554f536-8c28-4598-9b72-ef94e038c891&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you don't, you may get the error: "Could not find installable ISAM."&lt;br /&gt;&lt;br /&gt;dir = new DirectoryInfo(System.Environment.CurrentDirectory);&lt;br /&gt;xlsFiles = dir.GetFiles("*.xls", SearchOption.AllDirectories);&lt;br /&gt;&lt;br /&gt;//loop thru all the text files&lt;br /&gt;foreach (FileInfo xlsFile in xlsFiles)&lt;br /&gt;{&lt;br /&gt;DataSet dataSet1 = new DataSet();&lt;br /&gt;OleDbConnection connection = new System.Data.OleDb.OleDbConnection();&lt;br /&gt;OleDbDataAdapter dataAdapter1;&lt;br /&gt;&lt;br /&gt;if (System.IO.Path.GetExtension(xlsFile.Name) == ".xlsx")&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;connection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + xlsFile.FullName + ";Extended Properties='Excel 12.0;'";&lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;connection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + xlsFile.FullName + ";Extended Properties='Excel 8.0;'";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;dataAdapter1 = new OleDbDataAdapter("select * from [Sheet1$]", connection);&lt;br /&gt;&lt;br /&gt;dataAdapter1.Fill(dataSet1);&lt;br /&gt;DataTable dt = dataSet1.Tables[0];&lt;br /&gt;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-5359910885881020563?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/5359910885881020563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/5359910885881020563'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2008/04/c-read-excel-2007-xlsx-files.html' title='c# read Excel 2007 .xlsx files'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-7347143207397405103</id><published>2008-04-11T13:54:00.000-05:00</published><updated>2008-04-11T13:54:52.625-05:00</updated><title type='text'>Putting ASP.NET Dynamic Data into Context</title><content type='html'>&lt;a href="http://www.hanselman.com/blog/PuttingASPNETDynamicDataIntoContext.aspx"&gt;Scott Hanselman's Computer Zen - Putting ASP.NET Dynamic Data into Context&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-7347143207397405103?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.hanselman.com/blog/PuttingASPNETDynamicDataIntoContext.aspx' title='Putting ASP.NET Dynamic Data into Context'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/7347143207397405103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/7347143207397405103'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2008/04/putting-aspnet-dynamic-data-into.html' title='Putting ASP.NET Dynamic Data into Context'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-3759358306531469710</id><published>2008-03-07T08:22:00.000-06:00</published><updated>2008-03-07T08:22:40.819-06:00</updated><title type='text'>Jeremy Schneider's Blog: Hide form tag, but leave content</title><content type='html'>&lt;a href="http://jerschneid.blogspot.com/2007/03/hide-form-tag-but-leave-content.html"&gt;Jeremy Schneider's Blog: Hide form tag, but leave content&lt;/a&gt;: "The problem is that a common practice in ASP.NET is to have a tag 'high up' in the HTML, usually in the Master page. HTML doesn't allow overlapping tags, so my PayPal button won't work. Since the higher level is in the Master page, it makes removing it pretty messy. As far as I know, there's no built-in 'hide this tag"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-3759358306531469710?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://jerschneid.blogspot.com/2007/03/hide-form-tag-but-leave-content.html' title='Jeremy Schneider&apos;s Blog: Hide form tag, but leave content'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/3759358306531469710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/3759358306531469710'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2008/03/jeremy-schneiders-blog-hide-form-tag.html' title='Jeremy Schneider&apos;s Blog: Hide form tag, but leave content'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-7697059861685809545</id><published>2008-03-05T08:09:00.000-06:00</published><updated>2008-03-05T08:09:56.271-06:00</updated><title type='text'>100+ Resources for Web Developers | BlogWell</title><content type='html'>&lt;a href="http://blog-well.com/2008/03/04/100-resources-for-web-developers/"&gt;100+ Resources for Web Developers  BlogWell&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-7697059861685809545?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog-well.com/2008/03/04/100-resources-for-web-developers/' title='100+ Resources for Web Developers | BlogWell'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/7697059861685809545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/7697059861685809545'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2008/03/100-resources-for-web-developers.html' title='100+ Resources for Web Developers | BlogWell'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-8387717958439827381</id><published>2008-03-04T11:19:00.000-06:00</published><updated>2008-03-04T11:19:22.030-06:00</updated><title type='text'>ProperCase function in SSRS ( SQL Server Reporting Services)</title><content type='html'>=StrConv(Fields!Name.Value, vbProperCase)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;found the answer here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=2891788&amp;amp;SiteID=17"&gt;Any ProperCase function in SSRS report - TechNet Forums&lt;/a&gt;: "Any ProperCase function in SSRS report"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-8387717958439827381?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=2891788&amp;SiteID=17' title='ProperCase function in SSRS ( SQL Server Reporting Services)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/8387717958439827381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/8387717958439827381'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2008/03/propercase-function-in-ssrs-sql-server.html' title='ProperCase function in SSRS ( SQL Server Reporting Services)'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-3158952063107675600</id><published>2008-02-18T09:30:00.000-06:00</published><updated>2008-02-18T09:30:52.741-06:00</updated><title type='text'>Connect: Microsoft SharedView Beta</title><content type='html'>&lt;a href="https://connect.microsoft.com/site/sitehome.aspx?SiteID=94&amp;amp;wa=wsignin1.0"&gt;Connect: Microsoft SharedView Beta&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-3158952063107675600?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='https://connect.microsoft.com/site/sitehome.aspx?SiteID=94&amp;wa=wsignin1.0' title='Connect: Microsoft SharedView Beta'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/3158952063107675600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/3158952063107675600'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2008/02/connect-microsoft-sharedview-beta.html' title='Connect: Microsoft SharedView Beta'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-1027841316874716046</id><published>2007-12-04T14:36:00.000-06:00</published><updated>2007-12-04T14:36:41.423-06:00</updated><title type='text'>SQL Server 2008, welcome to 10 years ago.</title><content type='html'>&lt;a href="http://3poundmass.wordpress.com/2007/11/30/sql-server-2008-will-have-intellisense/"&gt;SQL Server 2008 will have IntelliSense « Fun with .NET and SQL Server&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-1027841316874716046?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://3poundmass.wordpress.com/2007/11/30/sql-server-2008-will-have-intellisense/' title='SQL Server 2008, welcome to 10 years ago.'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/1027841316874716046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/1027841316874716046'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/12/sql-server-2008-welcome-to-10-years-ago.html' title='SQL Server 2008, welcome to 10 years ago.'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-5378076770853175666</id><published>2007-11-30T11:06:00.000-06:00</published><updated>2007-11-30T11:06:42.081-06:00</updated><title type='text'>SQL Server 2005 Reporting Services ReportViewer Control and IE7 « Arcane Code</title><content type='html'>3 tips to showing reports on a web form:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://arcanecode.wordpress.com/2007/11/29/sql-server-2005-reporting-services-reportviewer-control-and-ie7/"&gt;SQL Server 2005 Reporting Services ReportViewer Control and IE7 « Arcane Code&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-5378076770853175666?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://arcanecode.wordpress.com/2007/11/29/sql-server-2005-reporting-services-reportviewer-control-and-ie7/' title='SQL Server 2005 Reporting Services ReportViewer Control and IE7 « Arcane Code'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/5378076770853175666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/5378076770853175666'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/11/sql-server-2005-reporting-services.html' title='SQL Server 2005 Reporting Services ReportViewer Control and IE7 « Arcane Code'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-5011572189469082198</id><published>2007-11-28T09:28:00.000-06:00</published><updated>2007-11-28T09:28:23.725-06:00</updated><title type='text'>Microsoft Report Viewer 2008</title><content type='html'>If you want to use the Report Viewer that comes with VS 2008 you need this version 9 ReportViewer.exe installed on the server.&lt;br /&gt;&lt;br /&gt;Note: you need to install .NET 3.5 first.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=cc96c246-61e5-4d9e-bb5f-416d75a1b9ef&amp;amp;displaylang=en"&gt;Download details: Microsoft Report Viewer Redistributable 2008&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-5011572189469082198?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.microsoft.com/downloads/details.aspx?FamilyID=cc96c246-61e5-4d9e-bb5f-416d75a1b9ef&amp;displaylang=en' title='Microsoft Report Viewer 2008'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/5011572189469082198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/5011572189469082198'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/11/microsoft-report-viewer-2008.html' title='Microsoft Report Viewer 2008'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-6040627528034215625</id><published>2007-11-26T15:53:00.001-06:00</published><updated>2007-11-26T15:55:13.148-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visual studio'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><title type='text'>Visual Studio 2008</title><content type='html'>Installed Visual Studio 2008. 3.3GB download for the Pro version. Why so big? got me.&lt;br /&gt;Overall, very impressed. The ListView control looks nice. "A repeater on speed."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-6040627528034215625?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/6040627528034215625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/6040627528034215625'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/11/visual-studio-2008.html' title='Visual Studio 2008'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-435485217842694735</id><published>2007-11-12T15:59:00.000-06:00</published><updated>2007-11-12T16:00:48.402-06:00</updated><title type='text'>IE7</title><content type='html'>Why can't IE7 remember what tab I was looking at last when I remove a tab!?! Firefox can!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-435485217842694735?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/435485217842694735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/435485217842694735'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/11/ie7.html' title='IE7'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-2839425048725770556</id><published>2007-11-05T08:15:00.001-06:00</published><updated>2007-11-05T08:15:21.555-06:00</updated><title type='text'>Comcast Violates Net Neutrality. File Your Own FCC Complaint!</title><content type='html'>Yes, this is a blatant solicitation get people to sign this complaint, but Comcast deserves it and Net Neutraility is being violated!  ....Today, Free Press filed a legal complaint demanding that the FCC take action to protect the free flow of information on the Internet. By joining our complaint, you can help stop Comcast and other gatekeepers.&lt;br/&gt;&lt;br/&gt;&lt;a href='http://action.freepress.net/campaign/comcastviolates'&gt;read more&lt;/a&gt; | &lt;a href='http://digg.com/tech_news/Comcast_Violates_Net_Neutrality_File_Your_Own_FCC_Complaint'&gt;digg story&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-2839425048725770556?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/2839425048725770556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/2839425048725770556'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/11/comcast-violates-net-neutrality-file.html' title='Comcast Violates Net Neutrality. File Your Own FCC Complaint!'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-4587940871166914778</id><published>2007-11-02T10:55:00.000-05:00</published><updated>2007-11-02T10:55:36.136-05:00</updated><title type='text'>Deploying Reports and ReportViewer Controls</title><content type='html'>If you get this error:&lt;br /&gt;"Could not load file or assembly 'Microsoft.ReportViewer.WebForms, Version=8.0.0.0,"&lt;br /&gt;&lt;br /&gt;You need to run this file on the server:&lt;br /&gt;The ReportViewer control redistributable is a self-extracting file named ReportViewer.exe that includes an .msi and other files. You can find ReportViewer.exe at the following location: C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\ReportViewer\ReportViewer.exe.&lt;br /&gt;&lt;br /&gt;Found the solution here:&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms251723(VS.80).aspx"&gt;Deploying Reports and ReportViewer Controls&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-4587940871166914778?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/4587940871166914778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/4587940871166914778'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/11/deploying-reports-and-reportviewer.html' title='Deploying Reports and ReportViewer Controls'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-2938843089388158340</id><published>2007-11-02T10:01:00.000-05:00</published><updated>2007-11-02T10:01:04.136-05:00</updated><title type='text'>SQL Server Reporting Services number of rows per page</title><content type='html'>Set a number of rows per page with the grouping trick:&lt;br /&gt;&lt;br /&gt;Go to Table Properties - GroupsAdd a Row Group with the following function: =Ceiling(RowNumber(Nothing)/30)Make sure "page break at end" is checkedNow you have a set number of rows and with that a set vertical size(assuming text does not wrap).Make the control a little wider then needed and you should not have scrollbars (most of the time).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Found the code here:&lt;br /&gt;&lt;a href="http://www.eggheadcafe.com/software/aspnet/29069570/reportviewer-control-alwa.aspx"&gt;SQL Server reportingsvcs ReportViewer control always shows scrollbars&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-2938843089388158340?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.eggheadcafe.com/software/aspnet/29069570/reportviewer-control-alwa.aspx' title='SQL Server Reporting Services number of rows per page'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/2938843089388158340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/2938843089388158340'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/11/sql-server-reporting-services-number-of.html' title='SQL Server Reporting Services number of rows per page'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-7528321483250576568</id><published>2007-11-01T16:13:00.000-05:00</published><updated>2007-11-01T16:13:13.284-05:00</updated><title type='text'>SQL Server Reporting Services RunningValue in a chart - scope issues</title><content type='html'>Using SQL 2005 and Visual Studio 2005 I wanted to show a cummulative series in a chart, plotted as a line. I had to add a "fake" series grouping in order to get it to work.&lt;br /&gt;&lt;br /&gt;Found the solution here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.eggheadcafe.com/forumarchives/SQLServerreportingsvcs/Oct2005/post23990712.asp"&gt;sqlserver reportingsvcs RunningValue in a chart - scope issues&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-7528321483250576568?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.eggheadcafe.com/forumarchives/SQLServerreportingsvcs/Oct2005/post23990712.asp' title='SQL Server Reporting Services RunningValue in a chart - scope issues'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/7528321483250576568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/7528321483250576568'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/11/sql-server-reporting-services.html' title='SQL Server Reporting Services RunningValue in a chart - scope issues'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-2071554703688531701</id><published>2007-10-16T15:32:00.000-05:00</published><updated>2007-10-16T15:32:57.988-05:00</updated><title type='text'>ASP.NET Resources - Proliferation of Unhelpful Visuals</title><content type='html'>&lt;a href="http://aspnetresources.com/blog/proliferation_of_unhelpful_visuals.aspx"&gt;ASP.NET Resources - Proliferation of Unhelpful Visuals&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-2071554703688531701?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://aspnetresources.com/blog/proliferation_of_unhelpful_visuals.aspx' title='ASP.NET Resources - Proliferation of Unhelpful Visuals'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/2071554703688531701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/2071554703688531701'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/10/aspnet-resources-proliferation-of.html' title='ASP.NET Resources - Proliferation of Unhelpful Visuals'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-7236659668562613675</id><published>2007-10-03T11:56:00.000-05:00</published><updated>2007-10-03T11:56:52.004-05:00</updated><title type='text'>Utilities.NET 1.0 released - James Newton-King</title><content type='html'>&lt;a href="http://james.newtonking.com/archive/2007/10/02/utilities-net-1-0-released.aspx"&gt;Utilities.NET 1.0 released - James Newton-King&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-7236659668562613675?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://james.newtonking.com/archive/2007/10/02/utilities-net-1-0-released.aspx' title='Utilities.NET 1.0 released - James Newton-King'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/7236659668562613675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/7236659668562613675'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/10/utilitiesnet-10-released-james-newton.html' title='Utilities.NET 1.0 released - James Newton-King'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-7262204072893580390</id><published>2007-10-02T11:30:00.000-05:00</published><updated>2007-10-02T11:30:53.156-05:00</updated><title type='text'>DateTime Parse and CultureInfo problem.</title><content type='html'>Show US formatted dates in a different culture:&lt;br /&gt;&lt;br /&gt;string dt = "1/31/2004";           &lt;br /&gt;CultureInfo nfo = new CultureInfo("en-US");           &lt;br /&gt;DateTime date = DateTime.Parse(dt, nfo);&lt;br /&gt;           &lt;br /&gt;CultureInfo nfo2 = new CultureInfo("en-GB");           &lt;br /&gt;Console.WriteLine(date.ToString(nfo2));&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.devnewsgroups.net/group/microsoft.public.dotnet.framework/topic1273.aspx"&gt;Found the code here.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-7262204072893580390?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.devnewsgroups.net/group/microsoft.public.dotnet.framework/topic1273.aspx' title='DateTime Parse and CultureInfo problem.'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/7262204072893580390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/7262204072893580390'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/10/datetime-parse-and-cultureinfo-problem.html' title='DateTime Parse and CultureInfo problem.'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-268355333484962562</id><published>2007-09-25T12:02:00.000-05:00</published><updated>2007-09-25T12:10:07.401-05:00</updated><title type='text'>24/7</title><content type='html'>Do advertisers really need to say "and you can shop online 24/7". It's 2007, I think everyone is well aware that websites are available ALL THE TIME.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-268355333484962562?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/268355333484962562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/268355333484962562'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/09/247.html' title='24/7'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-7395296397549017162</id><published>2007-09-18T16:11:00.000-05:00</published><updated>2007-09-18T16:11:24.290-05:00</updated><title type='text'>GridView: Creating groups and summaries with 2 lines of code</title><content type='html'>I haven't tried this out yet but it looks nice. Makes grouping rows easy.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.agrinei.com/gridviewhelper/gridviewhelper_en.htm"&gt;GridView: Creating groups and summaries with 2 lines of code&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-7395296397549017162?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.agrinei.com/gridviewhelper/gridviewhelper_en.htm' title='GridView: Creating groups and summaries with 2 lines of code'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/7395296397549017162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/7395296397549017162'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/09/gridview-creating-groups-and-summaries.html' title='GridView: Creating groups and summaries with 2 lines of code'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-991247550449810670</id><published>2007-09-11T15:23:00.001-05:00</published><updated>2007-09-11T15:23:04.935-05:00</updated><title type='text'>Comcast must die.</title><content type='html'>Yet another story on how Comcast screwed one of their customers. They're Craptastic!&lt;br/&gt;&lt;br/&gt;&lt;a href='http://adage.com/garfieldtheblog/article?article_id=120338'&gt;read more&lt;/a&gt; | &lt;a href='http://digg.com/tech_news/Comcast_must_die'&gt;digg story&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-991247550449810670?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/991247550449810670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/991247550449810670'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/09/comcast-must-die.html' title='Comcast must die.'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-7171801500371773411</id><published>2007-09-10T15:12:00.000-05:00</published><updated>2007-09-10T15:17:44.652-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>System.Net.WebClient</title><content type='html'>I needed a way to grab some content from a remote site. The following code worked the best. You may &lt;em&gt;&lt;span style="color:#ff0000;"&gt;not&lt;/span&gt;&lt;/em&gt; need to specify a proxy as I have.&lt;br /&gt;&lt;br /&gt;&lt;div style="BACKGROUND: white;font-family:Courier New;font-size:10pt;color:black;"   &gt;&lt;pre style="MARGIN: 0px"&gt;System.Net.&lt;span style="color:#2b91af;"&gt;WebClient&lt;/span&gt; wc = &lt;span style="color:blue;"&gt;new&lt;/span&gt; System.Net.&lt;span style="color:#2b91af;"&gt;WebClient&lt;/span&gt;();&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt; &lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="color:blue;"&gt;string&lt;/span&gt; proxyURL = &lt;span style="color:#2b91af;"&gt;ConfigurationManager&lt;/span&gt;.AppSettings[&lt;span style="color:#a31515;"&gt;"ProxyURL"&lt;/span&gt;];&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="color:blue;"&gt;string&lt;/span&gt; proxyCredUserName = &lt;span style="color:#2b91af;"&gt;ConfigurationManager&lt;/span&gt;.AppSettings[&lt;span style="color:#a31515;"&gt;"ProxyUserName"&lt;/span&gt;];&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="color:blue;"&gt;string&lt;/span&gt; proxyCredPassword = &lt;span style="color:#2b91af;"&gt;ConfigurationManager&lt;/span&gt;.AppSettings[&lt;span style="color:#a31515;"&gt;"ProxyPassword"&lt;/span&gt;];&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt; &lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;System.Net.&lt;span style="color:#2b91af;"&gt;WebProxy&lt;/span&gt; proxy = &lt;span style="color:blue;"&gt;new&lt;/span&gt; System.Net.&lt;span style="color:#2b91af;"&gt;WebProxy&lt;/span&gt;(proxyURL);&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;System.Net.&lt;span style="color:#2b91af;"&gt;NetworkCredential&lt;/span&gt; cred = &lt;span style="color:blue;"&gt;new&lt;/span&gt; System.Net.&lt;span style="color:#2b91af;"&gt;NetworkCredential&lt;/span&gt;(proxyCredUserName, proxyCredPassword, &lt;span style="color:#000000;"&gt;domain&lt;/span&gt;);&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt; &lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;proxy.UseDefaultCredentials = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;proxy.Credentials = cred;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;wc.Proxy = proxy;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt; &lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;chartImage = wc.DownloadData(chartImageURL);&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-7171801500371773411?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/7171801500371773411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/7171801500371773411'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/09/systemnetwebclient.html' title='System.Net.WebClient'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-7105502131540365253</id><published>2007-08-27T14:23:00.000-05:00</published><updated>2007-08-27T14:26:17.112-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visual studio'/><category scheme='http://www.blogger.com/atom/ns#' term='SRS'/><title type='text'>Microsoft SQL Reporting Services and Visual Studio 2005</title><content type='html'>If you want to be able to create Report Projects for SQL Reporting Services with Visual Studio 2005 you have to install SQL 2005, I did the Standard install, and make sure you select the "Business Intelligence" items. Wait forever.......and when the install is finally done you will get a option for "Report Server Project" when you select "New Project" in Visual Studio 2005.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-7105502131540365253?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/7105502131540365253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/7105502131540365253'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/08/microsoft-sql-reporting-services-and.html' title='Microsoft SQL Reporting Services and Visual Studio 2005'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-5748933700606903826</id><published>2007-08-23T12:41:00.000-05:00</published><updated>2007-08-23T12:41:47.529-05:00</updated><title type='text'>Seamless inline text editing with ASP.NET AJAX | Encosia</title><content type='html'>I've seen this done Google calendar and think it's a nice way to have the same page used as display and edit. The author of this blog does an awesome job of explaining each step.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://encosia.com/index.php/2007/08/23/seamless-inline-text-editing-with-aspnet-ajax/"&gt;Seamless inline text editing with ASP.NET AJAX  Encosia&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-5748933700606903826?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://encosia.com/index.php/2007/08/23/seamless-inline-text-editing-with-aspnet-ajax/' title='Seamless inline text editing with ASP.NET AJAX | Encosia'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/5748933700606903826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/5748933700606903826'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/08/seamless-inline-text-editing-with.html' title='Seamless inline text editing with ASP.NET AJAX | Encosia'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-8132161975420593769</id><published>2007-08-21T15:15:00.000-05:00</published><updated>2007-08-21T15:19:27.380-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sap mdm com api'/><title type='text'>SAP MDM COM API SP5</title><content type='html'>I've noticed that the console now seems to show &lt;em&gt;ALL&lt;/em&gt; com &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;api&lt;/span&gt; connections in the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Logins&lt;/span&gt; section. Apparently &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;MDM&lt;/span&gt; COM &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;API&lt;/span&gt; creates a connection for the application and another for the trace. I'm not sure if this is true but I've never saw it before moving to SP5.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-8132161975420593769?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/8132161975420593769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/8132161975420593769'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/08/sap-mdm-com-api-sp5_21.html' title='SAP MDM COM API SP5'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-2114311292413304510</id><published>2007-08-16T15:35:00.000-05:00</published><updated>2007-08-16T15:38:51.269-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><title type='text'>SQL Reporting Services</title><content type='html'>I had a report that looked great in the browser but showed this error when exported to Excel: &lt;br /&gt;&lt;strong&gt;"&lt;em&gt;Subreports within table/matrix cells are ignored."&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;It's a limitation with the software. I removed the table and put my Fields and sub reports in a List control. I set the datasource and grouping properties for the List control and everything works fine now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-2114311292413304510?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/2114311292413304510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/2114311292413304510'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/08/sql-reporting-services.html' title='SQL Reporting Services'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-3763899416358605507</id><published>2007-08-10T16:23:00.000-05:00</published><updated>2007-08-10T16:23:54.986-05:00</updated><title type='text'>No More Hard Drive! 100 Free Software Apps to Go Online-Only</title><content type='html'>&lt;a href="http://www.tzunami.com/No-More-Harddrive.php"&gt;No More Hard Drive! 100 Free Software Apps to Go Online-Only&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-3763899416358605507?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/3763899416358605507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/3763899416358605507'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/08/no-more-hard-drive-100-free-software.html' title='No More Hard Drive! 100 Free Software Apps to Go Online-Only'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-2607641465489484099</id><published>2007-08-09T15:17:00.000-05:00</published><updated>2007-08-09T15:20:58.881-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='sap mdm com api'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>SAP MDM COM API Get Attribute By Category ID</title><content type='html'>public static DataTable GetByCategoryID(int attributeID, int categoryID, XCATCOMLib.Catalog catalog)&lt;br /&gt;      {&lt;br /&gt;         //         There are 3 types of attributes:&lt;br /&gt;         //         Feature - text values;&lt;br /&gt;         //         Characteristic - numeric values;&lt;br /&gt;         //         Coupled - coupled numeric values.&lt;br /&gt;&lt;br /&gt;         DataRow row = null;&lt;br /&gt;         DataTable dt = new DataTable();&lt;br /&gt;         dt.Columns.Add("AttributeID");&lt;br /&gt;         dt.Columns.Add("AttributeValue");&lt;br /&gt;         dt.Columns.Add("AttributeCoupleValue");&lt;br /&gt;         dt.Columns.Add("AttributeDisplayValue");&lt;br /&gt;         dt.Columns.Add("AttributeRating");&lt;br /&gt;         dt.Columns.Add("ShowAllFlag");&lt;br /&gt;         dt.Columns.Add("AttributePriority");&lt;br /&gt;         dt.Columns.Add("AttributeUnitID");&lt;br /&gt;         dt.Columns.Add("AttributeCoupleUnitID");        &lt;br /&gt;&lt;br /&gt;         XCATCOMLib.Attribute prodAttribute = catalog.GetAttribute(CATEGORY_TABLE, attributeID);&lt;br /&gt;         XCATCOMLib.Search search = new XCATCOMLib.SearchClass();&lt;br /&gt;         XCATCOMLib.TaxonomyLookupParameter param = search.Parameters.NewTaxonomyLookupParameter(PRODUCT_TABLE, CATEGORY_FIELD);&lt;br /&gt;         param.NodeID = categoryID;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;         XCATCOMLib.FreeFormTableParameter tableParam = search.Parameters.NewFreeFormParameter(PRODUCT_TABLE);&lt;br /&gt;         XCATCOMLib.FeatureParameter featureParam = null;&lt;br /&gt;&lt;br /&gt;         &lt;br /&gt;         int attribType = prodAttribute.Type;&lt;br /&gt;         string attribDefinition = prodAttribute.Definition;&lt;br /&gt;         byte attribPriority = prodAttribute.Priority;&lt;br /&gt;&lt;br /&gt;         if (attribType == 0) //xcFeatureValueType&lt;br /&gt;         {&lt;br /&gt;            XCATCOMLib.FeatureValues fvs = catalog.GetLimitedFeatureValues(search, CATEGORY_TABLE, attributeID);&lt;br /&gt;            foreach (FeatureValue fv in fvs)&lt;br /&gt;            {&lt;br /&gt;               row = dt.NewRow();&lt;br /&gt;               row["AttributeValue"] = fv.ID;&lt;br /&gt;               row["AttributeID"] = attributeID;&lt;br /&gt;               row["AttributeDisplayValue"] = fv.Value;&lt;br /&gt;               row["AttributeRating"] = 0;&lt;br /&gt;               row["ShowAllFlag"] = false;&lt;br /&gt;               row["AttributePriority"] = attribPriority;&lt;br /&gt;               row["AttributeUnitID"] = "";&lt;br /&gt;               row["AttributeCoupleUnitID"] = "";&lt;br /&gt;               dt.Rows.Add(row);&lt;br /&gt;            }           &lt;br /&gt;         }&lt;br /&gt;         else if ((attribType &amp; 0xFF) &gt; 0) //xcCharacteristicValueType&lt;br /&gt;         {&lt;br /&gt;            string attribName = Helper.FormatAttributeName(prodAttribute.Name);&lt;br /&gt;            string attribAlias = prodAttribute.Alias;&lt;br /&gt;&lt;br /&gt;            int[] gRatingArray = new int[5];&lt;br /&gt;            gRatingArray[0] = 8;//"xcNominalRating";&lt;br /&gt;            gRatingArray[1] = 1;//"xcMinimumRating";&lt;br /&gt;            gRatingArray[2] = 2;//"xcMaximumRating";&lt;br /&gt;            gRatingArray[3] = 16;//"xcAverageRating";&lt;br /&gt;            gRatingArray[4] = 4;//"xcTypicalRating";&lt;br /&gt;&lt;br /&gt;            int attribTypeInt = prodAttribute.Type;&lt;br /&gt;            for (int k = 0; k &lt; gRatingArray.Length; k++)&lt;br /&gt;            {&lt;br /&gt;               int rating = gRatingArray[k];&lt;br /&gt;&lt;br /&gt;               if ((attribTypeInt &amp; rating) == rating)&lt;br /&gt;               {&lt;br /&gt;                  XCATCOMLib.CharacteristicValues cvs = catalog.GetLimitedCharacteristicValues(search, CATEGORY_TABLE, attributeID, (RatingEnum)rating);&lt;br /&gt;&lt;br /&gt;                  foreach (CharacteristicValue cv in cvs)&lt;br /&gt;                  {&lt;br /&gt;                     row = dt.NewRow();&lt;br /&gt;                     row["AttributeID"] = attributeID;&lt;br /&gt;                     row["AttributeDisplayValue"] = cv.GetString(prodAttribute.DimensionID, prodAttribute.DecimalPlaces, prodAttribute.AllowFractions, cv.UnitID);;&lt;br /&gt;                     row["AttributeValue"] = cv.Value;&lt;br /&gt;                     row["AttributeCoupleValue"] = "";&lt;br /&gt;                     row["AttributeRating"] = rating;&lt;br /&gt;                     row["ShowAllFlag"] = false;&lt;br /&gt;                     row["AttributePriority"] = attribPriority;&lt;br /&gt;                     row["AttributeUnitID"] = cv.UnitID;&lt;br /&gt;                     row["AttributeCoupleUnitID"] = "";&lt;br /&gt;                     dt.Rows.Add(row);&lt;br /&gt;                  }&lt;br /&gt;               }&lt;br /&gt;            }&lt;br /&gt;         }&lt;br /&gt;         else if (attribType == 0x8000) //xcCoupledValueType&lt;br /&gt;         {&lt;br /&gt;            XCATCOMLib.CoupledValues cpvs = catalog.GetLimitedCoupledValues(search, CATEGORY_TABLE, attributeID);&lt;br /&gt;            foreach (CoupledValue cpv in cpvs)&lt;br /&gt;            {&lt;br /&gt;               string primary;&lt;br /&gt;               string coupled;&lt;br /&gt;               primary = cpv.Primary.GetString(prodAttribute.DimensionID, prodAttribute.DecimalPlaces, prodAttribute.AllowFractions, cpv.Primary.UnitID);&lt;br /&gt;               coupled = cpv.Coupled.GetString(prodAttribute.CoupledDimensionID, prodAttribute.CoupledDecimalPlaces, prodAttribute.CoupledAllowFractions, cpv.Coupled.UnitID);&lt;br /&gt;&lt;br /&gt;               row = dt.NewRow();&lt;br /&gt;               row["AttributeDisplayValue"] = primary + " " + prodAttribute.CoupledDelimiter + " " + coupled;;&lt;br /&gt;               row["AttributeValue"] = cpv.Primary.Value;&lt;br /&gt;               row["AttributeCoupleValue"] = cpv.Coupled.Value;&lt;br /&gt;               row["AttributeID"] = attributeID;&lt;br /&gt;               row["AttributeRating"] = 0;&lt;br /&gt;               row["ShowAllFlag"] = false;&lt;br /&gt;               row["AttributePriority"] = attribPriority;&lt;br /&gt;               row["AttributeUnitID"] = cpv.Primary.UnitID;&lt;br /&gt;               row["AttributeCoupleUnitID"] = cpv.Coupled.UnitID;&lt;br /&gt;               dt.Rows.Add(row);&lt;br /&gt;            }&lt;br /&gt;         }&lt;br /&gt;&lt;br /&gt;        return dt;&lt;br /&gt;      }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-2607641465489484099?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/2607641465489484099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/2607641465489484099'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/08/sap-mdm-com-api-get-attribute-by.html' title='SAP MDM COM API Get Attribute By Category ID'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-671062304981323434</id><published>2007-08-09T15:14:00.000-05:00</published><updated>2007-08-09T15:21:18.487-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sap mdm com api'/><title type='text'>SAP MDM COM API SP5</title><content type='html'>MDM SP5 seems to be faster overall. A new field has been added in the console called "Code". This is really nice because now you can access fields using this Code name instead of the display Name.&lt;br /&gt;&lt;br /&gt;There were a lot of places in where I had to change .Name to .Code, but after that the upgrade went smoothly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-671062304981323434?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/671062304981323434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/671062304981323434'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/08/sap-mdm-com-api-sp5.html' title='SAP MDM COM API SP5'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-943980996475640207</id><published>2007-08-03T12:08:00.000-05:00</published><updated>2007-08-03T12:08:42.310-05:00</updated><title type='text'>Scrollovers - A New Way of Linking</title><content type='html'>I like the idea. Too many on a page might be overkill though.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.scrollovers.com/"&gt;Scrollovers - A New Way of Linking&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-943980996475640207?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.scrollovers.com/' title='Scrollovers - A New Way of Linking'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/943980996475640207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/943980996475640207'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/08/scrollovers-new-way-of-linking.html' title='Scrollovers - A New Way of Linking'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-8666826281686129865</id><published>2007-07-24T11:45:00.001-05:00</published><updated>2007-07-24T11:45:10.913-05:00</updated><title type='text'>2010, a "Windows 7" software subscription odyssey</title><content type='html'>Microsoft has again confirmed that the "big release" approach to software development is alive and well at Microsoft. Ballmer said as much earlier this year in advance of the retail Vista launch, but the company is reiterating the point now as it ramps up preparation for the next version of Windows and a renewed push for software subscriptions.&lt;br/&gt;&lt;br/&gt;&lt;a href='http://arstechnica.com/news.ars/post/20070722-2010-a-windows-7-odyssey.html'&gt;read more&lt;/a&gt; | &lt;a href='http://digg.com/microsoft/2010_a_Windows_7_software_subscription_odyssey'&gt;digg story&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-8666826281686129865?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/8666826281686129865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/8666826281686129865'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/07/2010-7-software-subscription-odyssey.html' title='2010, a &amp;quot;Windows 7&amp;quot; software subscription odyssey'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-6575541757886314190</id><published>2007-07-19T09:34:00.000-05:00</published><updated>2007-07-19T11:35:39.724-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='user control'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>Send Web User Control as Email</title><content type='html'>I often have to setup an application to auto-send emails. I use a user control as the body of the email to save time formatting the HTML.&lt;br /&gt;&lt;br /&gt;&lt;div style="BACKGROUND: white;font-family:Courier New;font-size:10pt;color:black;"   &gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; getSupervisorEmailContent()&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;{&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;    &lt;span style="color:blue;"&gt;string&lt;/span&gt; content;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;    &lt;span style="color:green;"&gt;// create and populate an instance of a ContentControl user control&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;    &lt;span style="color:#2b91af;"&gt;EmailSupervisor&lt;/span&gt; cc = (&lt;span style="color:#2b91af;"&gt;EmailSupervisor&lt;/span&gt;)&lt;span style="color:blue;"&gt;this&lt;/span&gt;.LoadControl(&lt;span style="color:#a31515;"&gt;"EmailSupervisor.ascx"&lt;/span&gt;);&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;    cc.EmployeeName = &lt;span style="color:blue;"&gt;this&lt;/span&gt;.lblEmployeeName.Text;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;    cc.SystemLink = &lt;span style="color:#a31515;"&gt;"http://"&lt;/span&gt; + &lt;span style="color:#2b91af;"&gt;HttpContext&lt;/span&gt;.Current.Request.Url.Host + &lt;span style="color:#a31515;"&gt;"/TechLadder"&lt;/span&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;    &lt;span style="color:green;"&gt;// render the output of the user control to a string, for use by the email message body&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;    System.Text.&lt;span style="color:#2b91af;"&gt;StringBuilder&lt;/span&gt; sb = &lt;span style="color:blue;"&gt;new&lt;/span&gt; System.Text.&lt;span style="color:#2b91af;"&gt;StringBuilder&lt;/span&gt;();&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;    System.IO.&lt;span style="color:#2b91af;"&gt;StringWriter&lt;/span&gt; sw = &lt;span style="color:blue;"&gt;new&lt;/span&gt; System.IO.&lt;span style="color:#2b91af;"&gt;StringWriter&lt;/span&gt;(sb);&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;    System.Web.UI.&lt;span style="color:#2b91af;"&gt;HtmlTextWriter&lt;/span&gt; htmltw = &lt;span style="color:blue;"&gt;new&lt;/span&gt; System.Web.UI.&lt;span style="color:#2b91af;"&gt;HtmlTextWriter&lt;/span&gt;(sw);&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;    cc.RenderControl(htmltw);&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;    content = sb.ToString();&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;    &lt;span style="color:blue;"&gt;return&lt;/span&gt; content;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; SendSupervisorEmail(&lt;span style="color:blue;"&gt;string&lt;/span&gt; email)&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;{&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;    &lt;span style="color:blue;"&gt;try&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;    {&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;        &lt;span style="color:#2b91af;"&gt;MailAddress&lt;/span&gt; from = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MailAddress&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;"no-reply@andrew.com"&lt;/span&gt;);&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;        &lt;span style="color:#2b91af;"&gt;MailAddress&lt;/span&gt; to = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MailAddress&lt;/span&gt;(email);&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;        &lt;span style="color:#2b91af;"&gt;MailMessage&lt;/span&gt; Message = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MailMessage&lt;/span&gt;(from, to);&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;        Message.IsBodyHtml = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;        Message.Subject = &lt;span style="color:#a31515;"&gt;"System Engineering Technical Ladder"&lt;/span&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;        &lt;span style="color:blue;"&gt;string&lt;/span&gt; superMsg = getSupervisorEmailContent();&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;        Message.Body = superMsg;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;        &lt;span style="color:#2b91af;"&gt;SmtpClient&lt;/span&gt; client = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;SmtpClient&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;ConfigurationManager&lt;/span&gt;.AppSettings[&lt;span style="color:#a31515;"&gt;"Andrew:MailServer"&lt;/span&gt;]);&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;        client.Send(Message);&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;    }&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;    &lt;span style="color:blue;"&gt;catch&lt;/span&gt; (&lt;span style="color:#2b91af;"&gt;Exception&lt;/span&gt; ex)&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;    {&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;        &lt;span style="color:blue;"&gt;throw&lt;/span&gt; ex;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;    }&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN: 0px"&gt;&lt;span style="font-size:85%;"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-6575541757886314190?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/6575541757886314190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/6575541757886314190'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/07/send-web-user-control-as-email.html' title='Send Web User Control as Email'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-3121542043423243061</id><published>2007-07-17T11:34:00.001-05:00</published><updated>2007-07-19T11:36:08.973-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='sap mdm com api'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>SAP MDM COM API</title><content type='html'>For more than a year I’ve been using the SAP MDM (Master Data Management) COM API with .NET 1.1. Getting started was frustrating. There isn’t a lot of code samples out there.&lt;br /&gt;Here is a simple function to get the product record by product ID.&lt;br /&gt;&lt;br /&gt;public static XCATCOMLib.ResultSet GetResultSet(int productID, XCATCOMLib.Catalog catalog)&lt;br /&gt;{&lt;br /&gt;XCATCOMLib.Search search = new XCATCOMLib.SearchClass();&lt;br /&gt;XCATCOMLib.ResultSetDefinition productsRsDef = null;&lt;br /&gt;&lt;br /&gt;// get references to tables&lt;br /&gt;XCATCOMLib.Tables tables = catalog.Tables;&lt;br /&gt;XCATCOMLib.Table prodTable = tables.Item(PRODUCT_TABLE);&lt;br /&gt;&lt;br /&gt;// products&lt;br /&gt;productsRsDef = new XCATCOMLib.ResultSetDefinitionClass();&lt;br /&gt;productsRsDef.Table = prodTable.Name;&lt;br /&gt;&lt;br /&gt;//get the column names of the product table&lt;br /&gt;for (int j = 0; j &lt; prodTable.Fields.Count; j++)&lt;br /&gt;{&lt;br /&gt;productsRsDef.Fields.Add(prodTable.Fields.Item(j));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;XCATCOMLib.TableParameter lp = search.Parameters.NewTableParameter(PRODUCT_TABLE);&lt;br /&gt;lp.RecordIDs.Add(productID);&lt;br /&gt;&lt;br /&gt;ResultSet rs = catalog.GetResultSet(search, productsRsDef, prodTable.Fields.Item(0).Name, true, 0);&lt;br /&gt;&lt;br /&gt;return rs;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-3121542043423243061?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/3121542043423243061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/3121542043423243061'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/07/sap-mdm-com-api.html' title='SAP MDM COM API'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-6239466657849751875</id><published>2007-07-17T11:33:00.001-05:00</published><updated>2007-07-19T11:36:42.595-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='CDOEX'/><title type='text'>Retrieve Microsoft Exchange FreeBusy data</title><content type='html'>I wanted to show an exchange users calendar for the current day. There is a command you can use with Microsoft Outlook web access. At first I thought I could just call this command, parse the XML and display a table from 8am to 5pm showing out of office, in a meeting, etc..&lt;br /&gt;What I didn’t realize is that you will always get back null unless you run the command on the exchange server. &lt;a href="http://support.microsoft.com/kb/813268"&gt;Microsft actually explains &lt;/a&gt;that you should use the command to make a web service.&lt;br /&gt;&lt;br /&gt;You can also use CDOEX, (Collaboration Data Objects for Exchange), to retrieve the data. Again, this must be run on the exchange server. You’d have to find the cdoex.dll and regsvr32 it locally to add it to Visual Studio. You can find the dll on the exchange server or search the web. That code looks like this:&lt;br /&gt;&lt;br /&gt;string freebusy = “EMPTY”;&lt;br /&gt;int Interval = 30;&lt;br /&gt;DateTime dtStartDate = DateTime.Parse(“2/8/2007 1:00:00 AM”);&lt;br /&gt;DateTime dtEndDate = DateTime.Parse(“2/8/2007 11:00:00 PM”);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CDO.Addressee iAddr = new CDO.Addressee();&lt;br /&gt;ActiveDs.ADSystemInfo Info = new ActiveDs.ADSystemInfo();&lt;br /&gt;&lt;br /&gt;iAddr.EmailAddress = “example@example.com”;&lt;br /&gt;if (!(iAddr.CheckName(“LDAP://” + Info.DomainDNSName, “”, “”)))&lt;br /&gt;throw new System.Exception(“Error occured!”);&lt;br /&gt;&lt;br /&gt;freebusy = iAddr.GetFreeBusy(dtStartDate, dtEndDate, 30, “”, “”, “”, “”);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-6239466657849751875?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/6239466657849751875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/6239466657849751875'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/07/retrieve-microsoft-exchange-freebusy-da.html' title='Retrieve Microsoft Exchange FreeBusy data'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-3943978392391843210</id><published>2007-07-17T11:32:00.001-05:00</published><updated>2007-07-19T11:37:04.742-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='gridview'/><title type='text'>Change Gridview row color</title><content type='html'>One way to change the entire row color of a GridView is to do it during RowDataBound(). If a flag returns true from the database I wanted to make that entire row red. Here is how I did that:&lt;br /&gt;&lt;br /&gt;protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)&lt;br /&gt;{&lt;br /&gt;if (e.Row.RowType == DataControlRowType.DataRow)&lt;br /&gt;{&lt;br /&gt;DataRowView test = (System.Data.DataRowView)e.Row.DataItem;&lt;br /&gt;bool actionPlanExists = SqlConvert.ToBoolean(test.Row[“ActionPlanExists”]);&lt;br /&gt;if (actionPlanExists == true)&lt;br /&gt;{&lt;br /&gt;e.Row.BackColor = System.Drawing.Color.Red;&lt;br /&gt;e.Row.ForeColor = System.Drawing.Color.White;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-3943978392391843210?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/3943978392391843210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/3943978392391843210'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/07/change-gridview-row-color.html' title='Change Gridview row color'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-5499123225329819268</id><published>2007-07-17T11:31:00.000-05:00</published><updated>2007-07-19T11:37:34.392-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='localization'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>.NET Localization</title><content type='html'>Here is code to offer a dropdownlist so visitors can change the language.&lt;br /&gt;&lt;?xml:namespace prefix = asp /&gt;&lt;asp:dropdownlist id="”ddlLanguage”" onselectedindexchanged="”ddlLanguage_SelectedIndexChanged”" autopostback="”True”" runat="”server”"&gt;&lt;br /&gt;&lt;asp:listitem&gt;– Language –&lt;/asp:listitem&gt;&lt;br /&gt;&lt;asp:listitem value="”en-US”"&gt;English&lt;/asp:listitem&gt;&lt;br /&gt;&lt;asp:listitem value="”zh-cn”"&gt;中文版本 - Chinese&lt;/asp:listitem&gt;&lt;br /&gt;&lt;asp:listitem value="”cs-cz”"&gt;Ceština - Czech&lt;/asp:listitem&gt;&lt;br /&gt;&lt;asp:listitem value="”fr-fr”"&gt;Francois - French&lt;/asp:listitem&gt;&lt;br /&gt;&lt;asp:listitem value="”de-de”"&gt;Deutsch - German&lt;/asp:listitem&gt;&lt;br /&gt;&lt;asp:listitem value="”it-it”"&gt;Italiono - Italian&lt;/asp:listitem&gt;&lt;br /&gt;&lt;asp:listitem value="”es-es”"&gt;Español - Spanish&lt;/asp:listitem&gt;&lt;br /&gt;&lt;asp:listitem value="”pt-pt”"&gt;Português - Portuguese&lt;/asp:listitem&gt;&lt;br /&gt;&lt;/asp:dropdownlist&gt;&lt;br /&gt;protected void ddlLanguage_SelectedIndexChanged(object sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;//store the selected language in a cookie&lt;br /&gt;}&lt;br /&gt;protected override void InitializeCulture()&lt;br /&gt;{&lt;br /&gt;string lang = string.Empty;&lt;br /&gt;HttpCookie cookie = System.Web.HttpContext.Current.Request.Cookies[“MyAPP”];&lt;br /&gt;&lt;br /&gt;if (cookie != null)&lt;br /&gt;{&lt;br /&gt;try&lt;br /&gt;{&lt;br /&gt;lang = cookie[“Language”];&lt;br /&gt;}&lt;br /&gt;catch&lt;br /&gt;{ }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if ((lang != null) &amp;&amp;amp; (lang != string.Empty))&lt;br /&gt;{&lt;br /&gt;String selectedLanguage = lang;&lt;br /&gt;&lt;br /&gt;if ((selectedLanguage != null) &amp;&amp;amp; (selectedLanguage != “”))&lt;br /&gt;{&lt;br /&gt;UICulture = selectedLanguage;&lt;br /&gt;Culture = selectedLanguage;&lt;br /&gt;&lt;br /&gt;Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(selectedLanguage);&lt;br /&gt;Thread.CurrentThread.CurrentUICulture = new CultureInfo(selectedLanguage);&lt;br /&gt;}&lt;br /&gt;base.InitializeCulture();&lt;br /&gt;}&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-5499123225329819268?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/5499123225329819268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/5499123225329819268'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/07/net-localization.html' title='.NET Localization'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-7621411160392009136</id><published>2007-07-17T11:29:00.000-05:00</published><updated>2007-07-19T11:38:02.789-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='sap mdm com api'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>MDM Get Attributes</title><content type='html'>&lt;p&gt;I needed a way to get all the attributes for a repository in MDM. I did that with the MDM COM API like this:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;this.catalog = Helper.GetCatalog(); &lt;/p&gt;&lt;p&gt;&lt;br /&gt;DataTable dt = new DataTable();&lt;br /&gt;dt.Columns.Add(”Name”);&lt;br /&gt;dt.Columns.Add(”ID”);&lt;br /&gt;XCATCOMLib.Attributes allAttributes = new XCATCOMLib.AttributesClass();&lt;br /&gt;allAttributes = catalog.GetAttributes(CATEGORY_TABLE, 0, false); &lt;/p&gt;&lt;p&gt;&lt;br /&gt;foreach(XCATCOMLib.Attribute attrib in allAttributes)&lt;br /&gt;{ &lt;/p&gt;&lt;p&gt;DataRow row = dt.NewRow();&lt;br /&gt;row[”Name”] = attrib.Name;&lt;br /&gt;row[”ID”] = attrib.ID;&lt;br /&gt;dt.Rows.Add(row);&lt;/p&gt;&lt;p&gt;}&lt;br /&gt;&lt;/p&gt;&lt;p&gt;this.dgAttributes.DataSource = dt;&lt;/p&gt;&lt;p&gt;this.dgAttributes.DataBind();&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-7621411160392009136?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/7621411160392009136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/7621411160392009136'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/07/mdm-get-attributes.html' title='MDM Get Attributes'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-455472054123428949.post-3185744411951835100</id><published>2007-07-17T11:28:00.000-05:00</published><updated>2007-07-19T11:38:29.202-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='sap mdm com api'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>MDM Multiple Languages</title><content type='html'>MDM has great support for multiple languages. You can login to their GUI client (Data Manager) with your desired language. I found out that when you use the MDM COM API with multiple languages to get images you have to use their enumerations.&lt;br /&gt;&lt;br /&gt;You can’t pass in “Original”, you must pass in XCATCOMLib.ImageVariantTypeEnum.xcOriginalType&lt;br /&gt;I also had to get the “Images” tableID. Otherwise the Secondary languages will not retrieve an image.&lt;br /&gt;&lt;br /&gt;Here’s a function to get an image:&lt;br /&gt;&lt;br /&gt;public static string GetImage(XCATCOMLib.Fields objFields, XCATCOMLib.Catalog catalog, ImageVariantTypeEnum variantType)&lt;br /&gt;{&lt;br /&gt;string imgURL;&lt;br /&gt;System.Object[] imgID = (System.Object[])objFields.Item(”Images”).Value;&lt;br /&gt;int imagesTable = objFields.Item(”Images”).LookupTableID;&lt;br /&gt;int webimgID = int.Parse(imgID.GetValue(0).ToString());&lt;br /&gt;&lt;br /&gt;CachedImageInfo imgInfo = catalog.GetCachedImageInfo(imagesTable, webimgID, variantType);&lt;br /&gt;string imageCached = imgInfo.CachedPath.Replace(”\\”,”/”);&lt;br /&gt;imgURL = ConfigurationSettings.AppSettings[”ImagesCacheFolder”] + “/” + imageCached;&lt;br /&gt;&lt;br /&gt;return imgURL;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/455472054123428949-3185744411951835100?l=michaelmalloy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/3185744411951835100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/455472054123428949/posts/default/3185744411951835100'/><link rel='alternate' type='text/html' href='http://michaelmalloy.blogspot.com/2007/07/mdm-multiple-languages.html' title='MDM Multiple Languages'/><author><name>Mike Malloy</name><uri>http://www.blogger.com/profile/00592991274998871090</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry></feed>
