<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Stone Coast Web Design Blog - Charts</title>
    <link>http://www.stonecoastwebdesign.com/blog/</link>
    <description>Mostly .NET Development</description>
    <language>en-us</language>
    <copyright>Eric</copyright>
    <lastBuildDate>Fri, 30 Apr 2010 17:42:11 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.2.8279.16125</generator>
    <managingEditor>ericvanburen@msn.com</managingEditor>
    <webMaster>ericvanburen@msn.com</webMaster>
    <item>
      <trackback:ping>http://www.stonecoastwebdesign.com/blog/Trackback.aspx?guid=c91260ad-fe18-4197-9185-ed0ac15a208b</trackback:ping>
      <pingback:server>http://www.stonecoastwebdesign.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.stonecoastwebdesign.com/blog/PermaLink,guid,c91260ad-fe18-4197-9185-ed0ac15a208b.aspx</pingback:target>
      <dc:creator>Eric</dc:creator>
      <wfw:comment>http://www.stonecoastwebdesign.com/blog/CommentView,guid,c91260ad-fe18-4197-9185-ed0ac15a208b.aspx</wfw:comment>
      <wfw:commentRss>http://www.stonecoastwebdesign.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=c91260ad-fe18-4197-9185-ed0ac15a208b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
 
</p>
        <p>
I’ve been working on creating custom data-driven charts for use in a new product. 
We looked at several options including <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=130F7986-BF49-4FE5-9CA8-910AE6EA442C&amp;displaylang=en" target="_blank">Microsoft’s
free Chart Controls</a> but ultimately decided to go with <a href="http://www.dundas.com/Components/Products/Chart/index.aspx" target="_blank">Dundas
Chart</a> because of their excellent customer service and support.  Their product
makes it relatively easy to create nice looking charts for ASP.NET pages such as this
pie chart.
</p>
        <p>
          <img alt="" src="http://10.0.1.250/ChartAxd.axd?i=dcp_f8be667912.png&amp;_guid_=46567b6c-d5ce-4e55-815a-7a9633edcfd3" />
        </p>
        <pre class="csharpcode">
          <span class="rem">'Chart - Total Annual Compensation</span>
          <span class="kwrd">Sub</span> Bind_Chart_TotalAnnualComp() <span class="kwrd">Dim</span> strCEOBaseSalary <span class="kwrd">As</span><span class="kwrd">Double</span><span class="kwrd">Dim</span> strCEOBonus <span class="kwrd">As</span><span class="kwrd">Double</span><span class="kwrd">Dim</span> strCEONonEqIncentComp <span class="kwrd">As</span><span class="kwrd">Double</span><span class="kwrd">Dim</span> strCEOPensionNQDC <span class="kwrd">As</span><span class="kwrd">Double</span><span class="kwrd">Dim</span> strCEOAllOtherCompensation <span class="kwrd">As</span><span class="kwrd">Double</span><span class="rem">'Create
a connection</span><span class="kwrd">Dim</span> myConnection <span class="kwrd">As</span><span class="kwrd">New</span> SqlConnection(ConfigurationManager.ConnectionStrings(<span class="str">"TearSheet_ConnString"</span>).ConnectionString) <span class="rem">'Create
the command object, passing in the SQL string</span><span class="kwrd">Const</span> strSQL <span class="kwrd">As</span><span class="kwrd">String</span> = <span class="str">"p_Chart_TotalAnnualComp"</span><span class="kwrd">Dim</span> myCommand <span class="kwrd">As</span><span class="kwrd">New</span> SqlCommand(strSQL)
myCommand.CommandType = CommandType.StoredProcedure myCommand.Parameters.AddWithValue(<span class="str">"@id_company"</span>,
lblid_company.Text) <span class="rem">'Set the datagrid's datasource to the datareader
and databind</span> myConnection.Open() myCommand.Connection = myConnection <span class="kwrd">Dim</span> myReader <span class="kwrd">As</span> SqlDataReader
= myCommand.ExecuteReader() <span class="kwrd">Dim</span> xValues <span class="kwrd">As</span><span class="kwrd">String</span>()
= {<span class="str">"Salary"</span>, <span class="str">"Bonus"</span>, <span class="str">"Non-Equity
Incentive Comp"</span>, <span class="str">"Pension/NQDC Earnings"</span>, <span class="str">"All
Other Compensation"</span>} <span class="kwrd">Dim</span> yValues <span class="kwrd">As</span><span class="kwrd">New</span> List(Of <span class="kwrd">Double</span>) <span class="kwrd">With</span> myReader <span class="kwrd">If</span> .HasRows <span class="kwrd">Then</span><span class="kwrd">While</span> .Read
yValues.Add(<span class="kwrd">Double</span>.Parse(.GetValue(0))) strCEOBaseSalary
= <span class="kwrd">Double</span>.Parse(.GetValue(0)) yValues.Add(<span class="kwrd">Double</span>.Parse(.GetValue(1)))
strCEOBonus = <span class="kwrd">Double</span>.Parse(.GetValue(1)) yValues.Add(<span class="kwrd">Double</span>.Parse(.GetValue(2)))
strCEONonEqIncentComp = <span class="kwrd">Double</span>.Parse(.GetValue(2)) yValues.Add(<span class="kwrd">Double</span>.Parse(.GetValue(3)))
strCEOPensionNQDC = <span class="kwrd">Double</span>.Parse(.GetValue(3)) yValues.Add(<span class="kwrd">Double</span>.Parse(.GetValue(4)))
strCEOAllOtherCompensation = <span class="kwrd">Double</span>.Parse(.GetValue(4)) <span class="kwrd">End</span><span class="kwrd">While</span><span class="kwrd">End</span><span class="kwrd">If</span><span class="kwrd">End</span><span class="kwrd">With</span> Chart_TotalAnnualComp.Series(<span class="str">"Default"</span>).Points.DataBindXY(xValues,
yValues.ToArray()) myConnection.Close() myConnection.Dispose() <span class="rem">'Make
the chart 3D</span> Chart_TotalAnnualComp.ChartAreas(<span class="str">"Default"</span>).Area3DStyle.Enable3D
= <span class="kwrd">True</span><span class="rem">'Don't let the text in the legend
wrap</span> Chart_TotalAnnualComp.Legends(<span class="str">"Default"</span>).TextWrapThreshold
= 0 <span class="rem">'Chart Title</span> Chart_TotalAnnualComp.Legends(<span class="str">"Default"</span>).Title
= <span class="str">"Total Annual Compensation"</span><span class="rem">'Add
the series and values for each</span> Chart_TotalAnnualComp.Series(0).Points(0).LegendText
= <span class="str">"Salary "</span> &amp; FormatCurrency(strCEOBaseSalary.ToString(),
0) Chart_TotalAnnualComp.Series(0).Points(1).LegendText = <span class="str">"Bonus
"</span> &amp; FormatCurrency(strCEOBonus.ToString(), 0) Chart_TotalAnnualComp.Series(0).Points(2).LegendText
= <span class="str">"Non-Equity Incentive Comp "</span> &amp; FormatCurrency(strCEONonEqIncentComp.ToString(),
0) Chart_TotalAnnualComp.Series(0).Points(3).LegendText = <span class="str">"Pension/NQDC
Earnings "</span> &amp; FormatCurrency(strCEOPensionNQDC.ToString(), 0) Chart_TotalAnnualComp.Series(0).Points(4).LegendText
= <span class="str">"All Other Compensation "</span> &amp; FormatCurrency(strCEOAllOtherCompensation.ToString(),
0) <span class="rem">'Add custom tooltips showing each series value</span> Chart_TotalAnnualComp.Series(0).Points(0).ToolTip
= <span class="str">"Salary "</span> &amp; FormatCurrency(strCEOBaseSalary.ToString(),
0) Chart_TotalAnnualComp.Series(0).Points(1).ToolTip = <span class="str">"Bonus
"</span> &amp; FormatCurrency(strCEOBonus.ToString(), 0) Chart_TotalAnnualComp.Series(0).Points(2).ToolTip
= <span class="str">"Non-Equity Incentive Comp "</span> &amp; FormatCurrency(strCEONonEqIncentComp.ToString(),
0) Chart_TotalAnnualComp.Series(0).Points(3).ToolTip = <span class="str">"Pension/NQDC
Earnings "</span> &amp; FormatCurrency(strCEOPensionNQDC.ToString(), 0) Chart_TotalAnnualComp.Series(0).Points(4).ToolTip
= <span class="str">"All Other Compensation "</span> &amp; FormatCurrency(strCEOAllOtherCompensation.ToString(),
0) <span class="rem">'This prevents the values from showing up inside the pie chart</span> Chart_TotalAnnualComp.Series(0)(<span class="str">"PieLabelStyle"</span>)
= <span class="str">"Disabled"</span><span class="kwrd">End</span> Sub</pre>
        <style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
        <img width="0" height="0" src="http://www.stonecoastwebdesign.com/blog/aggbug.ashx?id=c91260ad-fe18-4197-9185-ed0ac15a208b" />
      </body>
      <title>Creating Dynamic Charts</title>
      <guid isPermaLink="false">http://www.stonecoastwebdesign.com/blog/PermaLink,guid,c91260ad-fe18-4197-9185-ed0ac15a208b.aspx</guid>
      <link>http://www.stonecoastwebdesign.com/blog/2010/04/30/CreatingDynamicCharts.aspx</link>
      <pubDate>Fri, 30 Apr 2010 17:42:11 GMT</pubDate>
      <description>&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
I’ve been working on creating custom data-driven charts for use in a new product.&amp;#160;
We looked at several options including &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=130F7986-BF49-4FE5-9CA8-910AE6EA442C&amp;amp;displaylang=en" target="_blank"&gt;Microsoft’s
free Chart Controls&lt;/a&gt; but ultimately decided to go with &lt;a href="http://www.dundas.com/Components/Products/Chart/index.aspx" target="_blank"&gt;Dundas
Chart&lt;/a&gt; because of their excellent customer service and support.&amp;#160; Their product
makes it relatively easy to create nice looking charts for ASP.NET pages such as this
pie chart.
&lt;/p&gt;
&lt;p&gt;
&lt;img alt="" src="http://10.0.1.250/ChartAxd.axd?i=dcp_f8be667912.png&amp;amp;_guid_=46567b6c-d5ce-4e55-815a-7a9633edcfd3" /&gt;
&lt;/p&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;'Chart - Total Annual Compensation&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; Bind_Chart_TotalAnnualComp() &lt;span class="kwrd"&gt;Dim&lt;/span&gt; strCEOBaseSalary &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Double&lt;/span&gt; &lt;span class="kwrd"&gt;Dim&lt;/span&gt; strCEOBonus &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Double&lt;/span&gt; &lt;span class="kwrd"&gt;Dim&lt;/span&gt; strCEONonEqIncentComp &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Double&lt;/span&gt; &lt;span class="kwrd"&gt;Dim&lt;/span&gt; strCEOPensionNQDC &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Double&lt;/span&gt; &lt;span class="kwrd"&gt;Dim&lt;/span&gt; strCEOAllOtherCompensation &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Double&lt;/span&gt; &lt;span class="rem"&gt;'Create
a connection&lt;/span&gt; &lt;span class="kwrd"&gt;Dim&lt;/span&gt; myConnection &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt; SqlConnection(ConfigurationManager.ConnectionStrings(&lt;span class="str"&gt;&amp;quot;TearSheet_ConnString&amp;quot;&lt;/span&gt;).ConnectionString) &lt;span class="rem"&gt;'Create
the command object, passing in the SQL string&lt;/span&gt; &lt;span class="kwrd"&gt;Const&lt;/span&gt; strSQL &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; = &lt;span class="str"&gt;&amp;quot;p_Chart_TotalAnnualComp&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;Dim&lt;/span&gt; myCommand &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt; SqlCommand(strSQL)
myCommand.CommandType = CommandType.StoredProcedure myCommand.Parameters.AddWithValue(&lt;span class="str"&gt;&amp;quot;@id_company&amp;quot;&lt;/span&gt;,
lblid_company.Text) &lt;span class="rem"&gt;'Set the datagrid's datasource to the datareader
and databind&lt;/span&gt; myConnection.Open() myCommand.Connection = myConnection &lt;span class="kwrd"&gt;Dim&lt;/span&gt; myReader &lt;span class="kwrd"&gt;As&lt;/span&gt; SqlDataReader
= myCommand.ExecuteReader() &lt;span class="kwrd"&gt;Dim&lt;/span&gt; xValues &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;()
= {&lt;span class="str"&gt;&amp;quot;Salary&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;Bonus&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;Non-Equity
Incentive Comp&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;Pension/NQDC Earnings&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;All
Other Compensation&amp;quot;&lt;/span&gt;} &lt;span class="kwrd"&gt;Dim&lt;/span&gt; yValues &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt; List(Of &lt;span class="kwrd"&gt;Double&lt;/span&gt;) &lt;span class="kwrd"&gt;With&lt;/span&gt; myReader &lt;span class="kwrd"&gt;If&lt;/span&gt; .HasRows &lt;span class="kwrd"&gt;Then&lt;/span&gt; &lt;span class="kwrd"&gt;While&lt;/span&gt; .Read
yValues.Add(&lt;span class="kwrd"&gt;Double&lt;/span&gt;.Parse(.GetValue(0))) strCEOBaseSalary
= &lt;span class="kwrd"&gt;Double&lt;/span&gt;.Parse(.GetValue(0)) yValues.Add(&lt;span class="kwrd"&gt;Double&lt;/span&gt;.Parse(.GetValue(1)))
strCEOBonus = &lt;span class="kwrd"&gt;Double&lt;/span&gt;.Parse(.GetValue(1)) yValues.Add(&lt;span class="kwrd"&gt;Double&lt;/span&gt;.Parse(.GetValue(2)))
strCEONonEqIncentComp = &lt;span class="kwrd"&gt;Double&lt;/span&gt;.Parse(.GetValue(2)) yValues.Add(&lt;span class="kwrd"&gt;Double&lt;/span&gt;.Parse(.GetValue(3)))
strCEOPensionNQDC = &lt;span class="kwrd"&gt;Double&lt;/span&gt;.Parse(.GetValue(3)) yValues.Add(&lt;span class="kwrd"&gt;Double&lt;/span&gt;.Parse(.GetValue(4)))
strCEOAllOtherCompensation = &lt;span class="kwrd"&gt;Double&lt;/span&gt;.Parse(.GetValue(4)) &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;While&lt;/span&gt; &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt; &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt; Chart_TotalAnnualComp.Series(&lt;span class="str"&gt;&amp;quot;Default&amp;quot;&lt;/span&gt;).Points.DataBindXY(xValues,
yValues.ToArray()) myConnection.Close() myConnection.Dispose() &lt;span class="rem"&gt;'Make
the chart 3D&lt;/span&gt; Chart_TotalAnnualComp.ChartAreas(&lt;span class="str"&gt;&amp;quot;Default&amp;quot;&lt;/span&gt;).Area3DStyle.Enable3D
= &lt;span class="kwrd"&gt;True&lt;/span&gt; &lt;span class="rem"&gt;'Don't let the text in the legend
wrap&lt;/span&gt; Chart_TotalAnnualComp.Legends(&lt;span class="str"&gt;&amp;quot;Default&amp;quot;&lt;/span&gt;).TextWrapThreshold
= 0 &lt;span class="rem"&gt;'Chart Title&lt;/span&gt; Chart_TotalAnnualComp.Legends(&lt;span class="str"&gt;&amp;quot;Default&amp;quot;&lt;/span&gt;).Title
= &lt;span class="str"&gt;&amp;quot;Total Annual Compensation&amp;quot;&lt;/span&gt; &lt;span class="rem"&gt;'Add
the series and values for each&lt;/span&gt; Chart_TotalAnnualComp.Series(0).Points(0).LegendText
= &lt;span class="str"&gt;&amp;quot;Salary &amp;quot;&lt;/span&gt; &amp;amp; FormatCurrency(strCEOBaseSalary.ToString(),
0) Chart_TotalAnnualComp.Series(0).Points(1).LegendText = &lt;span class="str"&gt;&amp;quot;Bonus
&amp;quot;&lt;/span&gt; &amp;amp; FormatCurrency(strCEOBonus.ToString(), 0) Chart_TotalAnnualComp.Series(0).Points(2).LegendText
= &lt;span class="str"&gt;&amp;quot;Non-Equity Incentive Comp &amp;quot;&lt;/span&gt; &amp;amp; FormatCurrency(strCEONonEqIncentComp.ToString(),
0) Chart_TotalAnnualComp.Series(0).Points(3).LegendText = &lt;span class="str"&gt;&amp;quot;Pension/NQDC
Earnings &amp;quot;&lt;/span&gt; &amp;amp; FormatCurrency(strCEOPensionNQDC.ToString(), 0) Chart_TotalAnnualComp.Series(0).Points(4).LegendText
= &lt;span class="str"&gt;&amp;quot;All Other Compensation &amp;quot;&lt;/span&gt; &amp;amp; FormatCurrency(strCEOAllOtherCompensation.ToString(),
0) &lt;span class="rem"&gt;'Add custom tooltips showing each series value&lt;/span&gt; Chart_TotalAnnualComp.Series(0).Points(0).ToolTip
= &lt;span class="str"&gt;&amp;quot;Salary &amp;quot;&lt;/span&gt; &amp;amp; FormatCurrency(strCEOBaseSalary.ToString(),
0) Chart_TotalAnnualComp.Series(0).Points(1).ToolTip = &lt;span class="str"&gt;&amp;quot;Bonus
&amp;quot;&lt;/span&gt; &amp;amp; FormatCurrency(strCEOBonus.ToString(), 0) Chart_TotalAnnualComp.Series(0).Points(2).ToolTip
= &lt;span class="str"&gt;&amp;quot;Non-Equity Incentive Comp &amp;quot;&lt;/span&gt; &amp;amp; FormatCurrency(strCEONonEqIncentComp.ToString(),
0) Chart_TotalAnnualComp.Series(0).Points(3).ToolTip = &lt;span class="str"&gt;&amp;quot;Pension/NQDC
Earnings &amp;quot;&lt;/span&gt; &amp;amp; FormatCurrency(strCEOPensionNQDC.ToString(), 0) Chart_TotalAnnualComp.Series(0).Points(4).ToolTip
= &lt;span class="str"&gt;&amp;quot;All Other Compensation &amp;quot;&lt;/span&gt; &amp;amp; FormatCurrency(strCEOAllOtherCompensation.ToString(),
0) &lt;span class="rem"&gt;'This prevents the values from showing up inside the pie chart&lt;/span&gt; Chart_TotalAnnualComp.Series(0)(&lt;span class="str"&gt;&amp;quot;PieLabelStyle&amp;quot;&lt;/span&gt;)
= &lt;span class="str"&gt;&amp;quot;Disabled&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;End&lt;/span&gt; Sub&lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;
&lt;img width="0" height="0" src="http://www.stonecoastwebdesign.com/blog/aggbug.ashx?id=c91260ad-fe18-4197-9185-ed0ac15a208b" /&gt;</description>
      <comments>http://www.stonecoastwebdesign.com/blog/CommentView,guid,c91260ad-fe18-4197-9185-ed0ac15a208b.aspx</comments>
      <category>Charts</category>
    </item>
  </channel>
</rss>