Пожалуйста, прочитай 5-ю статью. Там показано как работать со строками через табуляторы (процедура Zap2String). Это наиболее предпочтительный способ.
И ещё. Вот, лови пример. С ним можно экспериментировать, работает без базы данных:
<%@ WebHandler language="C#" class="HandlerChart.ChartHttpHandler2" %>
// Имя этого HTML+C# файла Chart2.ashx и компилировать его не надо.
using System;
using System.Web;
using OWC11;
//using Microsoft.Office.Interop.Owc11;
namespace HandlerChart
{
public class ChartHttpHandler2 : IHttpHandler
{
// Переопределяем метод ProcessRequest.
public void ProcessRequest(HttpContext context)
{
//var
ChartSpaceClass ChartSpace1=new ChartSpaceClass();
Byte[] oImg;
Int32 iConst=Convert.ToInt32(ChartSpecialDataSourcesEnum.chDataLiteral);
String categories1="";
String values1="";
String categories2="";
String values2="";
String categories3="";
String values3="";
//end var
categories1="Город Округ Район";
values1="1 2 3";
categories2="Москва Питер Самара";
values2="2 3 4";
categories3="Техас Нью-Джерси Невада";
values3="0 1 2";
ChartSpace1.Clear();
//активизация заголовка диаграммы
ChartSpace1.HasChartSpaceTitle=true;
//создание заголовка
ChartSpace1.ChartSpaceTitle.Caption="Таблица tabNumB";
ChartSpace1.Charts.Add(0);
ChartSpace1.Charts[0].SeriesCollection.Add(0);
ChartSpace1.Charts[0].SeriesCollection[0].Caption="№1";
ChartSpace1.Charts[0].SeriesCollection[0].SetData(ChartDimensionsEnum.chDimCategories,iConst,categories1);
ChartSpace1.Charts[0].SeriesCollection[0].SetData(ChartDimensionsEnum.chDimValues,iConst,values1);
/*
ChartSpace1.Charts[0].SeriesCollection.Add(1);
ChartSpace1.Charts[0].SeriesCollection[1].Caption="№2";
ChartSpace1.Charts[0].SeriesCollection[1].SetData(ChartDimensionsEnum.chDimCategories,iConst,categories1);
ChartSpace1.Charts[0].SeriesCollection[1].SetData(ChartDimensionsEnum.chDimValues,iConst,values2);
ChartSpace1.Charts[0].Type=ChartChartTypeEnum.chChartTypeColumnClustered3D;//chChartTypePieExploded3D
ChartSpace1.Charts[0].HasLegend=true;
ChartSpace1.Charts.Add(1);
ChartSpace1.Charts[1].SeriesCollection.Add(0);
ChartSpace1.Charts[1].SeriesCollection[0].Caption="№3";
ChartSpace1.Charts[1].SeriesCollection[0].SetData(ChartDimensionsEnum.chDimCategories,iConst,categories3);
ChartSpace1.Charts[1].SeriesCollection[0].SetData(ChartDimensionsEnum.chDimValues,iConst,values3);
*/
ChartSpace1.Charts[0].Type=ChartChartTypeEnum.chChartTypePieExploded3D;
ChartSpace1.Charts[0].HasLegend=true;
ChartSpace1.Charts[0].HasTitle=true;
ChDataLabels oDL=ChartSpace1.Charts[0].SeriesCollection[0].DataLabelsCollection.Add();
oDL.HasPercentage=true;
oDL.HasValue=true;
oDL.Separator="\n";
oDL.Font.Color="red";
//oDL.Position=ChartDataLabelPositionEnum.chLabelPositionAutomatic;
//oDL.Position=ChartDataLabelPositionEnum.chLabelPositionBottom;
//oDL.Position=ChartDataLabelPositionEnum.chLabelPositionCenter;
//oDL.Position=ChartDataLabelPositionEnum.chLabelPositionInsideBase;
//oDL.Position=ChartDataLabelPositionEnum.chLabelPositionInsideEnd;
//oDL.Position=ChartDataLabelPositionEnum.chLabelPositionLeft;
//oDL.Position=ChartDataLabelPositionEnum.chLabelPositionOutsideBase;
//oDL.Position=ChartDataLabelPositionEnum.chLabelPositionOutsideEnd;
//oDL.Position=ChartDataLabelPositionEnum.chLabelPositionRight;
//oDL.Position=ChartDataLabelPositionEnum.chLabelPositionTop;
/*
ChartSpace1.Charts[0].SeriesCollection[0].DataLabelsCollection.Add().HasBubbleSize=false;
ChartSpace1.Charts[0].SeriesCollection[0].DataLabelsCollection.Add().HasCategoryName=false;
ChartSpace1.Charts[0].SeriesCollection[0].DataLabelsCollection.Add().HasSeriesName=false;
ChartSpace1.Charts[0].SeriesCollection[0].DataLabelsCollection.Add().HasValue=false;
*/
oImg=(Byte[])ChartSpace1.GetPicture("gif",600,300);
context.Response.ContentType="image/gif";
context.Response.OutputStream.Write(oImg,0,oImg.Length);
}
// Переопределяем свойство IsReusable.
public bool IsReusable
{
get { return true; }
}
}
}
Работай так, чтобы Великий Учитель Dimon aka одобрил, и AL похвалил!
|