⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 addrecorddlg.cpp

📁 随着计算机信息技术的飞速发展
💻 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 + -