Страница: 1 |
|
Вопрос: ADODB.RecordSet & MSChart
|
Добавлено: 12.11.02 09:41
|
|
Автор вопроса: Sergey
|
Народ, помогите идиоту. Уже 3 дня бьюсь над простой, казалось бы, задачей: мне нужно построить график на основании РекордСэта, состоящего всего из двух полей. 1-е: тип дата, 2-е: тип целое. График должен быть примерно следующий: по оси У идут значения (2-е поле), а по Х - даты (1-е поле). Тут все прозрачно. Но есть два требования: во-первых, максимум и минимум графика по оси У должен приходится на максимум и минимум 2-го поля. Это я кое-как сделал, т.к. диаграмма по умолчанию строится по оси У начиная с нуля, а у меня самое маленькое число 200000 и получается, что график весь вверху сосредоточен. А вот вторую задачу победить не смог: мне надо, чтобы на самой кривой в каждой ее точке отображалось соответствующее ее значение, ну как в Экселе. Может кто сталкивался с этим делом? Был бы признателен за любую информацию: ссылки, советы, предположения, примеры...
Ниже привожу исходный код на VB:
Dim Cnn as New ADODB.Connection
Dim Rst as New ADODB.Recordset
Dim lMax as Long, lMin as Long, j as Integer, sSQL as String
sSQL = "SELECT [T].[F1], [T].[F2] FROM [T] WHERE [T].[F1] BETWEEN DATE1 AND DATE2"
Set Rst = Cnn.Execute(sSQL, , adCmdText)
With Chart
.RowCount = Rst.RecordCount
lMax = Rst.Field(1).Value
lMin = Rst.Field(1).Value
For j = 1 to Rst.RecordCount
.Row = j
If Rst.Field(1).Value > lMax Then lMax = Rst.Field(1).Value
If Rst.Field(1).Value < lMin Then lMin = Rst.Field(1).Value
.Data = Rst.Field(1).Value
.RowLabel = Rst.Field(0).Value
Rst.MoveNext
Next j
.Plot.Axis(VtChAxisIdY).ValueScale.Maximum = lMax
.Plot.Axis(VtChAxisIdY).ValueScale.Minimum = lMin
End With
Rst.Close
Set Rst = Nothing
Ответить
|
Номер ответа: 1 Автор ответа:
Evgeny D
   
Вопросов: 10 Ответов: 33
|
Профиль | | #1
|
Добавлено: 12.11.02 13:38
|
Иди по следующей тропинке: Properties - Custom - Axis - Выбери Y-Axis и сними галочку Automating Scaling
Ответить
|
Номер ответа: 3 Автор ответа:
Evgeny D
   
Вопросов: 10 Ответов: 33
|
Профиль | | #3
|
Добавлено: 12.11.02 14:17
|
1. Галочку надо было снять, чтобы у тебя програмно работали .ValueScale.Maximum и .ValueScale.Minimum. А как ты будешь их менять - это вопрос другой http://vbnet.ru/forum/images/102.gif 2. Вряд-ли ты в стандартном контроле найдешь какие-то навороченные фичи. Попробуй поискать в и-нете бесплатные chart-ы. Они есть. А если и платные, до "пеницилин" для них поискать можно. Посмотри на http://www.componentone.com . У них много интересных контролов есть.
Ответить
|
Страница: 1 |
Поиск по форуму