Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Построение диаграмм
|
|||
|---|---|---|---|
|
#18+
Люди помогите пожалуйста! Есть такой код: <%@ WebHandler Language="C#" Class="Chart" %> using System; using System.Web; using OWC11; public class Chart : IHttpHandler { /// <summary> /// Http - обработчик. /// </summary> public void ProcessRequest (HttpContext context) { Byte[] oImg; Int32 iConst = Convert.ToInt32(ChartSpecialDataSourcesEnum.chDataBound); // Создаём объект ChartSpace содержащий диаграммы. ChartSpace objCSpace = new ChartSpaceClass(); // Добавим диаграмму в ChartSpace. ChChart objChart = objCSpace.Charts.Add(0); // Укажем тип графика. objChart.Type = ChartChartTypeEnum.chChartTypeLine; // Нужна ли легенда графику? objChart.HasLegend = true; // Заголовок графика. objChart.HasTitle = true; objChart.Title.Caption = "Title Of The Chart"; // Подписи осей графика. objChart.Axes[0].HasTitle = true; objChart.Axes[0].Title.Caption = "Y Axis Caption"; objChart.Axes[1].HasTitle = true; objChart.Axes[1].Title.Caption = "X Axis Caption"; // Создание строки соединения с базой данных objCSpace.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=True;" + "User ID=***;Data Source=***;Use Procedure for Prepare=1;" + "Auto Translate=True;Packet Size=4096;Use Encryption for Data=False;" + "Tag with column collation when possible=False;Initial Catalog=***;password=***;"; // Создание запроса на выборку objCSpace.CommandText = "exec asu_ChartDiagram 10000001562, '20060801', '20060805'"; objChart.SeriesCollection.Add(0); objChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimSeriesNames, iConst, "rest"); // Определяем область категорий objChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimCategories, iConst, "ondate"); // Определяем область значений objChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimValues, iConst, "rest"); oImg = (Byte[])objCSpace.GetPicture("gif", 640, 480); context.Response.ContentType = "image/gif"; context.Response.OutputStream.Write(oImg, 0, oImg.Length); } public bool IsReusable { get { return false; } } } По идее с помощью хранимой процедуры asu_ChartDiagram из базы данных извлекается набор данных (проверял, процедура рабочая) содержащий даты (поле ondate) и значения остатков по счету (поле rest) затем собственно строится график на котором видно как изменялся остаток в определённый период... На практике же замучался с ошибкой: "Value does not fall within the expected range." при попытке вызвать метод objChart.SeriesCollection[0].SetData(...) В качестве примера использовал: http://www.aspnetmania.com/Articles/Article/55.html Но код примера тоже не удалось запустить... Пните в нужную сторону ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2006, 16:34 |
|
||
|
Построение диаграмм
|
|||
|---|---|---|---|
|
#18+
Гммм... Если вместо вызова хранимой процедуры: objCSpace.CommandText = "exec asu_ChartDiagram 10000001562, '20060801', '20060805'"; использовать запрос, то всё работает Но в хранимке лежит довольно большой код, не хотельсь бы писать его прямо в .ashx-файл ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2006, 17:24 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=33906186&tid=1390816]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
129ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 416ms |

| 0 / 0 |
