📄 addrecorddlg.cpp
字号:
// AddRecordDlg.cpp : implementation file
//
#include "stdafx.h"
#include "resource.h"
#include "AddRecordDlg.h"
////////**************
#include "ADODataBase.h" //数据库类
//********************
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAddRecordDlg dialog
CAddRecordDlg::CAddRecordDlg(CWnd* pParent /*=NULL*/)
: CDialog(CAddRecordDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CAddRecordDlg)
m_sFieldDate = _T("");
m_sFieldTypeEdt = _T("");
//}}AFX_DATA_INIT
}
void CAddRecordDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAddRecordDlg)
DDX_Control(pDX, IDC_FieldDateEdt, m_cFieldDateEdt);
DDX_Control(pDX, IDC_RecordLstCtrl, m_cRecordLstCtrl);
DDX_Control(pDX, IDC_FieldNameCmb, m_cFieldNameCmb);
DDX_Text(pDX, IDC_FieldDateEdt, m_sFieldDate);
DDX_Text(pDX, IDC_FieldTypeEdt, m_sFieldTypeEdt);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAddRecordDlg, CDialog)
//{{AFX_MSG_MAP(CAddRecordDlg)
ON_BN_CLICKED(IDC_SetFieldBtm, OnSetField)
ON_CBN_SELCHANGE(IDC_FieldNameCmb, OnSelchangeFieldName)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CAddRecordDlg message handlers
void CAddRecordDlg::OnSetField()
{
UpdateData();
int row=m_cFieldNameCmb.GetCurSel(); //选中的字段序号
TableList.SetTableText(row,2,m_sFieldDate);
m_cFieldDateEdt.SetFocus();
}
void CAddRecordDlg::OnOK()
{
CADODataBase Table; // 创建ADO类对象
if(!Table.OpenTable(sDBName,sTableName)) // 打开选择的表单
{
AfxMessageBox(_T("打开数据表不成功!"));
}
for(int i=0; i<TableList.m_nRows; i++)
{
CString str=TableList.GetTableText(i,2); //获得记录值
Table.m_values.Add(str);
}
if(!Table.AddNewRecord())
{
AfxMessageBox(_T("写记录不成功!"));
}
CDialog::OnOK();
}
void CAddRecordDlg::OnSelchangeFieldName()
{
UpdateData();
int row=m_cFieldNameCmb.GetCurSel(); //选中的字段序号
CString str=TableList.GetTableText(row,1); //该字段的类型
m_sFieldTypeEdt=str;
str=TableList.GetTableText(row,2); //字段的的制
m_sFieldDate=str;
m_cRecordLstCtrl.EnsureVisible(row,TRUE);
UpdateData(FALSE);
m_cRecordLstCtrl.SetSelectionMark(row);
m_cFieldDateEdt.SetFocus(); //设置焦点
m_cFieldDateEdt.SetSel(0,str.GetLength());
}
BOOL CAddRecordDlg::OnInitDialog()
{
CDialog::OnInitDialog();
TableList.m_pListCtrl=&m_cRecordLstCtrl;
TableList.SetTableHead(0,_T("字段名称"),50);
TableList.SetTableHead(1,_T("字段类型"),50);
TableList.SetTableHead(2,_T("字段值"),50);
CString str;
//设置记录显示
TableList.ClearAllItems();
CADODataBase Table; // 创建ADO类对象
if(!Table.OpenTable(sDBName,sTableName)) // 打开选择的表单
{
AfxMessageBox(_T("打开数据表不成功!"));
}
Table.GetFieldName(); // 获取字段名称
int num=Table.m_values.GetSize();
TableList.SetRows(num);
m_cFieldNameCmb.ResetContent();
for(int i=0; i<num; i++) //显示字段名称
{
str=Table.m_values.GetAt(i);
TableList.SetTableText(i,0,str); // 显示字段名称
m_cFieldNameCmb.AddString(str);
}
// 获得字段类型
Table.GetFieldType();
for(i=0; i<num; i++) //显示字段名称
{
str=Table.m_values.GetAt(i);
TableList.SetTableText(i,1,str); // 显示字段类型
}
Table.CloseTable();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -