📄 tableadddlg.cpp
字号:
// TableAddDlg.cpp : 实现文件
//
#include "stdafx.h"
#include "DataManager.h"
#include "TableAddDlg.h"
#include ".\tableadddlg.h"
#include "DbOperator\DbOperator.h"
#define IDC_LIST 1004
#define IDC_EDIT 1005
// CTableAddDlg 对话框
CString DataType[]=
{
"bigint","binary","bit","char","datetime","decimal","float","image","int","money","nchar","ntext","numeric",
"nvarchar","real","smalldatetime","smallint","smallmoney","sql_variant","text","timestamp","tinyint",
"uniqueidentifier","varbinary","varchar"
};
IMPLEMENT_DYNAMIC(CTableAddDlg, CDialog)
CTableAddDlg::CTableAddDlg(CWnd* pParent /*=NULL*/)
: CDialog(CTableAddDlg::IDD, pParent)
{
m_listTableAdd.m_hWnd = NULL;
}
CTableAddDlg::~CTableAddDlg()
{
}
void CTableAddDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CTableAddDlg, CDialog)
ON_WM_CREATE()
ON_BN_CLICKED(IDC_BTN_FIELDADD, OnBnClickedBtnFieldadd)
ON_BN_CLICKED(IDC_BTN_FIELDDELETE, OnBnClickedBtnFielddelete)
ON_BN_CLICKED(ID_YES, OnBnClickedYes)
END_MESSAGE_MAP()
// CTableAddDlg 消息处理程序
void CTableAddDlg::OnOK()
{
}
int CTableAddDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDialog::OnCreate(lpCreateStruct) == -1)
return -1;
CRect rcClient;
GetClientRect(rcClient);
if(m_listTableAdd.m_hWnd == NULL)
{
m_listTableAdd.Create(WS_CHILD | WS_VISIBLE | WS_BORDER | LVS_REPORT, CRect(10,10,rcClient.Width()-170,rcClient.Height()-100), this, IDC_LIST);
m_listTableAdd.SetExtendedStyle(LVS_EX_CHECKBOXES | LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT );
}
if(m_listTableAdd.m_hWnd != NULL)
{
m_listTableAdd.InsertColumn(1, "操作");
m_listTableAdd.InsertColumn(1, "主键");
m_listTableAdd.InsertColumn(2, "列名");
m_listTableAdd.InsertColumn(3, "数据类型");
m_listTableAdd.InsertColumn(4, "长度");
m_listTableAdd.InsertColumn(5, "允许空");
m_listTableAdd.InsertColumn(6, "默认值");
m_listTableAdd.SetColumnWidth(0, 40);
m_listTableAdd.SetColumnWidth(1, 100);//主键
m_listTableAdd.SetColumnWidth(2, 100);///列名
m_listTableAdd.SetColumnWidth(3, 100);//类型
m_listTableAdd.SetColumnWidth(4, 100);//长度
m_listTableAdd.SetColumnWidth(5, 100);//允许空
m_listTableAdd.SetColumnWidth(6, 100);//默认值
CItemEdit* pEdit = new CItemEdit();
pEdit->Create(WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT, CRect(0,0,0,0), &m_listTableAdd, 1007);
m_listTableAdd.SetEdit(pEdit, 2);
pEdit = new CItemEdit();
pEdit->Create(WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT|ES_NUMBER, CRect(0,0,0,0), &m_listTableAdd, 1009);
m_listTableAdd.SetEdit(pEdit, 4);
pEdit = new CItemEdit();
pEdit->Create(WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT|ES_NUMBER, CRect(0,0,0,0), &m_listTableAdd, 1011);
m_listTableAdd.SetEdit(pEdit, 6);
CItemComboBox* pItemComboBox = new CItemComboBox();
pItemComboBox->Create(WS_CHILD|WS_BORDER|CBS_DROPDOWN, CRect(0,0,0,100), &m_listTableAdd, 1006);
pItemComboBox->AddString("*");
pItemComboBox->AddString("");
m_listTableAdd.SetComboBox(pItemComboBox, 1);
pItemComboBox = new CItemComboBox();
pItemComboBox->Create(WS_CHILD|WS_BORDER|CBS_DROPDOWN|WS_VSCROLL , CRect(0,0,0,200), &m_listTableAdd, 1008);
for(int i=0; i<25; i++)
{
pItemComboBox->AddString(DataType[i]);
}
m_listTableAdd.SetComboBox(pItemComboBox, 3);
pItemComboBox = new CItemComboBox();
pItemComboBox->Create(WS_CHILD|WS_BORDER|CBS_DROPDOWN, CRect(0,0,0,100), &m_listTableAdd, 1010);
pItemComboBox->AddString("");
pItemComboBox->AddString("NOT NULL");
m_listTableAdd.SetComboBox(pItemComboBox, 5);
}
return 0;
}
void CTableAddDlg::OnBnClickedBtnFieldadd()
{
if(m_listTableAdd.m_hWnd!=NULL)
{
int nItems = m_listTableAdd.GetItemCount();
m_listTableAdd.InsertItem(nItems, "");
}
}
void CTableAddDlg::OnBnClickedBtnFielddelete()
{
if(m_listTableAdd.m_hWnd!=NULL)
{
int nItems = m_listTableAdd.GetItemCount();
for(int i=nItems-1; i>=0; i--)
{
BOOL bIsChecked = ListView_GetCheckState(m_listTableAdd.m_hWnd, i);
if(bIsChecked)
{
m_listTableAdd.DeleteItem(i);
}
}
}
}
void CTableAddDlg::OnBnClickedYes()
{
CString strTableName;
CString strItem1;
CString strItem2;
CString strItem3;
CString strItem4;
CString strItem5;
CString strItem6;
CString strSQL="";
CEdit* pEdit = (CEdit*)GetDlgItem(IDC_EDIT_TABLENAME);
pEdit->GetWindowText(strTableName);
if(strTableName=="")
{
MessageBox("table name can't be null!");
return;
}
//检测表是否已经存在
CDbOperator DbOperator;
BOOL bIsExisted = DbOperator.IsTableExisted(strTableName);
if(bIsExisted)
{
MessageBox("the table name is existed! please enter another name!");
return;
}
CHeaderCtrl* pHeaderCtrl = m_listTableAdd.GetHeaderCtrl();
int nColCount = pHeaderCtrl->GetItemCount();
int nRowCount = m_listTableAdd.GetItemCount();
for(int i=0; i<nRowCount; i++)
{
strItem1 = m_listTableAdd.GetItemText(i, 1);
strItem2 =m_listTableAdd.GetItemText(i, 2);
strItem3 =m_listTableAdd.GetItemText(i, 3);
strItem4 =m_listTableAdd.GetItemText(i, 4);
strItem5 =m_listTableAdd.GetItemText(i, 5);
strItem6 =m_listTableAdd.GetItemText(i, 6);
if(strItem3=="bigint")
{
int nCount = (int)m_listTableAdd.m_ptrArray.GetCount();
for(int k=0; k<nCount; k++)
{
ItemControl* pItemControl = (ItemControl*)m_listTableAdd.m_ptrArray.GetAt(i);
CWnd* pWnd = pItemControl->pWnd;
if(pWnd->GetDlgCtrlID()==1011)
{
CItemEdit* pItemEdit = (CItemEdit*)pWnd;
if(pItemEdit!=NULL)
{
pItemEdit->SetReadOnly();
pItemEdit->SetWindowText("4");
}
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -