Патриарх
Зарегистрирован: 09 October 2003
Сообщения: 1749
Примеры кода: 49
|
RE: --- Вопрос к Max Pro --- |
11 December 2007 13:20 |
|
|
|
|
Здравствуй.
пишу интранетовское приложение, на страничке отображается результат запроса к бд в виде DataGridView (дата, сумма), и нужно по этим данным построить график.
Я пробовал это реализовать с помощью твоей статьи № 4, но возникают ошибки.
Как я поступил:
1. В проекте добавил ссылку на компонент диаграммы.
2. На Вэб-страницу добавил картинку (Image1).
3. Создал страничку Chart.ashx, в которую поместил код,как в примере
4. Нацелил картинку на страницу Image1.ImageUrl="Chart.ashx";
В результате отображает только оси и название графика..
Вот мой код:
public void ProcessRequest(HttpContext context)
{
Int32 iConst = Convert.ToInt32(OWC11.ChartSpecialDataSourcesEnum.chDataBound);
OWC11.ChartSpaceClass ChartSpace1 = new OWC11.ChartSpaceClass();
Byte[] oImg;
ChartSpace1.HasChartSpaceTitle = true;
ChartSpace1.ChartSpaceTitle.Caption = "График";
ChartSpace1.ConnectionString = "Provider=System.Data.SqlClient;Data Source=<имя сервера>;Packet Size=4096;Initial Catalog=<имя бд>;Integrated Security=SSPI";
ChartSpace1.CommandText = "Select Data AS [d], ROUND(obor_dis/100000, 0) AS [o] From Table";
//ChartSpace1.SetData(OWC11.ChartDimensionsEnum.chDimCategories, iConst, "d");
ChartSpace1.Charts[0].Type = OWC11.ChartChartTypeEnum.chChartTypeColumnClustered3D;
oImg = (Byte[])ChartSpace1.GetPicture("gif", 575, 500);
context.Response.ContentType = "image/gif";
context.Response.OutputStream.Write(oImg, 0, oImg.Length);
}
На закоментированной строке выдает ошибку : "Error HRESULT E_FAIL...", если вместо iConst ставлю "-1", то вместо значений из БД ось "х" подписывается буквой "d".
Как быть? Как заставить на оси х и у выводить значения из БД? И как строить диаграмму?
Очень нужна твоя помощь, ответь пожалуйста как можно скорей...
Зарание благодарю.
Я сейчас редко бываю на форуме, так как вопросов у меня никаких уже не осталось практически, а отвечать я и рад бы, да некогда. Но тем не менее спасибо за вопрос, к счастью, я его заметил. Отвечаю:
1. То, что уже есть пустой график - полдела считай сделано. Осталось данные правильно привязать.
2. Чтобы привязать правильно данные делай точно как в примере, ни на шаг не отступая. Сказано там через провайдера SQLOLEDB.1, значит так надо. Когда прокатит, тогда будешь экспериментировать с другими провайдерами. Хотя я предпочитаю работать через строки с табуляторами. Кроме того у OWC11 есть проблемы с типом данных DateTime, попробуй его на первый раз заменить на какую-либо строку. Ну и наконец, ты немного отошёл от примера, постарайся сделать сперва один к одному как в примере. Когда хоть раз получится - начинай экспериментировать.
Успехов тебе!
Работай так, чтобы Великий Учитель Dimon aka одобрил, и AL похвалил!
|
|