DBGrid Control
Если можно пришлите примеры программ на
[EMAIL]krartem@mail.ru[/EMAIL] .
[email]tahteev@mail.ru[/email]
Код продублирую на всякий случай.
________________________________________________
#include ".\\Grid\\GridCtrl.h"
CGridCtrl m_Grid;
в OnInitDialog
m_Grid.Create(rect1,this,WM_USER+3000);
bool InitialGrids()
{
try
{
m_Grid.DeleteAllItems();
if(m_rs.IsOpen()) m_rs.Close();
m_rs.m_pDatabase=&m_db;
// MessageBox(SqlSearch);
m_rs.Open(CRecordset::snapshot,SqlSearch,CRecordset::readOnly);
for(int count=0;!m_rs.IsEOF();count++)
{
m_rs.MoveNext();
}
if(count==NULL) return false;
m_rs.MoveFirst();
m_Grid.SetFixedColumnCount();
m_Grid.SetFixedRowCount();
m_Grid.SetColumnCount(m_rs.GetODBCFieldCount()+1);
CString str;
CDBVariant vt;
CODBCFieldInfo m_info;
for(int i=0; i<m_rs.GetODBCFieldCount() && i<8; i++)
{
m_rs.GetODBCFieldInfo(i, m_info);
m_Grid.SetItemText(0,i+1, m_info.m_strName);
}
m_Grid.SetRowCount(count+2);
for(i=0;i<count;i++)
{
if(i!=0)
{
str.Format("%d", i);
m_Grid.SetItemText(i,0,str);
}
for (int j=0; j<m_rs.GetODBCFieldCount() && j<8; j++)
{
m_rs.GetFieldValue(j, vt);
CString * srs=new CString;
switch(vt.m_dwType)
{
case DBVT_STRING:
srs=vt.m_pstring;
break;
case DBVT_LONG:
srs->Format("%d",vt.m_lVal);
break;
case DBVT_UCHAR:
srs->Format("%s",vt.m_chVal);
break;
}
m_Grid.SetItemText(i+1, j+1, *srs);
}
m_rs.MoveNext();
}
str.Format("%d", i);
m_Grid.SetItemText(i,0,str);
CRect rect;
GetClientRect(rect);
m_Grid.SetColumnWidth(1,rect.Width()/8);
m_Grid.SetColumnWidth(2,rect.Width()/8);
m_Grid.SetColumnWidth(3,rect.Width()/12);
m_Grid.SetColumnWidth(4,rect.Width()/12);
m_Grid.SetColumnWidth(5,rect.Width()/8);
m_Grid.SetColumnWidth(6,rect.Width()/8);
m_Grid.SetColumnWidth(7,rect.Width()/8);
m_Grid.SetColumnWidth(8,rect.Width()/8);
m_Grid.Invalidate();
return true;
}
catch(...)
{
if(m_rs.IsOpen()) m_rs.Close();
MessageBox("Æèçíü ïîëíà íåîæèäàííîñòåé...(CDataBaseDlg::InitialGrids)","Îøèáêà",MB_OK | MB_ICONERROR);
return false;
}
}
нициализация Grida
CCellID pt;
pt=m_Grid.GetFocusCell();
m_Grid.GetItemText(pt.row,pt.col); - выборка значения из выбранной ячейки
Вроде так...
Большое Человеческое Спасибо!