⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dlggh.cpp

📁 我自己整理的一些VC源代码
💻 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 + -