<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">

<channel>
	<title>Perpetuum Software Blog » .Net</title>
	
	<link>http://blogs.perpetuumsoft.com</link>
	<description>This blog is about proved and promising Microsoft technologies: .Net, ASP.Net, Silverlight, WPF, etc.</description>
	<lastBuildDate>Tue, 22 Feb 2011 07:33:17 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/PerpetuumSoftBlog/category/dotnet" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="perpetuumsoftblog/category/dotnet" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Report Sharp-Shooter 5.1 release with Great Discounts!</title>
		<link>http://blogs.perpetuumsoft.com/dotnet/rssnewrelease-2/</link>
		<comments>http://blogs.perpetuumsoft.com/dotnet/rssnewrelease-2/#comments</comments>
		<pubDate>Fri, 11 Feb 2011 07:32:23 +0000</pubDate>
		<dc:creator>Elena</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[.Net components]]></category>
		<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[CodeProject]]></category>
		<category><![CDATA[Reporting]]></category>
		<category><![CDATA[.net reporting]]></category>
		<category><![CDATA[asp.net reporting]]></category>
		<category><![CDATA[reporting tool]]></category>

		<guid isPermaLink="false">http://blogs.perpetuumsoft.com/?p=790</guid>
		<description><![CDATA[
Perpetuum Software has release a new version of Report Sharp-Shooter and Report Sharp-Shooter for Silverlight. These reporting tools provide powerful abilities in creation of BI applications.
The highest priority in development of new versions was set to customer-oriented approach.
What we did for our users Report Sharp-Shooter 5.1:

Considerably improved script editor to provide as much abilities in [...]]]></description>
			<content:encoded><![CDATA[<p><center><img src="http://blogs.perpetuumsoft.com/wp-content/uploads/2011/02/rss_5.1.jpg" alt="" title="rss_5.1" width="405" height="240" class="aligncenter size-full wp-image-791" /></center></p>
<p>Perpetuum Software has release a new version of <a href="http://www.perpetuumsoft.com/Report-Sharp-Shooter.aspx">Report Sharp-Shooter</a> and <a href="http://www.perpetuumsoft.com/Report-Sharp-Shooter-for-Silverlight.aspx">Report Sharp-Shooter for Silverlight</a>. These reporting tools provide powerful abilities in creation of BI applications.</p>
<p>The highest priority in development of new versions was set to customer-oriented approach.</p>
<p>What we did for our users Report Sharp-Shooter 5.1:</p>
<ol>
<li>Considerably improved script editor to provide as much abilities in reports creation as it is possible. Now scripts editors functionality is similar to Visual Studio.NET code Editor, including code autocompletion, syntax highlighting for C#, VB.NET and SQL, code outlining, unlimited undo/redo, bookmarks, drag-n-drop, built-in search/replace dialogs, displaying gutter, line numbers and many more.</li>
<li>Added some small but pleasant features to Ribbon report designer interface. They are new user interface icons, improved style editor interface, ability to size the document using the Rule. Now, inner designer forms have the common style with report designer.</li>
<li>Fixed bugs and shortcomings. We tried to eliminate all the shortcomings in PDF export filter. There was also added such feature essential for our clients as ability to hide/show totals in pivot table.</li>
</ol>
<p><a href="http://www.perpetuumsoft.com/Product.aspx?lang=en&#038;pid=21&#038;tid=history"><strong>You can see more information on this release on Perpetuum Software site.</strong></a></p>
<p>And finally, we made Report Sharp-Shooter 5.1 affordable for everyone thanks to our <strong>Decreasing Discount February Sale</strong>! The sooner you purchase the license the greater discount you get. Every day of February you can get a discount which will be valid only for one exact day. The greatest discount you get on the 1st of February and the smallest discount (only 1%) will be on the 28th of February.</p>
<p><a href="http://www.perpetuumsoft.com/Product.aspx?lang=en&#038;pid=41&#038;tid=februarysale"><strong>See Decreasing Discount February Sale conditions on Perpetuum Software site!</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.perpetuumsoft.com/dotnet/rssnewrelease-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to use widgets in Report Sharp-Shooter</title>
		<link>http://blogs.perpetuumsoft.com/dotnet/widgetsinreports/</link>
		<comments>http://blogs.perpetuumsoft.com/dotnet/widgetsinreports/#comments</comments>
		<pubDate>Wed, 02 Feb 2011 06:46:10 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[.Net components]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[CodeProject]]></category>
		<category><![CDATA[Reporting]]></category>
		<category><![CDATA[.net reporting]]></category>
		<category><![CDATA[reporting tool]]></category>

		<guid isPermaLink="false">http://blogs.perpetuumsoft.com/?p=760</guid>
		<description><![CDATA[Saying that reports aren’t always eye catchy is a bit of an understatement. Sometimes they’re just dull and dreary pieces of writing, boring data spread across columns and rows. Those who don’t need it, escape to the next page.
But what if you want more than a mere glimpse from a hasty reader? What if you [...]]]></description>
			<content:encoded><![CDATA[<p>Saying that reports aren’t always eye catchy is a bit of an understatement. Sometimes they’re just dull and dreary pieces of writing, boring data spread across columns and rows. Those who don’t need it, escape to the next page.</p>
<p>But what if you want more than a mere glimpse from a hasty reader? What if you want to <em>propel the ideas</em> behind the data? Emphasize its importance?</p>
<p>Then a table is not enough – you need widgets.</p>
<h3>Problem statement</h3>
<p>In this post I’ll show a publicly available report and explain how to re-create it with Sharp-Shooter. So here goes our poster child: a NASA plot that reveals a rapid decline in the number of astrophysics missions. The dotted line means “today”, and it&#8217;s evident that the plethora of space observatories we’ve been enjoying lately, is pretty much going to stop by 2014:</p>
<div style="text-align: center; margin-top: 7px; margin-bottom: 7px;"><img src="http://blogs.perpetuumsoft.com/wp-content/uploads/2011/02/pic11.jpg" alt="" width="525" /></div>
<div style="clear: both;">
<p>Why re-creating this very report? First off, it’s interesting data about something that concerns your humble correspondent <img src='http://blogs.perpetuumsoft.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Secondly, it’s a challenging task to do in Sharp-Shooter. While building this plot, we’d have to solve several problems, e.g.:</p>
<ul>
<li>How to display composite headers and footers?</li>
<li>How to use bindings in Instrument Designer?</li>
<li>How to display and position images?</li>
<li>..and a few others</li>
</ul>
<p>Below go step by step instructions on creating the above report in Sharp-Shooter, and you can also go ahead and <a href="http://www.perpetuumsoft.com/sf/en/fls/slviewerforrs/Application.zip">download the full solution here</a>.</p>
<p><span id="more-760"></span></p>
<h3>Solution, step 1 of 2: preparing the report</h3>
<p>Let’s put aside data generation and just assume there’s some data source NasaMissions, which contains all the data we need – and concentrate on the look-and-feel of the report.</p>
<p>As we can see, NASA plot is naturally divided into 3 parts:</p>
<ol>
<li>Header with two-styled text.</li>
<li>Main part with mission name on the left hand side and a widget on the right hand side.</li>
<li>Footer with the timescale.</li>
</ol>
<p>We would start by adding a DataBand and setting its DataSource property to NasaMissions. This data band will become a container for report elements. Then, inside the data band we add Header component for the header, Detail component to show individual space missions, and Footer component to hold the ruler with years. After that, the report template will look like on the picture below (necessary buttons highlighted):</p>
<div style="text-align: center; margin-top: 7px; margin-bottom: 7px;"><img src="http://blogs.perpetuumsoft.com/wp-content/uploads/2011/02/pic2.png" alt="" width="525" /></div>
<p>What’s next? Creating content for the header and footer is easy so I’m leaving as an exercise to you, and instead will describe how to create the main section, where we display <em>mission name</em> and its<em> individual timeline.</em></p>
<p>That work will be done in detail1 component.</p>
<div>
<div style="width: 400px; float: left; text-align: left;">
<ul>
<li> The mission name part is rather straightforward: open “Data Sources” window, activate the “Data Sources” option, highlight Name and drag-n-drop it on the “Detail” section of the report.</li>
<li>Individual timelines will be created as a widget. First off, using the button <img class="alignnone size-full wp-image-766" src="http://blogs.perpetuumsoft.com/wp-content/uploads/2011/02/pic3.png" alt="" width="65" height="18" /> on the “Insert” tab, we put a widget on the detail1 component. Then resize it as we like and double click on the widget to kick off <em>Instrument Designer:</em> everything interesting will happen there.</li>
</ul>
</div>
<div style="text-align: right;"><img class="size-full wp-image-765" src="http://blogs.perpetuumsoft.com/wp-content/uploads/2011/02/pic31.png" alt="" width="200" /></div>
</div>
<div style="clear: both;">
<h3>Solution, step 2 of 2: creating the widget</h3>
</div>
<p>Once you start off Instrument Designer, you’re presented with an option to choose one of the predefined widgets. It might be a good idea to go through all of them and find the best fit, because it’s just easier to adjust something that already exists, rather than starting off from scratch.</p>
<p>In our widget we should do a number of things:</p>
<div style="text-align: center; margin-top: 7px; margin-bottom: 7px;">
<p><img src="http://blogs.perpetuumsoft.com/wp-content/uploads/2011/02/pic4.png" alt="" width="525" /></p>
</div>
<p>Let’s start with the predefined „Horizontal Interval Slider 1“ widget, which vaguely resembles our end result:</p>
<div style="text-align: center; margin-top: 7px; margin-bottom: 7px;"><img src="http://blogs.perpetuumsoft.com/wp-content/uploads/2011/02/pic5.png" alt="" width="525" /></div>
<p>Once you click OK, the designer will present you a number of sections:</p>
<ul>
<li><em>Preview of the widget in the center. </em>Useful if you want to know how your widget looks like <img src='http://blogs.perpetuumsoft.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
<li><em>Widget structure on the left hand side</em>. It’s often easier to navigate between the elements via this tree, rather than by clicking on them directly on the preview.</li>
<li><em>Element properties on the right hand side</em>. Changing color, size, position and umpteen of other options available.</li>
<li><em>Data bindings at the bottom</em>. Indispensable for dynamic properties – with them, you can, e.g., always display an element centered, or make its size relative to widget size, etc.</li>
</ul>
<div style="text-align: center; margin-top: 7px; margin-bottom: 7px;"><img src="http://blogs.perpetuumsoft.com/wp-content/uploads/2011/02/pic6.png" alt="" width="525" /></div>
<p>So, now we need to update the predefined widget: delete most of the elements, change color schema, introduce a scale with long ticks, turn the middle line into a horizontal bar, add a picture placeholder and do a bunch of other tweaks. Similar work should be done on the footer widget, which will display the timescale with years.</p>
<p>Nothing of that is particularly complicated, but I’d like to make a few quite general recommendations:</p>
<div>
<div style="width: 400px; float: left; text-align: left;">
<ol>
<li> Name the report items based on their meaning, not on their type. So, „spaceMission“ is better than „Instrument1“ and „timeline“ is better than „scale1“. It’s just easier to maintain a report with aptly named elements.</li>
<li>Use data binding to set dimentions of elements relative to those of their containers. With relative dimentions, resizing the widget will not mangle its view.</li>
</ol>
<p>An example of both suggestions is on the picture: elements are named to emphasize their meaning, and horizontal bar position is bound to the values of „start“ and „end“ scales.</p>
</div>
<div style="text-align: right;"><img class="alignnone size-full wp-image-770" src="http://blogs.perpetuumsoft.com/wp-content/uploads/2011/02/pic7.png" alt="" width="200" /></div>
</div>
<div style="clear: both;">The next step is displaying images of astrophysics missions. An absolute path for each image comes from the data source, and the report will try to render images under those paths. It’s also not too complicated, but idiosyncratic usability of Report Sharp-Shooter requires me to add few notes:</div>
<ul>
<li>To display an image on the widget you need to switch the right hand side view from Properties to Bindings by clicking on the corresponding icon. Then you’ll be able to set Image binding value, in our case it will be <em>System.Drawing.Image.FromFile((string)GetData(&#8220;NasaMissions.ImagePath&#8221;))</em>.</li>
<div style="text-align: center; margin-top: 7px; margin-bottom: 7px;"><img src="http://blogs.perpetuumsoft.com/wp-content/uploads/2011/02/pic8.png" alt="" /></div>
<li>To position an image you need a script. Scripts can be written in any .NET language (but make sure the report has its „Script Language“ property set to the language you plan to use) and writing scripts is a topic in itself, so for now I’d just share the resulting C# code for our scenario. This code should be put into GenerateScript property of the image element:<em>missionPicture.Location = new System.Drawing.PointF((float)800 +<br />
(float)((int)dataBand1["EndYear"] &#8211; 1990)*40, (float) missionPicture.Location.Y));</em></li>
</ul>
<p>Once you’re done in Instrument Designer, you need to apply the widget to the report template (and you might want to save the widget into .imk file for later use). <strong>Important note: to apply the widget to the report, you should click on the hard-to-notice OK button at the bottom of Instrument Designer.</strong> Otherwise you might waste quite some time wondering why all your changes are gone!</p>
<h3>Summary</h3>
<p>That’s pretty much it. We have gone through creating a custom widget in Report Sharp-Shooter, learned the basic report structure, got familiar with Instrument Designer and touched the issue of displaying and positioning images. The full code sample <a href="http://www.perpetuumsoft.com/sf/en/fls/slviewerforrs/Application.zip">can be downloaded here</a>.</p>
<p>Below you can see the final template and the resulting report:</p>
<div style="text-align: center; margin-top: 7px; margin-bottom: 7px;"><img src="http://blogs.perpetuumsoft.com/wp-content/uploads/2011/02/pic9.png" alt="" width="525" height="328" /></div>
<div style="text-align: center; margin-top: 7px; margin-bottom: 7px;"><img src="http://blogs.perpetuumsoft.com/wp-content/uploads/2011/02/pic10.png" alt="" width="525" height="308" /></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blogs.perpetuumsoft.com/dotnet/widgetsinreports/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Decreasing Discount February Sale! Be fast – Get Huge Discount!</title>
		<link>http://blogs.perpetuumsoft.com/silverlight/februarysale/</link>
		<comments>http://blogs.perpetuumsoft.com/silverlight/februarysale/#comments</comments>
		<pubDate>Wed, 26 Jan 2011 08:43:12 +0000</pubDate>
		<dc:creator>Elena</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[.Net components]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[CodeProject]]></category>
		<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Reporting]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[.net reporting]]></category>
		<category><![CDATA[Silverlight reporting]]></category>

		<guid isPermaLink="false">http://blogs.perpetuumsoft.com/?p=755</guid>
		<description><![CDATA[
Looking how to save money on .Net and Silverlight components?
Take advantage of Perpetuum Software Decreasing Discount February Sale!
You have a unique opportunity to get the discount only for the DAY of purchase. The only thing you have to do is to purchase the license as soon as possible. The sooner you purchase the license the [...]]]></description>
			<content:encoded><![CDATA[<p><center><a href="http://www.perpetuumsoft.com/Product.aspx?pid=41&amp;tid=februarysale"><img src="http://blogs.perpetuumsoft.com/wp-content/uploads/2011/01/february_sale.png" alt="" title="february_sale" width="463" height="261" class="aligncenter size-full wp-image-756" /></a></center></p>
<p>Looking how to save money on .Net and Silverlight components?</p>
<p>Take advantage of Perpetuum Software <strong>Decreasing Discount February Sale</strong>!</p>
<p>You have a unique opportunity to get the discount only for the DAY of purchase. The only thing you have to do is to purchase the license as soon as possible. The sooner you purchase the license the greater discount you get. Every day of February you can get a discount which will be valid only for <strong>one exact day</strong>.</p>
<p>On the 1st of February you can get <strong>28% discount</strong> on Perpetuum Software products. Then each day the promotion will decrease by 1% according to the day of the month.</p>
<p>So, the greatest discount you get on the 1st of February and the smallest discount (only 1%) will be on the 28th of February.</p>
<p>The fastest get the greatest discounts! Be among them.</p>
<p>Please see additional information on Decreasing Discount February Sale on <a href="http://www.perpetuumsoft.com/">Perpetuum Software site</a> or e-mail to our <a href="mailto:sales@perpetuumsoft.com">sales representatives</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.perpetuumsoft.com/silverlight/februarysale/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to build interactive sorting and grouping using Report Sharp-Shooter scripting engine.</title>
		<link>http://blogs.perpetuumsoft.com/dotnet/dynamicsorting/</link>
		<comments>http://blogs.perpetuumsoft.com/dotnet/dynamicsorting/#comments</comments>
		<pubDate>Tue, 21 Dec 2010 10:22:51 +0000</pubDate>
		<dc:creator>Elena</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[.Net components]]></category>
		<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[CodeProject]]></category>
		<category><![CDATA[Reporting]]></category>
		<category><![CDATA[.net reporting]]></category>
		<category><![CDATA[reporting tool]]></category>

		<guid isPermaLink="false">http://blogs.perpetuumsoft.com/?p=721</guid>
		<description><![CDATA[by Fakhru Rahman, Perpetuum Software customer





// 



Scripting engine in Report Sharp-Shooter allow us to create interactive report.
In this example we will create report in which the user can sort and group via script on the fly.




In order to do this, I have created an extended ReportViewer, you can download the source code here.
This is how [...]]]></description>
			<content:encoded><![CDATA[<p>by Fakhru Rahman, Perpetuum Software customer</p>
<table>
<tbody>
<tr>
<td>
<div style="float: right; padding-top: 16px; margin-right: 24px;">
<p><script type="text/javascript">// <![CDATA[
                    tweetmeme_service = "bit.ly"; tweetmeme_source = "PerpetuumSoft"; tweetmeme_url = "http://blogs.perpetuumsoft.com/dotnet/dynamicsorting/";
// ]]&gt;</script></p>
<p><script src="http://tweetmeme.com/i/scripts/button.js" type="text/javascript"></script></p>
</div>
</td>
<td>Scripting engine in <a href="http://www.perpetuumsoft.com/Report-Sharp-Shooter.aspx"><strong>Report Sharp-Shooter</strong></a> allow us to create interactive report.<br />
In this example we will create report in which the user can sort and group via script on the fly.
</td>
</tr>
</tbody>
</table>
<p>In order to do this, I have created an extended ReportViewer, you can download the source code <a href="http://www.perpetuumsoft.com/sf/en/fls/rss/RSSExample.zip"><strong>here</strong></a>.</p>
<p>This is how our final report looks:<br />
<img src="http://blogs.perpetuumsoft.com/wp-content/uploads/2010/12/Final_small.png" alt="" title="Final_small" width="450" height="275" class="aligncenter size-full wp-image-734" /></p>
<p><span id="more-721"></span>Create winform application using Visual Studio, then add a class, we will fill this class with dummy data, I named this class <strong>Data</strong>:</p>
<div class="codecolorer-container csharp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="csharp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">class</span> Data<br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #6666cc; font-weight: bold;">long</span> _townId<span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #6666cc; font-weight: bold;">long</span> _cityId<span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #6666cc; font-weight: bold;">string</span> _town<span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #6666cc; font-weight: bold;">string</span> _city<span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">long</span> TownId<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; get <span style="color: #008000;">&#123;</span> <span style="color: #0600FF; font-weight: bold;">return</span> _townId<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; set <span style="color: #008000;">&#123;</span> _townId <span style="color: #008000;">=</span> value<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">long</span> CityId<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; get <span style="color: #008000;">&#123;</span> <span style="color: #0600FF; font-weight: bold;">return</span> _cityId<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; set <span style="color: #008000;">&#123;</span> _cityId <span style="color: #008000;">=</span> value<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">string</span> Town<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; get <span style="color: #008000;">&#123;</span> <span style="color: #0600FF; font-weight: bold;">return</span> _town<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; set <span style="color: #008000;">&#123;</span> _town <span style="color: #008000;">=</span> value<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">string</span> City<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; get <span style="color: #008000;">&#123;</span> <span style="color: #0600FF; font-weight: bold;">return</span> _city<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; set <span style="color: #008000;">&#123;</span> _city <span style="color: #008000;">=</span> value<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">public</span> Data<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">public</span> Data<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">long</span> _townId, <span style="color: #6666cc; font-weight: bold;">long</span> _cityId, <span style="color: #6666cc; font-weight: bold;">string</span> _town, <span style="color: #6666cc; font-weight: bold;">string</span> _city<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">this</span><span style="color: #008000;">.</span>_townId <span style="color: #008000;">=</span> _townId<span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">this</span><span style="color: #008000;">.</span>_cityId <span style="color: #008000;">=</span> _cityId<span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">this</span><span style="color: #008000;">.</span>_town <span style="color: #008000;">=</span> _town<span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">this</span><span style="color: #008000;">.</span>_city <span style="color: #008000;">=</span> _city<span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span></div></div>
<p>Next, drag ReportManager into main form, and create a new InlineReport,</p>
<p><img src="http://blogs.perpetuumsoft.com/wp-content/uploads/2010/12/ReportManager_small.png" alt="" title="ReportManager_small" width="450" height="398" class="aligncenter size-full wp-image-736" /></p>
<p>and drag BindingSource component from toolbox. Name it <strong>BSCity</strong> or whatever you like, in the DataSource property of <strong>BSCity</strong></p>
<p><img src="http://blogs.perpetuumsoft.com/wp-content/uploads/2010/12/Add-DataSource1.png" alt="" title="Add-DataSource" width="258" height="545" class="aligncenter size-full wp-image-737" /></p>
<p>Now we need to set report source to this BindingSource, double click reportmanager to open ReportManager Editor Form, and select BindingSource that we created earlier on Data Sources tab:</p>
<p><img src="http://blogs.perpetuumsoft.com/wp-content/uploads/2010/12/Set-Report-DataSource_small.png" alt="" title="Set-Report-DataSource_small" width="450" height="283" class="aligncenter size-full wp-image-738" /></p>
<p>Next switch to design mode of RSS, and design something similar to this (for more detail, please check the source code):</p>
<p><img src="http://blogs.perpetuumsoft.com/wp-content/uploads/2010/12/Report_small.png" alt="" title="Report_small" width="450" height="286" class="aligncenter size-full wp-image-739" /></p>
<p>We need to create parameter, so we can change this report behavior from our winform code, in the dropdown property choose document1 and add 2 parameter in<br />
parameters property with ParameterType is System.String, name it <strong>__GROUP__</strong> and <strong>__SORT__</strong>.</p>
<p><img src="http://blogs.perpetuumsoft.com/wp-content/uploads/2010/12/Parameters_small.png" alt="" title="Parameters_small" width="450" height="280" class="aligncenter size-full wp-image-740" /></p>
<p>Still on document1 properties select Generate Script property and insert this code:</p>
<div class="codecolorer-container csharp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="csharp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #008080; font-style: italic;">// get data from report parameter</span><br />
_sort <span style="color: #008000;">=</span> <span style="color: #0600FF; font-weight: bold;">this</span><span style="color: #008000;">.</span><span style="color: #0000FF;">GetParameter</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;__SORT__&quot;</span><span style="color: #008000;">&#41;</span> <span style="color: #0600FF; font-weight: bold;">as</span> <span style="color: #6666cc; font-weight: bold;">string</span><span style="color: #008000;">;</span><br />
_group <span style="color: #008000;">=</span> <span style="color: #0600FF; font-weight: bold;">this</span><span style="color: #008000;">.</span><span style="color: #0000FF;">GetParameter</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;__GROUP__&quot;</span><span style="color: #008000;">&#41;</span> <span style="color: #0600FF; font-weight: bold;">as</span> <span style="color: #6666cc; font-weight: bold;">string</span><span style="color: #008000;">;</span><br />
<span style="color: #0600FF; font-weight: bold;">this</span><span style="color: #008000;">.</span><span style="color: #0000FF;">InitSort</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></div></div>
<p>We havent create <strong>InitSort</strong> method yet, so in the Common Script property of document1 write this code:</p>
<div class="codecolorer-container csharp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="csharp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #008080; font-style: italic;">// initialize variable</span><br />
<span style="color: #6666cc; font-weight: bold;">string</span> _group <span style="color: #008000;">=</span> <span style="color: #0600FF; font-weight: bold;">null</span><span style="color: #008000;">;</span><br />
<span style="color: #6666cc; font-weight: bold;">string</span> _sort <span style="color: #008000;">=</span> <span style="color: #0600FF; font-weight: bold;">null</span><span style="color: #008000;">;</span><br />
<span style="color: #6666cc; font-weight: bold;">string</span> _sortDirection <span style="color: #008000;">=</span> <span style="color: #0600FF; font-weight: bold;">null</span><span style="color: #008000;">;</span><br />
<br />
<span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #6666cc; font-weight: bold;">void</span> InitSort<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; <span style="color: #0600FF; font-weight: bold;">if</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">!</span><span style="color: #6666cc; font-weight: bold;">String</span><span style="color: #008000;">.</span><span style="color: #0000FF;">IsNullOrEmpty</span><span style="color: #008000;">&#40;</span>_sort<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><br />
&nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #6666cc; font-weight: bold;">string</span><span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span> sortData <span style="color: #008000;">=</span> _sort<span style="color: #008000;">.</span><span style="color: #0000FF;">Split</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">','</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; _sort <span style="color: #008000;">=</span> sortData<span style="color: #008000;">&#91;</span><span style="color: #FF0000;">0</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; dataBand1<span style="color: #008000;">.</span><span style="color: #0000FF;">Sort</span><span style="color: #008000;">&#91;</span><span style="color: #FF0000;">0</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Order</span> <span style="color: #008000;">=</span> sortData<span style="color: #008000;">&#91;</span><span style="color: #FF0000;">1</span><span style="color: #008000;">&#93;</span> <span style="color: #008000;">==</span> <span style="color: #666666;">&quot;ASC&quot;</span> <span style="color: #008000;">?</span> PerpetuumSoft<span style="color: #008000;">.</span><span style="color: #0000FF;">Reporting</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Data</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Groupping</span><span style="color: #008000;">.</span><span style="color: #0000FF;">SortOrder</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Ascending</span><span style="color: #008000;">:</span>PerpetuumSoft<span style="color: #008000;">.</span><span style="color: #0000FF;">Reporting</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Data</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Groupping</span><span style="color: #008000;">.</span><span style="color: #0000FF;">SortOrder</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Descending</span><span style="color: #008000;">;</span><br />
&nbsp; <span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span></div></div>
<p>This method will set <em>SortOrder</em> for dataBand1 based on parameter <strong>__SORT__</strong>.<br />
Now, we need to set Sort Expression in dataBand1, click on the Sort property of dataBand1 and add item to Collection Editor, set Expression value to <strong>SortExpression()</strong>.<br />
SortExpression is a method for sorting, we haven&#8217;t create it, so return to <em>Common Script</em> property of <em>document1</em> and append this code:</p>
<div class="codecolorer-container csharp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="csharp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #6666cc; font-weight: bold;">object</span> SortExpression<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; <span style="color: #0600FF; font-weight: bold;">if</span><span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">string</span><span style="color: #008000;">.</span><span style="color: #0000FF;">IsNullOrEmpty</span><span style="color: #008000;">&#40;</span>_sort<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">return</span> <span style="color: #0600FF; font-weight: bold;">null</span><span style="color: #008000;">;</span><br />
&nbsp; <span style="color: #0600FF; font-weight: bold;">else</span><br />
&nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">switch</span><span style="color: #008000;">&#40;</span><span style="color: #0600FF; font-weight: bold;">this</span><span style="color: #008000;">.</span>_sort<span style="color: #008000;">.</span><span style="color: #0000FF;">ToLower</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">case</span> <span style="color: #666666;">&quot;city&quot;</span><span style="color: #008000;">:</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">return</span> GetData<span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Cities.City&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">case</span> <span style="color: #666666;">&quot;town&quot;</span><span style="color: #008000;">:</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">return</span> GetData<span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Cities.Town&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">default</span><span style="color: #008000;">:</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">return</span> <span style="color: #0600FF; font-weight: bold;">null</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; <span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span></div></div>
<p>This code will return sort expression based on value of _sort (from parameter <strong>__SORT__</strong>).</p>
<p>Final thing we should do in Report designer is to create code for dynamic grouping, select <em>groupBand1</em> from properties combo and set GroupExpression to<br />
<strong>GroupExpression()</strong>, we need to create this method so once more time append this code on <em>document1</em> Common Script:</p>
<div class="codecolorer-container csharp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="csharp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #6666cc; font-weight: bold;">object</span> GroupExpression<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; <span style="color: #0600FF; font-weight: bold;">if</span><span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">string</span><span style="color: #008000;">.</span><span style="color: #0000FF;">IsNullOrEmpty</span><span style="color: #008000;">&#40;</span>_group<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">return</span> <span style="color: #6666cc; font-weight: bold;">string</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Empty</span><span style="color: #008000;">;</span><br />
&nbsp; <span style="color: #0600FF; font-weight: bold;">else</span><br />
&nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">switch</span><span style="color: #008000;">&#40;</span>_group<span style="color: #008000;">.</span><span style="color: #0000FF;">ToLower</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">case</span> <span style="color: #666666;">&quot;cityid&quot;</span><span style="color: #008000;">:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">return</span> GetData<span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Cities.CityId&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">default</span><span style="color: #008000;">:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">return</span> <span style="color: #6666cc; font-weight: bold;">string</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Empty</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; <span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span></div></div>
<p>Validate script and save.<br />
Next, in Visual Studio, select <em>inlineReportSlot1</em>, go to event and create code for RenderComplete event, here is the code:</p>
<div class="codecolorer-container csharp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="csharp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0600FF; font-weight: bold;">private</span> PreviewFormExt _frm<span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #6666cc; font-weight: bold;">void</span> RenderCompleted<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">object</span> sender, EventArgs e<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>_frm <span style="color: #008000;">==</span> <span style="color: #0600FF; font-weight: bold;">null</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _frm <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> PreviewFormExt<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">// Add group</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _frm<span style="color: #008000;">.</span><span style="color: #0000FF;">AddGroup</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;City&quot;</span>, <span style="color: #666666;">&quot;CityId&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">// Add sort</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _frm<span style="color: #008000;">.</span><span style="color: #0000FF;">AddSort</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Town&quot;</span>, <span style="color: #666666;">&quot;Town&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _frm<span style="color: #008000;">.</span><span style="color: #0000FF;">AddSort</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;City&quot;</span>, <span style="color: #666666;">&quot;City&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _frm<span style="color: #008000;">.</span><span style="color: #0000FF;">ReportSource</span> <span style="color: #008000;">=</span> inlineReportSlot1<span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _frm<span style="color: #008000;">.</span><span style="color: #0000FF;">ShowDialog</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">else</span> <span style="color: #0600FF; font-weight: bold;">if</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">!</span>_frm<span style="color: #008000;">.</span><span style="color: #0000FF;">Visible</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _frm<span style="color: #008000;">.</span><span style="color: #0000FF;">ShowDialog</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span></div></div>
<p>Later add button, then on click event with this code:</p>
<div class="codecolorer-container csharp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="csharp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">BSCity<span style="color: #008000;">.</span><span style="color: #0000FF;">Clear</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">// fill with dummy source</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BSCity<span style="color: #008000;">.</span><span style="color: #0000FF;">Add</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">new</span> Data<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span> TownId <span style="color: #008000;">=</span> <span style="color: #FF0000;">1</span>, Town <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;Jeffersontown&quot;</span>, CityId <span style="color: #008000;">=</span> <span style="color: #FF0000;">1</span>, City <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;Kentucky&quot;</span> <span style="color: #008000;">&#125;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BSCity<span style="color: #008000;">.</span><span style="color: #0000FF;">Add</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">new</span> Data<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span> TownId <span style="color: #008000;">=</span> <span style="color: #FF0000;">2</span>, Town <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;Frankfort&quot;</span>, CityId <span style="color: #008000;">=</span> <span style="color: #FF0000;">1</span>, City <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;Kentucky&quot;</span> <span style="color: #008000;">&#125;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BSCity<span style="color: #008000;">.</span><span style="color: #0000FF;">Add</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">new</span> Data<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span> TownId <span style="color: #008000;">=</span> <span style="color: #FF0000;">3</span>, Town <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;Clinton&quot;</span>, CityId <span style="color: #008000;">=</span> <span style="color: #FF0000;">2</span>, City <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;New Jersey&quot;</span> <span style="color: #008000;">&#125;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BSCity<span style="color: #008000;">.</span><span style="color: #0000FF;">Add</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">new</span> Data<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span> TownId <span style="color: #008000;">=</span> <span style="color: #FF0000;">4</span>, Town <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;Westfield&quot;</span>, CityId <span style="color: #008000;">=</span> <span style="color: #FF0000;">3</span>, City <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;New Jersey&quot;</span> <span style="color: #008000;">&#125;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BSCity<span style="color: #008000;">.</span><span style="color: #0000FF;">Add</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">new</span> Data<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span> TownId <span style="color: #008000;">=</span> <span style="color: #FF0000;">5</span>, Town <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;Woodstock&quot;</span>, CityId <span style="color: #008000;">=</span> <span style="color: #FF0000;">3</span>, City <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;New York&quot;</span> <span style="color: #008000;">&#125;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; inlineReportSlot1<span style="color: #008000;">.</span><span style="color: #0000FF;">Prepare</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></div></div>
<p>Run your code to see the result.</p>
<p><a href="http://www.perpetuumsoft.com/Downloads.aspx?lang=en&#038;pid=21">Download Report Sharp-Shooter&#8230;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.perpetuumsoft.com/dotnet/dynamicsorting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Follow the @PerpetuumSoft account and get 40% discount on your purchase!</title>
		<link>http://blogs.perpetuumsoft.com/silverlight/christmasdiscount/</link>
		<comments>http://blogs.perpetuumsoft.com/silverlight/christmasdiscount/#comments</comments>
		<pubDate>Wed, 24 Nov 2010 05:20:46 +0000</pubDate>
		<dc:creator>Elena</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[.Net components]]></category>
		<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[CodeProject]]></category>
		<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Reporting]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[.net reporting]]></category>
		<category><![CDATA[Reporting Services in Silvelright]]></category>
		<category><![CDATA[Silverlight reporting]]></category>

		<guid isPermaLink="false">http://blogs.perpetuumsoft.com/?p=691</guid>
		<description><![CDATA[




// 



Christmas is almost here!
Warm greetings, pleasant presents and holiday spirit.





Perpetuum Software LLC congratulates everybody on this great holiday and wants to give presents to all our loyal customers.
We want to be in touch with you, to know about your projects and your success. And the most convenient way to stay in touch is Twitter.
Perpetuum [...]]]></description>
			<content:encoded><![CDATA[<table>
<tbody>
<tr>
<td>
<div style="float: right; padding-top: 16px; margin-right: 24px;">
<p><script type="text/javascript">// <![CDATA[
         tweetmeme_service = "bit.ly"; tweetmeme_source = "PerpetuumSoft"; tweetmeme_url = "http://blogs.perpetuumsoft.com/silverlight/christmasdiscount/";
// ]]&gt;</script></p>
<p><script src="http://tweetmeme.com/i/scripts/button.js" type="text/javascript"></script></p>
</div>
</td>
<td>Christmas is almost here!</p>
<p>Warm greetings, pleasant presents and holiday spirit.
</td>
</tr>
</tbody>
</table>
<p><center><a href="http://twitter.com/PerpetuumSoft"><img src="http://www.perpetuumsoft.com/sf/en/ims/company/twitterblog.png" alt=".Net reporting tool" /></a></center></p>
<p>Perpetuum Software LLC congratulates everybody on this great holiday and wants to give presents to all our loyal customers.</p>
<p>We want to be in touch with you, to know about your projects and your success. And the most convenient way to stay in touch is Twitter.</p>
<p>Perpetuum Software LLC presents <strong>20% discount</strong> on the purchase of any of our products to every follower of @PerpetuumSoft account. Just follow us and you will be able to save considerable sum on the purchase of .Net and Silverlight tools for reporting systems, data visualization and OLAP analysis. With our components your business will prosper!</p>
<p><strong>Want to save more money?</strong></p>
<p>We are ready to assist you in this. Tweet the message with #NetReporting hashtag and get <strong>additional 20%</strong> as a discount.</p>
<p>So, to get <strong>40% discount</strong> on purchase of Perpetuum Software products you need:</p>
<ul>
<li>Follow the <a href="http://twitter.com/PerpetuumSoft"><strong>@PerpetuumSoft</strong></a> account on your Twitter account.</li>
<li>From your Twitter account, tweet the message referencing to us with #NetReporting tag.</li>
</ul>
<p>To get more information on this Christmas offer please follow the <a href="http://www.perpetuumsoft.com/Product.aspx?pid=41&#038;tid=christmasoffer"><strong>link</strong></a>.</p>
<p>We wish you a Merry Christmas and a Happy New Year!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.perpetuumsoft.com/silverlight/christmasdiscount/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Use SQL Schema Sync API to Synchronize Data Base Structures for Free!</title>
		<link>http://blogs.perpetuumsoft.com/dotnet/sqlschemassync/</link>
		<comments>http://blogs.perpetuumsoft.com/dotnet/sqlschemassync/#comments</comments>
		<pubDate>Thu, 11 Nov 2010 09:12:28 +0000</pubDate>
		<dc:creator>Elena</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[CodeProject]]></category>
		<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[sql server]]></category>

		<guid isPermaLink="false">http://blogs.perpetuumsoft.com/?p=683</guid>
		<description><![CDATA[




// 



Perpetuum Software LLC has made available free open source software for data base structures comparison and synchronization. We have started a project on CodePlex: SQL Schema Sync API.





SQL Schema Sync API is a component designed to automatically compare and synchronize database structure. SQL Schema Sync API is integrated directly into application and installation of [...]]]></description>
			<content:encoded><![CDATA[<table>
<tbody>
<tr>
<td>
<div style="float: right; padding-top: 16px; margin-right: 24px;">
<p><script type="text/javascript">// <![CDATA[
         tweetmeme_service = "bit.ly"; tweetmeme_source = "PerpetuumSoft"; tweetmeme_url = "http://blogs.perpetuumsoft.com/dotnet/sqlschemassync/";
// ]]&gt;</script></p>
<p><script src="http://tweetmeme.com/i/scripts/button.js" type="text/javascript"></script></p>
</div>
</td>
<td>Perpetuum Software LLC has made available free open source software for data base structures comparison and synchronization. We have started a project on CodePlex: <strong>SQL Schema Sync API</strong>.
</td>
</tr>
</tbody>
</table>
<p><center><img src="http://www.perpetuumsoft.com/sf/en/ims/company/SQL_open_source.png" alt="SQL Server Schemas Sync" /></a></center></p>
<p>SQL Schema Sync API is a component designed to automatically compare and synchronize database structure. SQL Schema Sync API is integrated directly into application and installation of additional software on the client side or development of patches is not required. The component is compatible with applications of any types: Win, Web, Console, Service, and WPF. SQL Schema Sync API provides the ability to create database structure programmatically based, for example, on business objects structure. Support for LINQ to SQL object model is provided. </p>
<p>SQL Schema Sync API includes a component library and an easy-to-use <strong>utility designed as a Wizard</strong>. Being created according to the latest SQL Server release, the product is fully compatible with MS SQL Server 2008.</p>
<p>SQL Schema Sync API is a convenient solution for developers or DBAs who want to evolve their database sync or comparison in a simple, controlled, flexible and frequent manner.</p>
<p>Don’t fall into a rut of database structure synchronization! <a href="http://sqlschemasyncapi.codeplex.com/"><strong>Download SQL Schema Sync API!</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.perpetuumsoft.com/dotnet/sqlschemassync/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Easy Templates Creation with Ribbon Report Designer.</title>
		<link>http://blogs.perpetuumsoft.com/dotnet/ribbonreportdesigner/</link>
		<comments>http://blogs.perpetuumsoft.com/dotnet/ribbonreportdesigner/#comments</comments>
		<pubDate>Fri, 29 Oct 2010 09:01:36 +0000</pubDate>
		<dc:creator>Elena</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[.Net components]]></category>
		<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[CodeProject]]></category>
		<category><![CDATA[Reporting]]></category>
		<category><![CDATA[.net reporting]]></category>
		<category><![CDATA[asp.net reporting]]></category>
		<category><![CDATA[reporting tool]]></category>

		<guid isPermaLink="false">http://blogs.perpetuumsoft.com/?p=674</guid>
		<description><![CDATA[




// 



Report Sharp-Shooter is a .Net reporting tool for creation of reports of any complexity.
The reports are created with the use of report designer. The latest versions of Report Sharp-Shooter features new Ribbon Report Designer Interface.





Ribbon Interface provides easy creation of templates and high representativeness as MS Word. The Ribbon Report Designer Interface is developed [...]]]></description>
			<content:encoded><![CDATA[<table>
<tbody>
<tr>
<td>
<div style="float: right; padding-top: 16px; margin-right: 24px;">
<p><script type="text/javascript">// <![CDATA[
         tweetmeme_service = "bit.ly"; tweetmeme_source = "PerpetuumSoft"; tweetmeme_url = "http://blogs.perpetuumsoft.com/dotnet/ribbonreportdesigner/";
// ]]&gt;</script></p>
<p><script src="http://tweetmeme.com/i/scripts/button.js" type="text/javascript"></script></p>
</div>
</td>
<td><a href="http://www.perpetuumsoft.com/Report-Sharp-Shooter.aspx"><strong>Report Sharp-Shooter</strong></a> is a .Net reporting tool for creation of reports of any complexity.<br />
The reports are created with the use of report designer. The latest versions of Report Sharp-Shooter features new Ribbon Report Designer Interface.
</td>
</tr>
</tbody>
</table>
<p><center><a href="http://www.perpetuumsoft.com/sf/en/ims/company/rss_preview.gif"><img src="http://www.perpetuumsoft.com/sf/en/ims/company/rss_preview.gif" alt="Reporting engine for .Net" /></a></center></p>
<p>Ribbon Interface provides easy creation of templates and high representativeness as MS Word. The Ribbon Report Designer Interface is developed to eliminate all the shortcomings of the previous version of report designer such as less flexibility, usability and convenience.</p>
<p>In the current version of Report Sharp-Shooter, new report designer can be invoked from start menu (<strong>Perpetuum Software->dotNetModelKitSuite->Report Sharp-Shooter->Run Report sharp-Shooter Samples Center</strong>) by pressing the <strong>“Design Template with New DesignerForm”</strong> button. Or you can invoke the report designer directly from code manually. The designer includes 4 tabs: Home, Insert, Layout, and View. These tab sections includes the controls which are grouped according to their functions. Thus, the development of any template becomes productive and less time consuming.</p>
<p>New version 5.0.0.0 of Report Sharp-Shooter will feature contextual tabs. Contextual tabs will allow you to provide the user with UI controls within a certain context, for example, when some object in a report template is selected. Contextual tabs with a similar context are organized in a contextual tab group so you can have more than one tab in a group. </p>
<p>A convenient preview during the selection of properties values provides the ability to see the result of changes in element immediately. Preview will be available for Font, FontSize, TextFill, Angle, Fill, Gallery of Styles, SizeMode, Line, Shadow, Label, BackColor and BarColor.</p>
<p>And one more useful functionality will be developed in Report Sharp-Shooter 5.0.0.0. Quick access toolbar will include standard controls like save, undo, redo and so on.</p>
<p><strong>Report Sharp-Shooter 5.0.0.0 release will be available in the middle of November, 2010.</strong></p>
<p>We welcome all the opinions and statements at our <a href="http://www.perpetuumsoft.com/Forum.aspx?lang=en&#038;forum=RSS"><strong>Report Sharp-Shooter Forum</strong></a>. You opinion on Ribbon Report Designer Interface will help us to include features that are essential exactly got you!</p>
<p><a href="http://www.perpetuumsoft.com/Downloads.aspx?lang=en&#038;pid=21"><strong>Download Report Sharp-Shooter and evaluate Ribbon Report Designer Interface.</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.perpetuumsoft.com/dotnet/ribbonreportdesigner/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Advanced Usability Features in Report Sharp-Shooter 5.0!</title>
		<link>http://blogs.perpetuumsoft.com/dotnet/rss5release/</link>
		<comments>http://blogs.perpetuumsoft.com/dotnet/rss5release/#comments</comments>
		<pubDate>Mon, 25 Oct 2010 03:40:36 +0000</pubDate>
		<dc:creator>Elena</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[.Net components]]></category>
		<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[CodeProject]]></category>
		<category><![CDATA[Reporting]]></category>
		<category><![CDATA[.net reporting]]></category>
		<category><![CDATA[asp.net reporting]]></category>
		<category><![CDATA[Web reporting]]></category>

		<guid isPermaLink="false">http://blogs.perpetuumsoft.com/?p=670</guid>
		<description><![CDATA[




// 



Perpetuum Software specialists would like to share the latest news with the users.
We continuing the development of our reporting tool usability and already implemented some important features for release of Report Sharp-Shooter 5.0.0.0.





A new version will feature improved drag&#038;drop functionality in the report designer. This most loved by developers ability provides the fast and [...]]]></description>
			<content:encoded><![CDATA[<table>
<tbody>
<tr>
<td>
<div style="float: right; padding-top: 16px; margin-right: 24px;">
<p><script type="text/javascript">// <![CDATA[
         tweetmeme_service = "bit.ly"; tweetmeme_source = "PerpetuumSoft"; tweetmeme_url = "http://blogs.perpetuumsoft.com/dotnet/rss5release/";
// ]]&gt;</script></p>
<p><script src="http://tweetmeme.com/i/scripts/button.js" type="text/javascript"></script></p>
</div>
</td>
<td>Perpetuum Software specialists would like to share the latest news with the users.<br />
We continuing the development of our reporting tool usability and already implemented some important features for release of <a href="http://www.perpetuumsoft.com/Report-Sharp-Shooter.aspx"><strong>Report Sharp-Shooter</strong></a> 5.0.0.0.
</td>
</tr>
</tbody>
</table>
<p><center><a href="http://www.perpetuumsoft.com/sf/en/ims/company/drag_drop.gif"><img src="http://www.perpetuumsoft.com/sf/en/ims/company/drag_drop.gif" alt="Reporting engine for .Net" /></a></center></p>
<p>A new version will feature improved drag&#038;drop functionality in the report designer. This most loved by developers ability provides the fast and easy-to-learn technique of performing the tasks. We added such features as:</p>
<ul>
<li>Drag&#038;drop in the report designer connected with the Parent change. Previously, if you drag&#038;drop the object, only element coordinate was changed. Now, if you locate the element in the other container (band), the parent will be changed automatically similar to the change of container in the tree.</li>
<li>Ability to copy the element during drag&#038;drop. You are able not just to drag the element from one position to another, but copy this element by pressing CTRL.</li>
<li>Drag&#038;drop from the data source. Now the element is inserted immediately.</li>
</ul>
<p>Report Sharp-Shooter is remarkable for its flexibility which directly depends on such component as scripts editor. We redesigned the scripts editor in the version 5.0 of our report engine. Code autocompletion speeds up scripts writing and, as a result, saves your time on project development. Now, scripts editor has almost all the features that can be found in the Visual Studio.NET code Editor, including customizable syntax highlighting for C#, VB.NET and SQL, code outlining, code completion, unlimited undo/redo, bookmarks, word wrap, drag-n-drop, built-in search/replace dialogs, multiple view of the same text, displaying gutter, margin, line numbers and many more.<br />
Minor shortcomings and bugs were fixed, thus, you will be able to focus on your project, not on looking for workarounds.</p>
<p>The upcoming release will include additional features which will provide the most comfortable, easy and fast work of reports creation and data processing.  The next blog posts will unveil new functionality of ribbon report designer interface, improvements in preview options and features of Report Sharp-Shooter which, we hope, will help our users to realize their projects with minimum efforts and maximum effect.  </p>
<p>We welcome all your suggestions on our <a href="http://www.perpetuumsoft.com/Forum.aspx?lang=en&#038;forum=RSS"><strong>forum</strong></a> and via <a href="mailto:sales@perpetuumsoft.com">e-mail</a>.</p>
<p><a href="http://www.perpetuumsoft.com/Downloads.aspx?lang=en&#038;pid=21"><strong>Download Report Sharp-Shooter free  trial and evaluate its functionality.</strong><br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.perpetuumsoft.com/dotnet/rss5release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Components for reporting, data analysis and visualization now with a 25% discount!</title>
		<link>http://blogs.perpetuumsoft.com/dotnet/dotnetcomponentsdiscount/</link>
		<comments>http://blogs.perpetuumsoft.com/dotnet/dotnetcomponentsdiscount/#comments</comments>
		<pubDate>Fri, 17 Sep 2010 05:23:32 +0000</pubDate>
		<dc:creator>Elena</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[.Net components]]></category>
		<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[CodeProject]]></category>
		<category><![CDATA[Components Suites]]></category>
		<category><![CDATA[Reporting]]></category>
		<category><![CDATA[.net reporting]]></category>
		<category><![CDATA[Dashboards]]></category>
		<category><![CDATA[Silverlight reporting]]></category>
		<category><![CDATA[Web reporting]]></category>

		<guid isPermaLink="false">http://blogs.perpetuumsoft.com/?p=648</guid>
		<description><![CDATA[




// 



Perpetuum Software LLC destroys all obstacles to creation of professional applications for data processing, analysis and visualization and announces the price-cutting on .Net ModelKit Suite package.




Now, you can purchase this up-to-date .Net components package with a 25% discount.
Order .Net ModelKit Suite and you’ll get:

 Powerful Windows Forms, ASP.Net and Silverlight reporting tools for creation [...]]]></description>
			<content:encoded><![CDATA[<table>
<tbody>
<tr>
<td>
<div style="float: right; padding-top: 16px; margin-right: 24px;">
<p><script type="text/javascript">// <![CDATA[
         tweetmeme_service = "bit.ly"; tweetmeme_source = "PerpetuumSoft"; tweetmeme_url = "http://blogs.perpetuumsoft.com/dotnet/dotnetcomponentsdiscount/";
// ]]&gt;</script></p>
<p><script src="http://tweetmeme.com/i/scripts/button.js" type="text/javascript"></script></p>
</div>
</td>
<td>Perpetuum Software LLC destroys all obstacles to creation of professional applications for data processing, analysis and visualization and announces the price-cutting on <a href="http://www.perpetuumsoft.com/Net-ModelKit-Suite.aspx"><strong>.Net ModelKit Suite</strong></a> package.</td>
</tr>
</tbody>
</table>
<p><center><a href="http://www.perpetuumsoft.com/sf/en/ims/company/suite_25.jpg"><img src="http://www.perpetuumsoft.com/sf/en/ims/company/suite_25.jpg" alt=".Net ModelKit Suite Discount" /></a></center></p>
<p>Now, you can purchase this up-to-date .Net components package with a 25% discount.</p>
<p>Order .Net ModelKit Suite and you’ll get:</p>
<ul>
<li> Powerful Windows Forms, ASP.Net and Silverlight reporting tools for creation of reports of any complexity on the basis of any .Net data source;</li>
<li>Flexible instrumentation and chart components for data visualization in the form of gauges, charts and digital dashboards;</li>
<li> Reliable OLAP component for multidimensional data analysis and charting OLAP data.</li>
</ul>
<p>Everyday business makes high demands to software and .Net ModelKit Suite is capable of addressing all these demands!</p>
<p><a href="http://www.perpetuumsoft.com/Downloads.aspx?lang=en&amp;pid=38"><strong>Download .Net ModelKit Suite…</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.perpetuumsoft.com/dotnet/dotnetcomponentsdiscount/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>User Groups Sponsorship Program in Work! Get Our Prizes at Los Angeles Code Camp and SQL Saturday!</title>
		<link>http://blogs.perpetuumsoft.com/silverlight/ugsponsorship/</link>
		<comments>http://blogs.perpetuumsoft.com/silverlight/ugsponsorship/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 08:32:18 +0000</pubDate>
		<dc:creator>Elena</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[.Net components]]></category>
		<category><![CDATA[CodeProject]]></category>
		<category><![CDATA[Instrumentation]]></category>
		<category><![CDATA[Reporting]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[.net reporting]]></category>

		<guid isPermaLink="false">http://blogs.perpetuumsoft.com/?p=630</guid>
		<description><![CDATA[




// 



Perpetuum Software continues its “User Groups Sponsorship  Program” and is glad to announce that our company is a raffle prize sponsor  on LA Code Camp and SQL Saturday meetings.  




Los Angeles Code Camp is a place for developers to come and learn from their peers. This free community driven event has [...]]]></description>
			<content:encoded><![CDATA[<table>
<tbody>
<tr>
<td>
<div style="float: right; padding-top: 16px; margin-right: 24px;">
<p><script type="text/javascript">// <![CDATA[
      tweetmeme_service = "bit.ly"; tweetmeme_source = "PerpetuumSoft"; tweetmeme_url = "http://blogs.perpetuumsoft.com/silverlight/ugsponsorship/";
// ]]&gt;</script></p>
<p><script src="http://tweetmeme.com/i/scripts/button.js" type="text/javascript"></script></p>
</div>
</td>
<td>Perpetuum Software continues its “User Groups Sponsorship  Program” and is glad to announce that our company is a raffle prize sponsor  on <a href="http://www.lacodecamp.com"><strong>LA Code Camp</strong></a> and <a href="http://www.sqlsaturday.com"><strong>SQL Saturday</strong></a> meetings.  </td>
</tr>
</tbody>
</table>
<p><center><a href="http://www.perpetuumsoft.com/sf/en/ims/company/sponsorship.png"><img src="http://www.perpetuumsoft.com/sf/en/ims/company/sponsorship.png" alt="Perpetuum Software Help Center" /></a></center></p>
<p>Los Angeles Code Camp is a place for developers to come and learn from their peers. This free community driven event has become an international trend where peer groups of all platforms, programming languages and disciplines band together to bring content to the software developer community.</p>
<p>SQL Saturday is one day training events for SQL Server professionals. This event focuses on local speakers, providing a good variety of topics, and making it all happen through the efforts of volunteers. Whether you&#8217;re attending one or thinking about hosting your own, SQL Saturday thinks you&#8217;ll find a great way to spend a Saturday.</p>
<p>Our company is proud that we can assist professionals and beginners in realization of their full potential in development of unique interesting projects!</p>
<p>If you want to get our assistance please just e-mail us to <a href="mailto:partnership@perpetuumsoft.com"><strong>partnership@perpetuumsoft.com</strong></a>. </p>
<p>You are welcome with any suggestions!  </p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.perpetuumsoft.com/silverlight/ugsponsorship/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

