Как самому заполнить колонку в DataGrid ?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Shurik90
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 15.06.2003 (Вс) 23:49

Как самому заполнить колонку в DataGrid ?

Сообщение Shurik90 » 30.09.2003 (Вт) 15:51

Вот что я имею ввиду: имеется DataGrid, в котором отображаются цены в долларах. Я добавляю ещё одну колонку:
Код: Выделить всё
MyDataGrid.Columns.Add (2)
MyDataGrid.Columns(2).Caption = "Price(Rubls)"


Теперь мне надо пробежать по всему DataGrid, умножить в каждой строке цену в долларах на 30 (к примеру) и записать это в колонку с ценами в рублях.
Вот так:
Код: Выделить всё
| Цена($)    | Цена(Rub)   |
---------------------------
|     10    |             |
---------------------------
|     25    |             |


Как такое сделать? Как обратиться к DataGrid как к матрице, указав индексы Row и Column ?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 30.09.2003 (Вт) 15:57

Ну так и обратиться - .Row и .Col это строка и колонка, а .Text - это текст ячейки на их пересечении.

Shurik90
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 15.06.2003 (Вс) 23:49

Сообщение Shurik90 » 30.09.2003 (Вт) 16:39

Неа, не работает.
Код: Выделить всё
For i = 0 To rst.RecordCount
    MyDataGrid.Row = 1
    MyDataGrid.Columns(2).Text = MyDataGrid.Columns(1) .Text * 30
Next i

Т.е. если я пишу в Columns(1) , которая была сразу, то он туда записывает, одновременно изменяя Базу Данных, хотя у меня все галочки в Дата Гриде убранны.
А когда я пытаюсь писать в колонку, которую я добавил с помощью Add, то он выдаёт ошибку ( ошибка 6147: "Column not found, |1")

К тому же ему очень ненравится, когда я работаю с i. На такую строку он тоже ругается:
Код: Выделить всё
    MyDataGrid.Row = i


Может кто-то что-нибудь подсказать ?

RayShade
Может у тебя есть пример или кусок кода ?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 30.09.2003 (Вт) 17:02

Хм.. мы об одном и том же контроле вообще говорим?

Я о MS datagrid.

В моем случае изменение текста колонки выглядит так:

Код: Выделить всё
with grid
.col = 1
for i = 1 to .rows.count
.row = i
.text = cstr(clng(.text)*30)
next i

Shurik90
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 15.06.2003 (Вс) 23:49

Сообщение Shurik90 » 30.09.2003 (Вт) 19:12

И я об MS Data Grid, вот только нету у него такого:
Код: Выделить всё
grid.rows.count

И мне надо не текст в колонке изменить, а добавив ещё одну колонку, записать текст в новую. Во как.
А этот код, к сожалению, не работает...

Shurik90
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 15.06.2003 (Вс) 23:49

Сообщение Shurik90 » 16.10.2003 (Чт) 22:16

Так что, никто не знает как это сделать ???

Tany
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 21.10.2003 (Вт) 11:45

Сообщение Tany » 21.10.2003 (Вт) 11:54

Я вообще-то не мастер, так что прошу меня извинить если бред пишу. Но может сделать так:
Вы же наверное используете запрос в качестве источника данных для DataGrid, так вот в нем и написать
"Select ..., Price($)*30 as Price(rub) ... from ... "

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 22.10.2003 (Ср) 13:14

MyDataGrid.textmatrix(строка,столбец) = значение

первая строка, столбец - 0

Shurik90
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 15.06.2003 (Вс) 23:49

Сообщение Shurik90 » 22.10.2003 (Ср) 16:42

Попробовал - не получилось...
Пишет что такое выражение (MyDataGrid.textmatrix) ему неизвестно.
Ты уверен что ты это про MS Data Grid ?

Tany
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 21.10.2003 (Вт) 11:45

Сообщение Tany » 23.10.2003 (Чт) 11:12

textmatrix это не у DataGrid, а у FlexGrid. Попробуйте сделать так как я вам предлагала.

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 23.10.2003 (Чт) 11:17

Shurik90 писал(а):Ты уверен что ты это про MS Data Grid ?


Да, перепутал, Flex Grid это. А что на него Data Grid нельзя заменить?


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

    TopList