Current File : /home/caballoscriollos/www/espanol/encuesta/graphs/contents/cs_form.html
<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>FusionCharts Free Documentation</title>
<link rel="stylesheet" href="Style.css" type="text/css" />
</head>
<body>
<table width="98%" border="0" cellspacing="0" cellpadding="3" align="center">
<tr>
<td><h2 class="pageHeader">Using FusionCharts with C# (ASP.NET) > Charting Data from Forms </h2></td>
</tr>
<tr>
<td valign="top" class="text"><p>In this section, we'll show you how to use FusionCharts with ASP.NET to plot data collected in forms. </p>
<p>We'll build a simple restaurant sales example, where the user will enter the items sold by a restaurant in a given week. This data will be submitted in a form to the server. We'll acquire this data and plot in on a chart. For the sake of simplicity, we wouldn't do any processing on this data. However, your real life applications might process data before presenting it on the chart. </p>
<p><strong>Before you go further with this page, we recommend you to please see the previous section "<a href="ASP_BasicExample.html">Basic Examples</a>" as we start off from concepts explained in that page. </strong></p></td>
</tr>
<tr>
<td valign="top" class="highlightBlock">The code examples contained in this page are present in<span class="codeInline"> Download Package > Code > CNET </span> > <span class="codeInline">FormBased</span> folder. </td>
</tr>
<tr>
<td valign="top" class="text"> </td>
</tr>
<tr>
<td valign="top" class="header">Building the Form </td>
</tr>
<tr>
<td valign="top" class="text">The form is contained in <span class="codeInline">Default.aspx</span> and looks as under: </td>
</tr>
<tr>
<td valign="top" class="text"><img src="Images/Code_Form.gif" class="imageBorder" /></td>
</tr>
<tr>
<td valign="top" class="text">It's a very simple form which submits to <span class="codeInline">Chart.aspx</span>. As such, we wouldn't go into the code of this form. You can directly open the source from download and see it. </td>
</tr>
<tr>
<td valign="top" class="text"> </td>
</tr>
<tr>
<td valign="top" class="header">Requesting the data and Creating the Chart </td>
</tr>
<tr>
<td valign="top" class="text">The work of requesting the data from submitted form and creating the chart is done in <span class="codeInline">Chart.aspx</span>, present in the same folder. It contains the following code: </td>
</tr>
<tr>
<td valign="top" class="codeBlock"><p><%@ Page Language="C#" AutoEventWireup="false" <br />
CodeFile="Chart.aspx.cs" Inherits="FormBased_Chart" %><br />
<HTML><br />
<HEAD><br />
<TITLE> FusionCharts Free - Form Based Data Charting Example </TITLE><br />
<%<br />
<span class="codeComment">//You need to include the following JS file, if you intend to embed the chart using JavaScript.</span><br />
%> <br />
<strong><SCRIPT LANGUAGE="Javascript" SRC="../FusionCharts/FusionCharts.js"></SCRIPT></strong><br />
</HEAD><br />
<br />
<BODY><br />
<strong><asp:Literal ID="FCLiteral" runat="server"></asp:Literal></strong><br />
</BODY><br />
</HTML></p> </td>
</tr>
<tr>
<td valign="top" class="text">In the above code we have included <span class="codeInline">FusionCharts.js</span>file to enable us embed the chart using JavaScript. We are also adding an ASP control literal which acts as the container for the charts. The <span class="codeInline"><strong>CreateCharts()</strong></span> function does the generation, and is the code behind the file to generate code for chart.<br />
<br />
Let's take a look at the code behind file, <span class="codeInline">Chart.aspx.cs</span> now: </td>
</tr>
<tr>
<td valign="top" class="text codeBlock"><p>using System;<br />
using System.Data;<br />
using System.Configuration;<br />
using System.Collections;<br />
using System.Web;<br />
using System.Web.Security;<br />
using System.Web.UI;<br />
using System.Web.UI.WebControls;<br />
using System.Web.UI.WebControls.WebParts;<br />
using System.Web.UI.HtmlControls;<br />
using InfoSoftGlobal;<br />
public partial class FormBased_Chart : System.Web.UI.Page<br />
{</p>
<p> protected void <b>Page_Load(object sender, EventArgs e)</b><br />
{<br />
<span class="codeComment">// Generate chart in Literal Control</span><br />
<b>FCLiteral.Text = CreateChart();</b><br />
}</p>
<p> </p>
<p> public string <strong>CreateChart()</strong><br />
{<br />
<span class="codeComment">//We first request the data from the form (Default.aspx)</span><br />
string intSoups, intSalads, intSandwiches, intBeverages, intDesserts;</p>
<p> intSoups = Context.Items["Soups"].ToString();<br />
intSalads = Context.Items["Salads"].ToString();<br />
intSandwiches = Context.Items["Sandwiches"].ToString();<br />
intBeverages = Context.Items["Beverages"].ToString();<br />
intDesserts = Context.Items["Desserts"].ToString();</p>
<p> <span class="codeComment"> //In this example, we're directly showing this data back on chart.<br />
//In your apps, you can do the required processing and then show the <br />
//relevant data only.</span></p>
<p> <span class="codeComment"> //Now that we've the data in variables, we need to convert this into XML.<br />
//The simplest method to convert data into XML is using string concatenation. </span><br />
string strXML;<br />
<span class="codeComment">//Initialize <graph> element</span><br />
strXML = "<graph caption='Sales by Product Category' subCaption='For this week' showPercentageInLabel='1' pieSliceDepth='25' decimalPrecision='0' showNames='1'>";<br />
<span class="codeComment">//Add all data</span><br />
strXML += "<set name='Soups' value='" + intSoups + "' />";<br />
strXML += "<set name='Salads' value='" + intSalads + "' />";<br />
strXML += "<set name='Sandwiches' value='" + intSandwiches + "' />";<br />
strXML += "<set name='Beverages' value='" + intBeverages + "' />";<br />
strXML += "<set name='Desserts' value='" + intDesserts + "' />";<br />
<span class="codeComment">//Close <graph> element</span><br />
strXML += "</graph>";</p>
<p> <span class="codeComment">//Create the chart - Pie 3D Chart with data from strXML</span><br />
<strong>return FusionCharts.RenderChart("../FusionCharts/FCF_Pie3D.swf", "", strXML, "Sales", "600", "350", false, false);</strong><br />
}<br />
}</p></td>
</tr>
<tr>
<td valign="top" class="text"> </td>
</tr>
<tr>
<td valign="top" class="text"><p>As you can see in the above code, we're doing the following:</p>
<ul>
<li>Include <span class="codeInline">InfoSoftGlobal</span> namespace.</li>
<li>Requesting data from the submitted form and storing it in local variables.</li>
<li>Creating an XML data document using string concatenation and storing it in <span class="codeInline">strXML</span> variable. </li>
<li>Creating a Pie 3D chart using <span class="codeInline">RenderChart()</span> function and passing <span class="codeInline">strXML</span> as <span class="codeInline">dataXML</span> for the chart. <span class="codeInline">RenderChart()is called form the Page_Load</span><span class="codeInline"> event lsitener. </span> </li>
</ul>
<p>When you finally run the code, you'll see a chart as under: </p></td>
</tr>
<tr>
<td valign="top" class="text"><img src="Images/Code_FormChart.jpg" class="imageBorder" /></td>
</tr>
</table>
</body>
</html>
Mr. DellatioNx196 GaLers xh3LL Backd00r 1.0, Coded By Mr. DellatioNx196 - Bogor BlackHat