123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232 |
- // Dlg_CardInput.cpp : 实现文件
- //
- #include "stdafx.h"
- #include "StoneU_Door.h"
- #include "Dlg_CardInput.h"
- #include ".\dlg_cardinput.h"
- #include "GlobalFun.h"
- #include "Global.h"
- #include "mdlProject.h"
- #include "DBConnection.h"
- // CDlg_CardInput 对话框
- IMPLEMENT_DYNAMIC(CDlg_CardInput, CDialog)
- CDlg_CardInput::CDlg_CardInput(CWnd* pParent /*=NULL*/)
- : CDialog(CDlg_CardInput::IDD, pParent)
- {
- }
- CDlg_CardInput::~CDlg_CardInput()
- {
- }
- void CDlg_CardInput::DoDataExchange(CDataExchange* pDX)
- {
- CDialog::DoDataExchange(pDX);
- DDX_Control(pDX, IDC_LIST, m_ctrlList);
- DDX_Control(pDX, IDC_BTN_DELETE, m_Btn_Del);
- DDX_Control(pDX, IDC_BTN_IMPORT, m_Btn_Add);
- DDX_Control(pDX, IDCANCEL, m_Btn_Exit);
- }
- BEGIN_MESSAGE_MAP(CDlg_CardInput, CDialog)
- ON_BN_CLICKED(IDC_BTN_DELETE, OnBnClickedBtnDelete)
- ON_BN_CLICKED(IDC_BTN_IMPORT, OnBnClickedBtnImport)
- ON_WM_CTLCOLOR()
- ON_WM_ERASEBKGND()
- END_MESSAGE_MAP()
- // CDlg_CardInput 消息处理程序
- BOOL CDlg_CardInput::OnInitDialog()
- {
- CDialog::OnInitDialog();
- // TODO: 在此添加额外的初始化
- GetDlgItem(IDC_STA_MSG)->SetWindowText( "注:Excel表中的第一行数据不在操作范围,如果第一行是数据,请在第一行之前插入空行。\r\n "\
- " 列表的第一列为用户姓名,第二列为卡号码,第三列为部门,第四列为工号,第五列为备注。" );
- UpdateData( false );
- InitList();
- ReadExcelToList( &m_ctrlList,m_sExcelPath );
- return TRUE; // return TRUE unless you set the focus to a control
- // 异常: OCX 属性页应返回 FALSE
- }
- int CDlg_CardInput::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_ctrlList.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_ctrlList.InsertColumn(0,"姓名",LVCFMT_LEFT,130);
- m_ctrlList.InsertColumn(1,g_strCardNumber,LVCFMT_LEFT,130);
- m_ctrlList.InsertColumn(2,g_strClass,LVCFMT_LEFT,130);
- m_ctrlList.InsertColumn(3,g_strJobNumber,LVCFMT_LEFT,130);
- m_ctrlList.InsertColumn(4,"备注",LVCFMT_LEFT,200);
- SetWindowLong(m_ctrlList.m_hWnd ,GWL_EXSTYLE,WS_EX_CLIENTEDGE);
- m_ctrlList.SetExtendedStyle(LVS_EX_GRIDLINES); //设置扩展风格为网格
- ::SendMessage(m_ctrlList.m_hWnd, LVM_SETEXTENDEDLISTVIEWSTYLE,LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);
- m_ctrlList.SetRowHeigt( 20 );
- return 0;
- }
- void CDlg_CardInput::OnBnClickedBtnDelete()
- {
- int iListCount = m_ctrlList.GetItemCount();
- POSITION pos = m_ctrlList.GetFirstSelectedItemPosition();
- int nListSel = m_ctrlList.GetNextSelectedItem(pos);
- if(nListSel>=iListCount || nListSel==-1)
- {
- MessageBox( g_strChooseThenDel, g_strTip, MB_ICONINFORMATION);
- return;
- }
- if( MessageBox( "确定要删除所选的行?", g_strTip, MB_YESNO|MB_ICONINFORMATION)!=IDYES )
- return;
- pos = m_ctrlList.GetFirstSelectedItemPosition();
- if(NULL == pos)
- {
- }
- else
- {
- while(pos)
- {
- int nItem = m_ctrlList.GetNextSelectedItem(pos);
- m_ctrlList.DeleteItem(nItem);
- pos = m_ctrlList.GetFirstSelectedItemPosition();
- }
- }
- }
- void CDlg_CardInput::OnBnClickedBtnImport()
- {
- UpdateData();
- int nIndex=0;
- CString s[5];
- for( int i=m_ctrlList.GetItemCount()-1;i>=0;i-- )
- {
- s[0] = m_ctrlList.GetItemText( i,0 ); s[0] = s[0].TrimLeft();
- s[1] = m_ctrlList.GetItemText( i,1 ); s[1] = s[1].TrimLeft();
- s[2] = m_ctrlList.GetItemText( i,2 ); s[2] = s[2].TrimLeft();
- s[3] = m_ctrlList.GetItemText( i,3 ); s[3] = s[3].TrimLeft();
- s[4] = m_ctrlList.GetItemText( i,4 ); s[4] = s[4].TrimLeft();
- nIndex = InsertCardInfo_INPUT( (char *)(LPCTSTR)s[0],(char *)(LPCTSTR)s[1],(char *)(LPCTSTR)s[2],(char *)(LPCTSTR)s[3],(char *)(LPCTSTR)s[4] );
- if( -1!=nIndex )
- {
- m_ctrlList.DeleteItem( i );
- CString sIndex;
- sIndex.Format("%d",nIndex );
- g_pDlgMain->m_pDlg_Card->m_List_Card.InsertItem( 0,sIndex );
- g_pDlgMain->m_pDlg_Card->m_List_Card.SetItemText( 0,1," "+s[0] );
- g_pDlgMain->m_pDlg_Card->m_List_Card.SetItemText( 0,2," "+s[1] );
- g_pDlgMain->m_pDlg_Card->m_List_Card.SetItemText( 0,3," "+s[2] );
- g_pDlgMain->m_pDlg_Card->m_List_Card.SetItemText( 0,4," "+s[3] );
- g_pDlgMain->m_pDlg_Card->m_List_Card.SetItemText( 0,5," "+s[4] );
- for( int i=0;i<CARD_NUM_MAX;i++ )
- {
- if( g_Card[i].nID<0 )
- {
- g_Card[i].nID = nIndex;
- g_Card[i].sName = s[0];
- g_Card[i].nNumber = atoi( s[1] );
- g_Card[i].sClass = s[2];
- g_Card[i].sJobNumber = s[3];
- g_Card[i].sRemarks = s[4];
- break;
- }
- }
- }
- }
- if( m_ctrlList.GetItemCount()==0 )
- OnOK();
- else
- {
- CString sShow;
- sShow.Format("%s","有重复的姓名或者有重复的卡号码,请点击相应的项编辑");
- MessageBox( sShow, g_strTip, MB_ICONINFORMATION);
- m_ctrlList.SetItemType( 0,TYPE_EDIT );
- m_ctrlList.SetItemType( 1,TYPE_EDIT );
- }
- }
- HBRUSH CDlg_CardInput::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 );
- CFont font;
- font.CreatePointFont( 120,"宋体" );
- if(nID == IDC_STA_MSG)
- {
- pDC->SelectObject(&font);
- pDC->SetTextColor(RGB(255, 0, 0));
- pDC->SetBkMode( TRANSPARENT );
- //pDC->SelectObject(pOldFont);
- DeleteObject( font );
- DeleteObject( B1 );
- return B1;
- }
- DeleteObject( font );
- DeleteObject( B1 );
- // TODO: 如果默认的不是所需画笔,则返回另一个画笔
- return hbr;
- }
- BOOL CDlg_CardInput::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);
- }
|