?? admindlg.cpp
字號:
// AdminDlg.cpp : implementation file
//
#include "stdafx.h"
#include "rmtool.h"
#include "AdminDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#include "AccountAuthority.h"
/////////////////////////////////////////////////////////////////////////////
// CAdminDlg dialog
CAdminDlg cAdmindlg;
CAdminDlg::CAdminDlg(CWnd* pParent /*=NULL*/)
: CDialog(CAdminDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CAdminDlg)
m_ID = _T("");
m_IP = _T("");
m_Name = _T("");
m_Password = _T("");
m_ToDay = 0;
m_ToMonth = 0;
m_ToYear = 0;
m_FromDay = 0;
m_FromMonth = 0;
m_FromYear = 0;
m_Type = 0;
m_szAuthorityType = _T("");
//}}AFX_DATA_INIT
}
void CAdminDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAdminDlg)
DDX_Control(pDX, IDC_LIST_LOG, c_Log);
DDX_Control(pDX, IDC_LIST_ACCOUNT, c_Account);
DDX_Text(pDX, IDC_ID, m_ID);
DDX_Text(pDX, IDC_IP, m_IP);
DDX_Text(pDX, IDC_NAME, m_Name);
DDX_Text(pDX, IDC_PASSWORD, m_Password);
DDX_Text(pDX, IDC_TO_DAY, m_ToDay);
DDX_Text(pDX, IDC_TO_MONTH, m_ToMonth);
DDX_Text(pDX, IDC_TO_YEAR, m_ToYear);
DDX_Text(pDX, IDC_FROM_DAY, m_FromDay);
DDX_Text(pDX, IDC_FROM_MONTH, m_FromMonth);
DDX_Text(pDX, IDC_FROM_YEAR, m_FromYear);
DDX_Text(pDX, IDC_TYPE, m_Type);
DDV_MinMaxUInt(pDX, m_Type, 0, 4294967295);
DDX_Text(pDX, IDC_AUTHORITY_TYPE, m_szAuthorityType);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAdminDlg, CDialog)
//{{AFX_MSG_MAP(CAdminDlg)
ON_BN_CLICKED(IDC_NEW_ACCOUNT, OnNewAccount)
ON_BN_CLICKED(IDC_DELETE, OnDelete)
ON_BN_CLICKED(IDC_SEARCH, OnSearch)
ON_BN_CLICKED(IDC_OK, OnOk)
ON_NOTIFY(NM_CLICK, IDC_LIST_ACCOUNT, OnClickListAccount)
ON_BN_CLICKED(IDC_BTN_SET_AUTHORITY, OnBtnSetAuthority)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CAdminDlg message handlers
BOOL CAdminDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
char *Column[4] = {"ID", "Name", "Authority", "IP"};
int ColumnSize[4] = {100, 70, 50, 100};
c_Log.SetExtendedStyle(LVS_EX_FULLROWSELECT);
c_Account.SetExtendedStyle(LVS_EX_FULLROWSELECT);
LV_COLUMN col;
for(int i=0 ; i<4 ; i++)
{
//ListView 牧飄費(fèi) 檬扁拳.. 漠煩汲瀝
col.mask = LVCF_TEXT | LVCF_WIDTH | LVCF_SUBITEM | LVCF_FMT;
col.fmt = LVCFMT_LEFT;
col.cx = ColumnSize[i];
col.pszText = Column[i];
col.cchTextMax = 100;
col.iSubItem = i;
c_Account.InsertColumn(i, &col);
}
char *Column2[6] = {"No", "ID", "Type", "Date", "ClientIP", "Log"};
int ColumnSize2[6] = {50, 70, 50, 100, 100, 1000};
for(i=0 ; i<6 ; i++)
{
//ListView 牧飄費(fèi) 檬扁拳.. 漠煩汲瀝
col.mask = LVCF_TEXT | LVCF_WIDTH | LVCF_SUBITEM | LVCF_FMT;
col.fmt = LVCFMT_LEFT;
col.cx = ColumnSize2[i];
col.pszText = Column2[i];
col.cchTextMax = 100;
col.iSubItem = i;
c_Log.InsertColumn(i, &col);
}
//拌瀝 孽府..
WCHAR wszQuery[ 0xff ];
swprintf(wszQuery, L"select * from rm_log_info");
LoginAccount account[ 50 ];
int ret = g_pDb->OpenRecord(wszQuery, account, (DWORD)(50), (BYTE)TOTAL_DB);
if(ret <0)
{
MessageBox("Fail to query RM_LOG_INFO","Error");
goto lb_exit;
}
else if(ret == 50)
MessageBox("MAX 50","Error"); //kyo 020314
//MessageBox("彌措 50俺鱉瘤狼 拌瀝瀝焊父 免仿鄧聰促.","Error");
LVITEM item;
char temp[ 64 ];
for(i=0; i<ret ; i++)
{
//id
item.mask = LVIF_TEXT | LVIF_PARAM;
item.pszText = account[i].id;
item.iItem = i; //青鍋齲
item.iSubItem = 0; //凱鍋齲
//item.lParam = account[i].;
c_Account.InsertItem(&item);
//撈撫
item.mask = LVIF_TEXT;
item.iSubItem = 1;
item.pszText = account[i].name;
c_Account.SetItem(&item);
//鼻茄
item.mask = LVIF_TEXT;
item.iSubItem = 2;
item.pszText = _itoa(account[i].logintype, temp, 10);
c_Account.SetItem(&item);
//IP
item.mask = LVIF_TEXT;
item.iSubItem = 3;
item.pszText = account[i].ip;
c_Account.SetItem(&item);
}
m_IP = "0"; //kyo 020725 ip甫 汲瀝竅瘤 臼綽促.
lb_exit:
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
BOOL CAdminDlg::IsExistedAccout( LPSTR szAccountName)
{
char szQuery[ 0xff ];
WCHAR wszQuery[ 0xff ];
sprintf(szQuery, "select [ID] from RM_LOG_INFO where [ID] = '%s'", szAccountName );
g_pDb->KSCToUnicode(szQuery,wszQuery);
char tmp[CHARACTER_NAME_SIZE];
int ret = g_pDb->OpenRecord(wszQuery, tmp, CHARACTER_NAME_SIZE, (BYTE)TOTAL_DB);
if ( ret > 0 )
return TRUE;
else
return FALSE;
}
void CAdminDlg::OnNewAccount()
{
// TODO: Add your control notification handler code here
UpdateData();
if( m_ID.GetLength() <= 0 ) { AfxMessageBox( "Writed ID" ); return; }
else if( m_Name.GetLength() <= 0 ) { AfxMessageBox( "Writed Name" );return; }
//else if( m_Password.GetLength() <= 0 ) AfxMessageBox( "Writed Password" );
else if( m_Password.Compare("*********") ==0 ) { AfxMessageBox( "Change Password" );return; }
if( TRUE == IsExistedAccout( m_ID.GetBuffer(0) ) )
{
AfxMessageBox( "Allready Existed Same ID!!" );
return;
}
char szQuery[ 0xff ];
WCHAR wszQuery[ 0xff ];
sprintf(szQuery, "insert into RM_LOG_INFO ([ID],[Password],[Name],LoginType,IP) values ('%s',"
"'%s','%s',%d,'%s')", m_ID, m_Password, m_Name, m_Type, m_IP);
g_pDb->KSCToUnicode(szQuery,wszQuery);
int ret = g_pDb->ExecuteSQL(wszQuery, (BYTE)TOTAL_DB);
if(ret <= 0)
MessageBox("Fail to insert new account!","Error");
else
{
int i = c_Account.GetItemCount(); char temp[64];
LVITEM item;
//id
item.mask = LVIF_TEXT | LVIF_PARAM;
item.pszText = m_ID.GetBuffer( m_ID.GetLength() );
item.iItem = i; //青鍋齲
item.iSubItem = 0; //凱鍋齲
//item.lParam = account[i].;
c_Account.InsertItem(&item);
//撈撫
item.mask = LVIF_TEXT;
item.iSubItem = 1;
item.pszText = m_Name.GetBuffer( m_Name.GetLength() );
c_Account.SetItem(&item);
//鼻茄
item.mask = LVIF_TEXT;
item.iSubItem = 2;
item.pszText = _itoa(m_Type,temp,10);
c_Account.SetItem(&item);
//IP
item.mask = LVIF_TEXT;
item.iSubItem = 3;
item.pszText = m_IP.GetBuffer( m_IP.GetLength() );
c_Account.SetItem(&item);
//MessageBox("貨肺款 拌瀝撈 眠啊登菌嚼聰促!","Success");
MessageBox("Added New Account!","Success"); //kyo 020314
}
}
void CAdminDlg::OnDelete()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
char szQuery[ 0xff ];
WCHAR wszQuery[ 0xff ];
sprintf(szQuery, "delete from RM_LOG_INFO where [ID]='%s'", m_ID);
g_pDb->KSCToUnicode(szQuery,wszQuery);
int ret = g_pDb->ExecuteSQL(wszQuery, (BYTE)TOTAL_DB);
if(ret > 0)
{
//MessageBox("拌瀝撈 昏力登菌嚼聰促!","Success");
MessageBox("Deleted Account!","Success");//kyo 020314
c_Account.DeleteAllItems();
//貨肺 孽府~
swprintf(wszQuery, L"select * from rm_log_info");
LoginAccount account[ 50 ];
int ret = g_pDb->OpenRecord(wszQuery, account, 50, (BYTE)TOTAL_DB);
if(ret <0)
{
MessageBox("Fail to query RM_LOG_INFO","Error");
return;
}
else if(ret == 50)
MessageBox("MAX 50","Error");
LVITEM item;
char temp[ 64 ];
for(int i=0; i<ret ; i++)
{
//id
item.mask = LVIF_TEXT | LVIF_PARAM;
item.pszText = account[i].id;
item.iItem = i; //青鍋齲
item.iSubItem = 0; //凱鍋齲
//item.lParam = account[i].;
c_Account.InsertItem(&item);
//撈撫
item.mask = LVIF_TEXT;
item.iSubItem = 1;
item.pszText = account[i].name;
c_Account.SetItem(&item);
//鼻茄
item.mask = LVIF_TEXT;
item.iSubItem = 2;
item.pszText = _itoa(account[i].logintype, temp, 10);
c_Account.SetItem(&item);
//IP
item.mask = LVIF_TEXT;
item.iSubItem = 3;
item.pszText = account[i].ip;
c_Account.SetItem(&item);
}
}
}
void CAdminDlg::OnSearch()
{
// TODO: Add your control notification handler code here
UpdateData();
// char szQuery[ 0xff ];
WCHAR wszQuery[ 0xff ];
swprintf(wszQuery, L"select * from rm_log where YEAR(Date) >= %d and YEAR(Date) <= %d "
L"and MONTH(Date) >=%d and MONTH(Date) <=%d and DAY(Date) >=%d "
L"and DAY(Date) <=%d", m_FromYear, m_ToYear, m_FromMonth, m_ToMonth,
m_FromDay, m_ToDay);
LogData data[ 200 ];
int ret = g_pDb->OpenRecord(wszQuery, data, 200, (BYTE)TOTAL_DB);
if(ret <0)
{
MessageBox("Fail to query RM_LOG","Error");
return;
}
else if(ret == 0)
{
//MessageBox("朝樓俊 秦寸竅綽 肺弊瀝焊啊 絕嚼聰促.","Info");
MessageBox("No Data Info.","Info");
return;
}
else if(ret == 200)
MessageBox("MAX 200","Error");
c_Log.DeleteAllItems();
LVITEM item;
char temp[ 0xff ];
for(int i=0; i<ret ; i++)
{
//No
item.mask = LVIF_TEXT | LVIF_PARAM;
item.pszText = _itoa(data[i].index,temp,10);
item.iItem = i; //青鍋齲
item.iSubItem = 0; //凱鍋齲
//item.lParam = account[i].;
c_Log.InsertItem(&item);
//ID
item.mask = LVIF_TEXT;
item.iSubItem = 1;
item.pszText = data[i].id;
c_Log.SetItem(&item);
//Type
item.mask = LVIF_TEXT;
item.iSubItem = 2;
item.pszText = _itoa(data[i].type, temp, 10);
c_Log.SetItem(&item);
//Date
sprintf(temp,"%dYear %dMon %dDay - %dO'clock %dMin %dSec",data[i].date.year, data[i].date.month, data[i].date.day,
data[i].date.hour, data[i].date.minute, data[i].date.second);
item.mask = LVIF_TEXT;
item.iSubItem = 3;
item.pszText = temp;
c_Log.SetItem(&item);
//ClientIp
item.mask = LVIF_TEXT;
item.iSubItem = 4;
item.pszText = data[i].ip;
c_Log.SetItem(&item);
//Log
item.mask = LVIF_TEXT;
item.iSubItem = 5;
item.pszText = data[i].log;
c_Log.SetItem(&item);
}
}
void CAdminDlg::OnOk()
{
// TODO: Add your control notification handler code here
EndDialog(IDOK);
}
void CAdminDlg::OnClickListAccount(NMHDR* pNMHDR, LRESULT* pResult)
{
pNMHDR;
// TODO: Add your control notification handler code here
int nItem;
POSITION pos = c_Account.GetFirstSelectedItemPosition();
if (pos == NULL)
{
MessageBox("No items were selected!");
ClearEdit();
}
else
{
while (pos)
{
//急琶等 親格甸闌 備茄促.
nItem = c_Account.GetNextSelectedItem(pos);
m_ID = c_Account.GetItemText(nItem, 0);
m_Name = c_Account.GetItemText(nItem, 1);
m_Type = atoi(c_Account.GetItemText(nItem, 2));
m_IP = c_Account.GetItemText(nItem, 3);
GetAccountNameByValue( m_Type, m_szAuthorityType.GetBuffer(0) );
m_Password = "*********";
}
}
UpdateData(FALSE);
*pResult = 0;
}
void CAdminDlg::ClearEdit()
{
//m_Item = "";
m_ID = "";
m_Name = "";
m_Type = 0;
m_IP = "";
m_Password = "";
m_szAuthorityType = "";
}
void CAdminDlg::OnBtnSetAuthority()
{
// TODO: Add your control notification handler code here
if( cAuthority.DoModal() == IDOK)
{
m_Type = cAuthority.m_dwAuthority;
}
else
return;
char szAuName[CHARACTER_NAME_SIZE];
if( FALSE == GetAccountNameByValue( m_Type, szAuName ) ) return;
GetDlgItem( IDC_AUTHORITY_TYPE )->SetWindowText( szAuName );
//int zz = GetUserAuthority();
//UpdateData(FALSE);
}
BOOL CAdminDlg::GetAccountNameByValue( UINT iType, LPSTR szAccountName )
{
char Sql[ 0xff ];
WCHAR wSql[ 0xff ];
sprintf( Sql, "select type_name from RM_Authority_set where type_value = '%d'", iType);
g_pDb->KSCToUnicode(Sql, wSql);
char szAuName[CHARACTER_NAME_SIZE];
int ret = g_pDb->OpenRecord(wSql, szAuName, CHARACTER_NAME_SIZE, (BYTE)TOTAL_DB);
if( strlen( szAuName ) > 0 )
if( ret == 1 )
{
strcpy( szAccountName, szAuName);
return TRUE;
}
else if( ret < 0)
AfxMessageBox( "Query Error : Select ~ RM_Authority_set" );
else if( ret == 0 )
AfxMessageBox( "Have no Authority Type ");
strcpy( szAccountName, "");
return FALSE;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -