📄 dlggh.cpp
字号:
// DlgGH.cpp : implementation file
//
#include "stdafx.h"
#include "SellMan.h"
#include "DlgGH.h"
#include "TabGH.h"
#include "TabQX.h"
#include "TabGQ.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDlgGH dialog
extern _ConnectionPtr connection;
extern BOOL bConnected;
CDlgGH::CDlgGH(CWnd* pParent /*=NULL*/)
: CDialog(CDlgGH::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgGH)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
m_nOperType = MODE_APPEND;
}
void CDlgGH::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgGH)
DDX_Control(pDX, IDC_LIST_SOURCEQX, m_list_sourceqx);
DDX_Control(pDX, IDC_LIST_HAVEQX, m_list_haveqx);
DDX_Control(pDX, IDC_ED_GHYGXM, m_ed_ghygxm);
DDX_Control(pDX, IDC_ED_GHYGMMCK, m_ed_ghygmmck);
DDX_Control(pDX, IDC_ED_GHYGMM, m_ed_ghygmm);
DDX_Control(pDX, IDC_ED_GHYGBH, m_ed_ghygbh);
DDX_Control(pDX, IDC_ED_GHDLXM, m_ed_ghdlxm);
DDX_Control(pDX, IDC_ED_GHBZXX, m_ed_ghbzxx);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgGH, CDialog)
//{{AFX_MSG_MAP(CDlgGH)
ON_BN_CLICKED(ID_BT_CHANGEPWD, OnBtChangepwd)
ON_BN_CLICKED(ID_BT_DELETE, OnBtDelete)
ON_BN_CLICKED(IDC_BT_NEXT, OnBtNext)
ON_BN_CLICKED(IDC_BT_ADDONE, OnBtAddone)
ON_BN_CLICKED(IDC_BT_ADDALL, OnBtAddall)
ON_BN_CLICKED(IDC_BT_RMONE, OnBtRmone)
ON_BN_CLICKED(IDC_BT_RMALL, OnBtRmall)
ON_NOTIFY(NM_DBLCLK, IDC_LIST_SOURCEQX, OnDblclkListSourceqx)
ON_NOTIFY(NM_DBLCLK, IDC_LIST_HAVEQX, OnDblclkListHaveqx)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgGH message handlers
BOOL CDlgGH::OnInitDialog()
{
CDialog::OnInitDialog();
m_list_sourceqx.InsertColumn( 0, "权限", LVCFMT_LEFT, 195 );
m_list_haveqx.InsertColumn( 0, "权限", LVCFMT_LEFT, 195 );
int index = 0;
int count = 0;
DWORD dwData = 0;
char szSQL[ 255 ];
CTabQX tabqx;
CTabGQ tabgq;
try
{
tabqx.Open( "order by qxqxhm" );
while( tabqx.IsOpen() && !tabqx.IsEOF() )
{
m_list_sourceqx.InsertItem( index, tabqx.QXQXMC.GetValue() );
m_list_sourceqx.SetItemData( index, atol( tabqx.QXQXHM.GetValue() ) );
index ++;
tabqx.MoveNext();
}
if( m_nOperType == MODE_MODIFY )
{
sprintf( szSQL, "where gqghhm = %s", strghyghm );
tabgq.Open( szSQL );
while( tabgq.IsOpen() && !tabgq.IsEOF() )
{
index = m_list_haveqx.GetItemCount();
sprintf( szSQL, "where qxqxhm = %s", tabgq.GQQXHM.GetValue() );
tabqx.Open( szSQL );
m_list_haveqx.InsertItem( index, tabqx.QXQXMC.GetValue() );
m_list_haveqx.SetItemData( index, atol( tabgq.GQQXHM.GetValue() ) );
tabgq.MoveNext();
}
index = m_list_haveqx.GetItemCount();
for( int i = 0; i < index; i ++ )
{
dwData = m_list_haveqx.GetItemData( i );
count = m_list_sourceqx.GetItemCount();
for( int j = count - 1; j >= 0; j ++ )
{
if( m_list_sourceqx.GetItemData( j ) == dwData )
{
m_list_sourceqx.DeleteItem( j );
break;
}
}
}
m_ed_ghygxm.SetWindowText( strghygxm );
m_ed_ghygbh.SetWindowText( strghygbh );
m_ed_ghdlxm.SetWindowText( strghdlxm );
m_ed_ghbzxx.SetWindowText( strghbzxx );
}
else
{
}
}
catch( _com_error &e )
{
AfxMessageBox( e.ErrorMessage() );
}
catch( ... )
{
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CDlgGH::OnOK()
{
BOOL bRet = FALSE;
char szSQL[ 255 ];
CTabGH tabgh;
strghygmm = " ";
m_ed_ghygxm.GetWindowText( strghygxm );
m_ed_ghygbh.GetWindowText( strghygbh );
m_ed_ghdlxm.GetWindowText( strghdlxm );
m_ed_ghbzxx.GetWindowText( strghbzxx );
m_ed_ghygmm.GetWindowText( strghygmm );
m_ed_ghygmmck.GetWindowText( strghygmmck );
strghygxm.TrimLeft();
strghygxm.TrimRight();
strghygbh.TrimLeft();
strghygbh.TrimRight();
if( strghygxm.IsEmpty() )
{
AfxMessageBox( "姓名不能为空!" );
return;
}
if( strghygbh.IsEmpty() )
{
AfxMessageBox( "工号不能为空!" );
return;
}
if( strghygmm.Compare( strghygmmck ) )
{
AfxMessageBox( "密码和确认密码不一致,请重新输入!" );
m_ed_ghygmm.SetWindowText( "" );
m_ed_ghygmmck.SetWindowText( "" );
return;
}
try
{
connection->BeginTrans();
if( m_nOperType == MODE_MODIFY )
{
sprintf( szSQL, "where ghyghm = %s", strghyghm );
if( tabgh.Open( szSQL ) )
{
tabgh.GHYGBH.strValue = strghygbh;
tabgh.GHYGXM.strValue = strghygxm;
tabgh.GHDLXM.strValue = strghdlxm;
tabgh.GHYGMM.strValue = strghygmm;
tabgh.GHBZXX.strValue = strghbzxx;
tabgh.UpdateRecord();
bRet = TRUE;
}
}
else
{
strghyghm.Format( "%d", tabgh.GetNextID( "ghyghm" ) );
sprintf( szSQL, "where ghygbh = '%s'", strghygbh );
if( !tabgh.Open( szSQL ) )
{
tabgh.GHYGHM.strValue = strghyghm;
tabgh.GHYGBH.strValue = strghygbh;
tabgh.GHYGXM.strValue = strghygxm;
tabgh.GHDLXM.strValue = strghdlxm;
tabgh.GHYGMM.strValue = strghygmm;
tabgh.GHSSBM.strValue = "1";
tabgh.GHYGLB.strValue = "1";
tabgh.GHYGDJ.strValue = "1";
tabgh.GHJLZT.strValue = "1";
tabgh.GHBZXX.strValue = strghbzxx;
tabgh.AppendRecord();
bRet = TRUE;
}
}
SaveQX();
connection->CommitTrans();
}
catch( _com_error &e )
{
connection->RollbackTrans();
AfxMessageBox( e.ErrorMessage() );
}
catch( ... )
{
connection->RollbackTrans();
}
if( bRet ) CDialog::OnOK();
else CDialog::OnCancel();
}
void CDlgGH::OnBtChangepwd()
{
// TODO: Add your control notification handler code here
}
void CDlgGH::OnBtDelete()
{
// TODO: Add your control notification handler code here
}
void CDlgGH::OnBtNext()
{
NextDlgCtrl();
}
void CDlgGH::OnBtAddone()
{
int index, ncount;
index = m_list_sourceqx.GetSelectionMark();
if ( index >= 0 )
{
if ( !CheckValue( (long)m_list_sourceqx.GetItemData( index ), true ) )
{
ncount = m_list_haveqx.GetItemCount();
m_list_haveqx.InsertItem( ncount, m_list_sourceqx.GetItemText( index, 0 ) );
m_list_haveqx.SetItemData( ncount, m_list_sourceqx.GetItemData( index ) );
m_list_sourceqx.DeleteItem( index );
}
}
}
void CDlgGH::OnBtAddall()
{
int index, ncount;
ncount = m_list_sourceqx.GetItemCount();
if ( ncount > 0 )
{
m_list_haveqx.DeleteAllItems();
for( index = 0; index < ncount; index++ )
{
if ( !CheckValue( (long)m_list_sourceqx.GetItemData( index ),true ) )
{
m_list_haveqx.InsertItem( ncount, m_list_sourceqx.GetItemText( index, 0 ) );
m_list_haveqx.SetItemData( ncount, m_list_sourceqx.GetItemData( index ) );
}
}
m_list_sourceqx.DeleteAllItems();
}
}
void CDlgGH::OnBtRmone()
{
int index, ncount;
index = m_list_haveqx.GetSelectionMark();
if ( index >= 0 )
{
if ( !CheckValue( (long)m_list_haveqx.GetItemData( index ), false ) )
{
ncount = m_list_sourceqx.GetItemCount();
m_list_sourceqx.InsertItem( ncount, m_list_haveqx.GetItemText( index, 0 ) );
m_list_sourceqx.SetItemData( ncount, m_list_haveqx.GetItemData( index ) );
m_list_haveqx.DeleteItem( index );
}
}
}
void CDlgGH::OnBtRmall()
{
int index, ncount;
ncount = m_list_haveqx.GetItemCount();
if ( ncount >0 )
{
m_list_sourceqx.DeleteAllItems();
for( index = 0; index < ncount; index++ )
{
if ( !CheckValue( (long)m_list_haveqx.GetItemData( index ),false ) )
{
m_list_sourceqx.InsertItem( ncount, m_list_haveqx.GetItemText( index, 0 ) );
m_list_sourceqx.SetItemData( ncount, m_list_haveqx.GetItemData( index ) );
}
}
m_list_haveqx.DeleteAllItems();
}
}
void CDlgGH::OnDblclkListSourceqx(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
*pResult = 0;
}
void CDlgGH::OnDblclkListHaveqx(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
*pResult = 0;
}
void CDlgGH::SaveQX( )
{
char szSQL[250];
CTabGQ tabgq;
CString strTmp;
int ncount;
ncount = m_list_haveqx.GetItemCount() - 1;
memset( szSQL, 0 ,250 );
sprintf( szSQL, "DELETE FROM GQ WHERE GQGHHM = %s ", strghyghm );
try
{
connection->Execute( szSQL, NULL, adExecuteNoRecords );
for( ; ncount >= 0; ncount-- )
{
strTmp.Format( "%d", (long)m_list_haveqx.GetItemData( ncount ) );
tabgq.GQGHHM.strValue = strghyghm;
tabgq.GQQXHM.strValue = strTmp;
tabgq.GQJLZT.strValue = "1";
tabgq.AppendRecord();
}
}
catch( _com_error &e )
{
connection->RollbackTrans();
AfxMessageBox( e.ErrorMessage() );
}
catch( ... )
{
}
}
BOOL CDlgGH::CheckValue( long lhave, BOOL bsource)
{
int ncount;
BOOL bresult = false;
if ( bsource )
{
ncount = m_list_haveqx.GetItemCount() - 1;
for( ; ncount >= 0; ncount-- )
{
if ( lhave == (long)m_list_haveqx.GetItemData( ncount ) )
{
bresult = true;
break;
}
}
}
else
{
ncount = m_list_sourceqx.GetItemCount() - 1;
for( ; ncount >= 0; ncount-- )
{
if ( lhave == (long)m_list_sourceqx.GetItemData( ncount ) )
{
bresult = true;
break;
}
}
}
return bresult;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -