// Dlg_Card.cpp : 实现文件 // #include "stdafx.h" #include "StoneU_Door.h" #include "Dlg_Card.h" #include ".\dlg_card.h" #include "Global.h" #include "Dlg_CardProPerty.h" #include "Dlg_CardInput.h" #include "DBConnection.h" // CDlg_Card 对话框 IMPLEMENT_DYNAMIC(CDlg_Card, CDialog) CDlg_Card::CDlg_Card(CWnd* pParent /*=NULL*/) : CDialog(CDlg_Card::IDD, pParent) , m_sEdit_Name(_T("")) , m_sEdit_CardNumber(_T("")) , m_sEdit_Class(_T("")) , m_sEdit_Remarks(_T("")) , m_sEdit_JobNumber(_T("")) { } CDlg_Card::~CDlg_Card() { } void CDlg_Card::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT_NAME, m_sEdit_Name); DDX_Text(pDX, IDC_EDIT_CARDNUMBER, m_sEdit_CardNumber); DDX_Text(pDX, IDC_EDIT_CALSS, m_sEdit_Class); DDX_Text(pDX, IDC_EDIT_DOOR1NAME, m_sEdit_Remarks); DDX_Control(pDX, IDC_LIST_CONTROL, m_List_Card); DDX_Text(pDX, IDC_EDIT_JOBNUMBER, m_sEdit_JobNumber); DDX_Control(pDX, IDC_BTN_ADD, m_Btn_Add); DDX_Control(pDX, IDC_BTN_SAVE, m_Btn_Modify); DDX_Control(pDX, IDC_BTN_DELETE, m_Btn_Delete); DDX_Control(pDX, IDC_BTN_INPUT, m_Btn_Input); DDX_Control(pDX, IDC_BTN_EXPUT, m_Btn_Exput); } BEGIN_MESSAGE_MAP(CDlg_Card, CDialog) ON_BN_CLICKED(IDC_BTN_ADD, OnBnClickedBtnAdd) ON_BN_CLICKED(IDC_BTN_SAVE, OnBnClickedBtnSave) ON_BN_CLICKED(IDC_BTN_DELETE, OnBnClickedBtnDel) ON_NOTIFY(NM_CLICK, IDC_LIST_CONTROL, OnNMClickListControl) ON_WM_CTLCOLOR() ON_WM_ERASEBKGND() ON_NOTIFY(NM_DBLCLK, IDC_LIST_CONTROL, OnNMDblclkListControl) ON_BN_CLICKED(IDC_BTN_INPUT, OnBnClickedBtnInput) ON_BN_CLICKED(IDC_BTN_EXPUT, OnBnClickedBtnExput) END_MESSAGE_MAP() // CDlg_Card 消息处理程序 BOOL CDlg_Card::OnInitDialog() { CDialog::OnInitDialog(); // TODO: 在此添加额外的初始化 //m_List_Card.InsertColumn( 0, "编号" ); //m_List_Card.InsertColumn( 1, "名称" ); //m_List_Card.InsertColumn( 2, "卡编号" ); //m_List_Card.InsertColumn( 3, "部门" ); //m_List_Card.InsertColumn( 4, "工号" ); //m_List_Card.InsertColumn( 5, "备注" ); //m_List_Card.SetColumnWidth( 0, 60 ); //m_List_Card.SetColumnWidth( 1, 120); //m_List_Card.SetColumnWidth( 2, 100); //m_List_Card.SetColumnWidth( 3, 100); //m_List_Card.SetColumnWidth( 4, 60); //m_List_Card.SetColumnWidth( 5, 525); //m_List_Card.SetExtendedStyle(m_List_Card.GetExtendedStyle() | LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT); InitList(); ReadCard( &m_List_Card ); return TRUE; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE } int CDlg_Card::InitList(void) { //m_List_Info.InsertColumn( 0, "执行时刻" ); //m_List_Info.InsertColumn( 1, "人员信息" ); //m_List_Info.InsertColumn( 2, "描述" ); //m_List_Info.InsertColumn( 3, "信息" ); //m_List_Info.SetColumnWidth( 0, 120 ); //m_List_Info.SetColumnWidth( 1, 200); //m_List_Info.SetColumnWidth( 2, 200); //m_List_Info.SetColumnWidth( 3, 650); //m_List_Info.SetExtendedStyle(m_List_Info.GetExtendedStyle() | LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT); //m_List_Rule.SetColColor(0,RGB(10,150,20)); //设置列背景色 //m_List_Rule.SetColColor(2,RGB(30,100,90)); //设置列背景色 //m_List_Rule.SetBkColor(RGB(50,10,10)); //设置背景色 //m_List_Rule.SetItemColor(1,1,RGB(100,100,10)); //设置指定单元背景色 //m_List_Rule.SetRowHeigt(25); //设置行高度 //m_List_Rule.SetHeaderHeight(1.5); //设置头部高度 //m_List_Rule.SetHeaderFontHW(16,0); //设置头部字体高度,和宽度,0表示缺省,自适应 //m_List_Record.SetHeaderTextColor(RGB(0,0,0)); //设置头部字体颜色 //m_List_Rule.SetTextColor(RGB(0,255,255)); //设置文本颜色 m_List_Card.SetHeaderBKColor(213,222,242,8); //设置头部背景色 ////m_List_Rule.SetFontHW(15,0); //设置字体高度,和宽度,0表示缺省宽度 //m_List_Rule.SetColTextColor(2,RGB(255,255,100)); //设置列文本颜色 //m_List_Rule.SetItemTextColor(3,1,RGB(255,0,0)); //设置单元格字体颜色 m_List_Card.InsertColumn(0,g_strIndex,LVCFMT_LEFT,40); m_List_Card.InsertColumn(1,g_strName,LVCFMT_LEFT,120); m_List_Card.InsertColumn(2,g_strCardNumber,LVCFMT_LEFT,100); m_List_Card.InsertColumn(3,g_strClass,LVCFMT_LEFT,100); m_List_Card.InsertColumn(4,g_strJobNumber,LVCFMT_LEFT,60); m_List_Card.InsertColumn(5,g_strInfomation,LVCFMT_LEFT,525); SetWindowLong(m_List_Card.m_hWnd ,GWL_EXSTYLE,WS_EX_CLIENTEDGE); m_List_Card.SetExtendedStyle(LVS_EX_GRIDLINES); //设置扩展风格为网格 ::SendMessage(m_List_Card.m_hWnd, LVM_SETEXTENDEDLISTVIEWSTYLE,LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT); m_List_Card.SetRowHeigt( 20 ); return 0; } void CDlg_Card::SetPos( CRect rect ) { CRect rc1; rc1.left = 0; rc1.right = rc1.left+rect.Width(); rc1.top = 0; rc1.bottom = rc1.top+rect.Height()-4; this->MoveWindow( rc1 ); CRect rc2; rc2.left = rc1.left + 10; rc2.right = rc1.right - 10; rc2.top = 10; rc2.bottom = rc1.bottom - 40; m_List_Card.MoveWindow( rc2 ); CRect rc17; rc17.right = rc2.right-20; rc17.left = rc17.right-120; rc17.top = rc2.bottom+5; rc17.bottom = rc1.bottom-5; m_Btn_Delete.MoveWindow( rc17 ); CRect rc18; rc18.right = rc17.left-5; rc18.left = rc18.right-120; rc18.top = rc2.bottom+5; rc18.bottom = rc1.bottom-5; m_Btn_Modify.MoveWindow( rc18 ); CRect rc19; rc19.right = rc18.left-5; rc19.left = rc19.right-120; rc19.top = rc2.bottom+5; rc19.bottom = rc1.bottom-5; m_Btn_Add.MoveWindow( rc19 ); CRect rc20; rc20.right = rc19.left-5; rc20.left = rc20.right-120; rc20.top = rc2.bottom+5; rc20.bottom = rc1.bottom-5; m_Btn_Exput.MoveWindow( rc20 ); CRect rc21; rc21.right = rc20.left-5; rc21.left = rc21.right-120; rc21.top = rc2.bottom+5; rc21.bottom = rc1.bottom-5; m_Btn_Input.MoveWindow( rc21 ); } void CDlg_Card::OnBnClickedBtnAdd() { CDlg_CardProPerty dlg; dlg.m_nOperate = ADD; if( dlg.DoModal()==IDOK ) { CString sIndex; sIndex.Format("%d",dlg.m_nID ); m_List_Card.InsertItem( 0,sIndex ); m_List_Card.SetItemText( 0,1," "+dlg.m_sEdit_Name ); m_List_Card.SetItemText( 0,2," "+dlg.m_sEdit_CardNumber ); m_List_Card.SetItemText( 0,3," "+dlg.m_sEdit_Class ); m_List_Card.SetItemText( 0,4," "+dlg.m_sEdit_JobNumber ); m_List_Card.SetItemText( 0,5," "+dlg.m_sEdit_Remarks ); for( int i=0;i0 ) //{ // CString sIndex; // sIndex.Format("%d",nIndex ); // m_List_Card.InsertItem( 0,sIndex ); // m_List_Card.SetItemText( 0,1,m_sEdit_Name ); // m_List_Card.SetItemText( 0,2,m_sEdit_CardNumber ); // m_List_Card.SetItemText( 0,3,m_sEdit_Class ); // m_List_Card.SetItemText( 0,4,m_sEdit_JobNumber ); // m_List_Card.SetItemText( 0,5,m_sEdit_Remarks ); // for( int i=0;i=iListCount || nListSel==-1) { return; } CString str; str = m_List_Card.GetItemText( nListSel,0 ); CDlg_CardProPerty dlg; dlg.m_nOperate = EDIT; dlg.m_nID = atoi( str ); if( dlg.DoModal()==IDOK ) { m_List_Card.SetItemText( nListSel,1," "+dlg.m_sEdit_Name ); m_List_Card.SetItemText( nListSel,2," "+dlg.m_sEdit_CardNumber ); m_List_Card.SetItemText( nListSel,3," "+dlg.m_sEdit_Class ); m_List_Card.SetItemText( nListSel,4," "+dlg.m_sEdit_JobNumber ); m_List_Card.SetItemText( nListSel,5," "+dlg.m_sEdit_Remarks ); for( int i=0;i=iListCount || nListSel==-1) { MessageBox( g_strChooseThenDel, g_strTip, MB_ICONINFORMATION); return; } CString str; if( MessageBox( "确定要删除所选的卡信息?", g_strTip, MB_YESNO|MB_ICONINFORMATION)!=IDYES ) return; pos = m_List_Card.GetFirstSelectedItemPosition(); if(NULL == pos) { } else { while(pos) { int nItem = m_List_Card.GetNextSelectedItem(pos); str = m_List_Card.GetItemText( nItem,0 ); if( DelItemFromTable( "t_door_card","id",atoi(str) ) ) m_List_Card.DeleteItem( nItem ); for( int i=0;i=iListCount || nListSel==-1) { return; } CString str; str = m_List_Card.GetItemText( nListSel,0 ); ADOCtrl.ReadCard( atoi(str),m_sEdit_Name,m_sEdit_CardNumber,m_sEdit_Class,m_sEdit_JobNumber,m_sEdit_Remarks ); UpdateData(false);*/ *pResult = 0; } HBRUSH CDlg_Card::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: 在此更改 DC 的任何属性 int nID = pWnd->GetDlgCtrlID(); //HBRUSH B1 = CreateSolidBrush( g_ColorGround ); HBRUSH B1 = CreateSolidBrush( g_Color3 ); if(nCtlColor == CTLCOLOR_STATIC) { // pOldFont = pDC->SelectObject(&m_font1); pDC->SetTextColor(RGB(0, 0, 0)); pDC->SetBkMode( TRANSPARENT ); //pDC->SelectObject(pOldFont); DeleteObject( B1 ); return B1; } DeleteObject( B1 ); // TODO: 如果默认的不是所需画笔,则返回另一个画笔 return hbr; } BOOL CDlg_Card::OnEraseBkgnd(CDC* pDC) { CBrush br1; CRect rect; GetWindowRect(&rect); ScreenToClient(&rect); br1.CreateSolidBrush(g_Color3); pDC->FillRect(rect,&br1); DeleteObject( br1 ); return TRUE; //return CDialog::OnEraseBkgnd(pDC); } void CDlg_Card::OnNMDblclkListControl(NMHDR *pNMHDR, LRESULT *pResult) { // TODO: 在此添加控件通知处理程序代码 int iListCount = m_List_Card.GetItemCount(); POSITION pos = m_List_Card.GetFirstSelectedItemPosition(); int nListSel = m_List_Card.GetNextSelectedItem(pos); if(nListSel>=iListCount || nListSel==-1) { return; } CString str; str = m_List_Card.GetItemText( nListSel,0 ); CDlg_CardProPerty dlg; dlg.m_nOperate = EDIT; dlg.m_nID = atoi( str ); if( dlg.DoModal()==IDOK ) { m_List_Card.SetItemText( nListSel,1," "+dlg.m_sEdit_Name ); m_List_Card.SetItemText( nListSel,2," "+dlg.m_sEdit_CardNumber ); m_List_Card.SetItemText( nListSel,3," "+dlg.m_sEdit_Class ); m_List_Card.SetItemText( nListSel,4," "+dlg.m_sEdit_JobNumber ); m_List_Card.SetItemText( nListSel,5," "+dlg.m_sEdit_Remarks ); for( int i=0;i list1,list2,list3,list4,list5,list6; list::iterator it_list1,it_list2,it_list3,it_list4,it_list5,it_list6; if(!_stricmp(g_strDBType, "PGSQL")) { sprintf(strSQLText, "select id, susername, scardnumber,sclass,sjobnumber,sremarks from t_door_card order by id"); } else { sprintf(strSQLText, "select id, susername, scardnumber,sclass,sjobnumber,sremarks from t_door_card order by id"); } int nRet = GetFieldValueList6( strSQLText,list1,list2,list3,list4,list5,list6); if( 0 == list1.size() || 0 == list2.size() ) { return ; } if( nRet != -1 ) { int nIndex = 0; CString sID,sUserName,sCardNumber,sClass,sJobNumber,sRemarks; CString sTemp; for( it_list1=list1.begin(),it_list2=list2.begin(),it_list3=list3.begin(), it_list4=list4.begin(),it_list5=list5.begin(),it_list6=list6.begin(); it_list1!=list1.end() && it_list2!=list2.end() && it_list3!=list3.end() && it_list4!=list4.end() && it_list5!=list5.end() && it_list6!=list6.end(); it_list1++,it_list2++,it_list3++, it_list4++,it_list5++,it_list6++ ) { sID = (*it_list1).c_str(); sUserName = (*it_list2).c_str(); sCardNumber = (*it_list3).c_str(); sClass = (*it_list4).c_str(); sJobNumber = (*it_list5).c_str(); sRemarks = (*it_list6).c_str(); int n=0; pListCtrl->InsertItem( n,sID ); pListCtrl->SetItemText( n,1," "+sUserName ); pListCtrl->SetItemText( n,2," "+sCardNumber ); pListCtrl->SetItemText( n,3," "+sClass ); pListCtrl->SetItemText( n,4," "+sJobNumber ); pListCtrl->SetItemText( n,5," "+sRemarks ); g_Card[nIndex].nID = atoi( sID ); g_Card[nIndex].sName = sUserName; g_Card[nIndex].nNumber = atol( sCardNumber ); g_Card[nIndex].sClass = sClass; g_Card[nIndex].sJobNumber = sJobNumber; g_Card[nIndex].sRemarks = sRemarks; nIndex++; } } for( it_list1=list1.begin(),it_list2=list2.begin(),it_list3=list3.begin(),it_list4=list4.begin(),it_list5=list5.begin(),it_list6=list6.begin(); it_list1!=list1.end(),it_list2!=list2.end(),it_list3!=list3.end(),it_list4!=list4.end(),it_list5!=list5.end(),it_list6!=list6.end();) { list1.erase(it_list1++); list2.erase(it_list2++); list3.erase(it_list3++); list4.erase(it_list4++); list5.erase(it_list5++); list6.erase(it_list6++); } }