DataGrid Control
От: Край Антон Геннадиевич Россия  
Дата: 08.11.01 08:09
Оценка:
В проекте переходим с С на VC++. Требование открыть для редактирования управляющий файл в виде сетки. Возможно это Microsoft DataGrid Control, Version 6.0 (OLEDB). Как им пользоваться? Если можно, то полный пример с открытием доступа и т.д. Ну очень надо! Если можно, то ... anthony_krai@mail.ru
Re: DataGrid Control
От: retalik www.airbandits.com/
Дата: 09.11.01 12:17
Оценка:
Здравствуйте Край Антон Геннадиевич, Вы писали:

КАГ>В проекте переходим с С на VC++. Требование открыть для редактирования управляющий файл в виде сетки. Возможно это Microsoft DataGrid Control, Version 6.0 (OLEDB). Как им пользоваться? Если можно, то полный пример с открытием доступа и т.д. Ну очень надо! Если можно, то ... anthony_krai@mail.ru


А как это: "открыть для редактирования управляющий файл в виде сетки"? Если имеется в виду редактирование данных в табличном виде, то надо поместить на диалог MS DataGrid Control и в его свойстве DataSource указать на открытый источник данных (Recordset). Проще всего это можно сделать, поместив на тот же диалог элемент MS ADO Data Control. Необходимо настроить его параметры (тип источника данных, имя сервера БД, имя пользователя/пароль и т.д). После этого
в списке свойств DataGrid в поле DataSource появится что-то вроде IDC_ADODC1.
Но вообще, "визуальное" проектирование этого контрола в VC крайне ограничено (хотя ко всем свойствам и методам можно достучаться из программы).
Успехов,
Виталий.
Re[2]: DataGrid Control
От: IT Россия linq2db.com
Дата: 09.11.01 14:26
Оценка:
Здравствуйте retalik, Вы писали:

R>Но вообще, "визуальное" проектирование этого контрола в VC крайне ограничено (хотя ко всем свойствам и методам можно достучаться из программы).


Это точно... Можно ещё MS Flex Grid Control. Классная штука, только данные туда надо ручками запихивать.
Если нам не помогут, то мы тоже никого не пощадим.
Re[3]: DataGrid Control
От: nimnul  
Дата: 09.11.01 16:11
Оценка:
Здравствуйте все!
Вопрос к retalik и IT :
Наверняка вы должны знать, как этот самый DataGrid Control распечатать?
Бьюсь уже долго, у Microsoft хорошего ничего не нашел, может хоть кто-нибудь поможет newbe...
дело вот в чём — он помещается в CFormView — что надо делать по OnBeginPrint() , OnPrint() и т.д.
Ведь кто-то же это уже делал? поделитесь, пожалуйста!

Извините за долгоговорение — очень надо!!
Re[4]: DataGrid Control
От: IT Россия linq2db.com
Дата: 09.11.01 16:30
Оценка:
Здравствуйте nimnul, Вы писали:

N>Наверняка вы должны знать, как этот самый DataGrid Control распечатать?


Знаем, только ручками. Никакой специальной поддержки печати он не содержит. Для печати данных из базы сушествует Crystall Report, если всё же хочется самому, то здесь тебе никто не поможет, берёшь рекордсет, MoveFirst, MoveNext пока не EOF.
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: DataGrid Control
От: anthony Россия  
Дата: 09.11.01 20:19
Оценка:
Здравствуйте Виталий.
Спасибо за информацию. Теперь стало яснее. Буде пробовать.
Re[5]: DataGrid Control
От: retalik www.airbandits.com/
Дата: 12.11.01 04:22
Оценка:
Здравствуйте IT, Вы писали:

IT>Здравствуйте nimnul, Вы писали:


N>>Наверняка вы должны знать, как этот самый DataGrid Control распечатать?


IT>Знаем, только ручками. Никакой специальной поддержки печати он не содержит. Для печати данных из базы сушествует Crystall Report, если всё же хочется самому, то здесь тебе никто не поможет, берёшь рекордсет, MoveFirst, MoveNext пока не EOF.


Хочу дать совет (меня в свое время это выручило): взглянуть на MFC Grid Control. Он имеет возможность редактирования ячеек и печати в стиле MFC (OnBeginPrinting/...) — это стоит того, чтобы вручную связывать его с базой (например, через тот же рекордсет).
Успехов,
Виталий.
Re[6]: DataGrid Control
От: anthony Россия  
Дата: 14.11.01 11:16
Оценка:
Здравствуйте retalik,
Воткните мне, пожалуйста, ручками DataGrid Control.
Ну очень увидеть хочется как это бывает.

BOOL CQqqDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CDaoDatabase db;
db.Open("MyDBFile.mdb",FALSE);
CDaoRecordset rec(&db);
rec.Open(dbOpenDynaset, "SELECT * FROM SalesTable");
CDataGrid datagrid;
rec.????

while (!rec.IsEOF())
{
rec.MoveNext();
}
rec.Close();
db.Close();
}
Re[7]: DataGrid Control
От: retalik www.airbandits.com/
Дата: 14.11.01 12:37
Оценка:
Здравствуйте anthony, Вы писали:

A>Здравствуйте retalik,

A>Воткните мне, пожалуйста, ручками DataGrid Control.
A>Ну очень увидеть хочется как это бывает.
Извини, что разочаровываю, но никогда не работал с DAO (и уже не буду). До этого речь шла про ADO DataGrid.

A>BOOL CQqqDlg::OnInitDialog()

A>{
A> CDialog::OnInitDialog();
A> CDaoDatabase db;
A> db.Open("MyDBFile.mdb",FALSE);
A> CDaoRecordset rec(&db);
A> rec.Open(dbOpenDynaset, "SELECT * FROM SalesTable");
A> CDataGrid datagrid;
A> rec.????
В предыдущих постах речь шла о том, чтобы поместить на диалог DataGrid и связать его ClassWizard'ом с переменной m_grid. Ты же эту переменную создаешь локально в функции, то есть при выходе из нее он разрушится.
A> while (!rec.IsEOF())
A> {
A> rec.MoveNext();
A> }
A> rec.Close();
A> db.Close();
A>}
А прокачивать рекордсет не надо, этим сетка займется.
Успехов,
Виталий.
Re[3]: DataGrid Control
От: Аноним  
Дата: 19.11.01 20:17
Оценка:
Здравствуйте IT, Вы писали:


IT>Это точно... Можно ещё MS Flex Grid Control. Классная штука, только данные туда надо ручками запихивать.


Может кто подкинет пример как их туда запихивать
Re[8]: DataGrid Control
От: anthony Россия  
Дата: 20.11.01 07:09
Оценка:
Здравствуйте Виталий:

Мне все-таки необходим этот Grid.
В проекте необходимо начитывать различные файлы данных в Grid. В описании к Ado Data Control сказано, что есто возможность программно изменять ConnectionString и RecordSource для доступа к разным базам данных. И нет примеров. Сделайте, плиз, примерчик. Если мона толька.
Re[9]: DataGrid Control
От: Obsolete  
Дата: 23.11.01 22:23
Оценка:
Здравствуйте anthony

Найди лучьше Objective Grid и не мучайся. Там уже есть все что душе угодно и куча примеров и документация тоже имеется неплохая. А с DAO вааще приятно работать там.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.