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

📄 dlgusercopyto.cpp

📁 用户管理系统
💻 CPP
字号:
// DlgUserCopyTo.cpp : implementation file
//

#include "stdafx.h"
#include "Kvip.h"
#include "DlgUserCopyTo.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDlgUserCopyTo dialog


CDlgUserCopyTo::CDlgUserCopyTo(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgUserCopyTo::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgUserCopyTo)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	m_pParent = NULL;
	m_strCode = _T("");
	m_strManager = _T("FALSE");
	m_strEnabled = _T("TRUE");
	m_strNote = _T(""); 
	long nItem = 0;

}


void CDlgUserCopyTo::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgUserCopyTo)
	DDX_Control(pDX, IDC_MASTER, m_Master);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgUserCopyTo, CDialog)
	//{{AFX_MSG_MAP(CDlgUserCopyTo)
	ON_BN_CLICKED(IDC_OK, OnOK)
	ON_BN_CLICKED(IDC_CANCEL, OnCancel)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgUserCopyTo message handlers
BOOL CDlgUserCopyTo::LoadData()
{
  CString sKey, sCode, sUser, sManager, sEnabled, sNote;
  ASSERT(m_pParent);
  m_Master.SetRedraw(FALSE);
  for (int i = m_pParent->m_Master.GetItemCount()-1;i >= 0; i--)
  {
      sKey = m_pParent->m_Master.GetItemText(i, 0);
      sCode = m_pParent->m_Master.GetItemText(i, 1);
      sUser = m_pParent->m_Master.GetItemText(i, 2);
      sManager = m_pParent->m_Master.GetItemText(i, 3);
      sEnabled = m_pParent->m_Master.GetItemText(i, 4);
      //sNote = m_pParent->m_Master.GetItemText(i, 5);
	  m_Master.InsertItemEx(0,sKey, sCode, sUser, sManager, sEnabled);

  }
  m_Master.SetRedraw(TRUE);
  return TRUE;
}

void CDlgUserCopyTo::OnOK() 
{
	// TODO: Add your control notification handler code here
	CString strSQL;
	CString sUser, sCode, sNote, sManager, sEnabled, sKey;
	CString sDate;
	long lFunction;
	int nItem, i;
	CAdoRecordSet *pRecordSet;
	CTime tNow = CTime::GetCurrentTime();
	sDate = tNow.Format("%Y/%m/%d");
//取被复被用户编号
	POSITION pos = m_Master.GetFirstSelectedItemPosition();
	if (pos == 0) goto err01;
	if (pos)	nItem = m_Master.GetNextSelectedItem(pos);
	if (nItem < 0 )  goto err01;
	sCode = m_Master.GetItemText(nItem, 1);
    if (sCode == m_strCode)
	{
		sNote = "注意:不能将用户["+m_strCode+"]复制到["+sCode+"] !";
        MessageBox(sNote, "系统提示", MB_OK|MB_ICONEXCLAMATION);
		return;
	}
	pRecordSet = &m_pParent->m_RecordSet;
	m_pParent->m_Connection.BeginTrans();
    if (m_strManager == _T("是"))
		sManager = _T("true");
    else
		sManager = _T("false");
    if (m_strEnabled == _T("是"))
		sEnabled = _T("true");
    else
		sEnabled = _T("false");

// 更新用户
	  if (m_strNote.IsEmpty())
	  strSQL.Format("UPDATE kv_user SET us_manager=%s,us_date='%s',us_enabled=%s WHERE us_code = '%s'",    
			         sManager, sDate, sEnabled,sCode);
	  else
	  strSQL.Format("UPDATE kv_user SET us_manager=%s,us_date='%s',us_enabled=%s,us_note='%s' WHERE us_code = '%s'",    
			         sManager, sDate, sEnabled, m_strNote, sCode);
	  if(m_pParent->m_Connection.Execute((_bstr_t)strSQL,adCmdText)==FALSE) 	//执行此sql语句
	     goto err01;
//删除原用户功能 
	strSQL = "DELETE FROM kv_user_tx WHERE ut_code = '" + sCode +"'";
    if(m_pParent->m_Connection.Execute((_bstr_t)strSQL,adCmdText)==FALSE) 	//执行此sql语句
		goto err01;
// 更新功能
    strSQL = "Select * From kv_user_tx Where ut_code = '" +
			      m_strCode + "'";
	if (!pRecordSet->Open(strSQL))
		goto err01;
//取用户功能
  pRecordSet->MoveFirst();
  while(!pRecordSet->IsEOF())
  {
   	pRecordSet->GetCollect("ut_function", lFunction);
	strSQL.Format("INSERT INTO kv_user_tx(ut_code, ut_function) VALUES ('%s', %d)",
			sCode, lFunction);
	if(m_pParent->m_Connection.Execute((_bstr_t)strSQL,adCmdText)==FALSE) 	//执行此sql语句
	   goto err01;
    pRecordSet->MoveNext();
  }// end for

  pRecordSet->Close();
  m_pParent->m_Connection.CommitTrans();
//更新显示
  for ( i = 0; i < m_pParent->m_Master.GetItemCount(); i++)
  {
   sNote = m_pParent->m_Master.GetItemText(i, 1);
   if (sCode == sNote)
   {
    m_pParent->m_Master.SetItemText(i, 3, m_strManager);
    m_pParent->m_Master.SetItemText(i, 4, m_strEnabled);
    m_pParent->m_Master.SetItemText(i, 5, m_strNote);
	break;
   }
  }

  CDialog::OnOK();
  return ;
err01:
 	m_pParent->m_Connection.RollbackTrans();
    MessageBox("错误:DCT-0000001复制用户失败!!!", 
		       "系统提示", MB_OK|MB_ICONEXCLAMATION);
	return ;
}

void CDlgUserCopyTo::OnCancel() 
{
	// TODO: Add your control notification handler code here
	CDialog::OnCancel();
}

BOOL CDlgUserCopyTo::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_Master.SetHeadings(_T("序号,1,60; 用户编号,1, 80; 用户名称,1, 90; 管理员, 1,60; 有效, 1, 60"));
	m_Master.SetGridLines(TRUE);
//	m_Master.SetCheckboxes(TRUE);
    m_strCode = m_pParent->m_Master.GetItemText(m_nItem, 1);
    m_strManager = m_pParent->m_Master.GetItemText(m_nItem, 3);
    m_strEnabled = m_pParent->m_Master.GetItemText(m_nItem, 4);
    m_strNote = m_pParent->m_Master.GetItemText(m_nItem, 5);
	LoadData();
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -