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

📄 dlgkqcopyto.cpp

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

#include "stdafx.h"
#include "Kvip.h"
#include "DlgKqCopyTo.h"

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

/////////////////////////////////////////////////////////////////////////////
// CDlgKqCopyTo dialog
#include "StringSQL.H"
#include "DlgKqInput.H"

CDlgKqCopyTo::CDlgKqCopyTo(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgKqCopyTo::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgKqCopyTo)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	m_pConnection = NULL;
	m_pParent = NULL;
}


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


BEGIN_MESSAGE_MAP(CDlgKqCopyTo, CDialog)
	//{{AFX_MSG_MAP(CDlgKqCopyTo)
	ON_BN_CLICKED(IDC_RETRIEVE, OnRetrieve)
	ON_BN_CLICKED(IDC_OK, OnOk)
	ON_BN_CLICKED(IDC_CANCEL, OnCancel)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CKqCopyTo message handlers

BOOL CDlgKqCopyTo::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_pConnection = m_pParent->m_pConnection;
	if (!m_ListDoc.Init(this, &m_Master))
	{
      MessageBox("注意:WK-00011生成窗体失败!", "系统提示", MB_OK|MB_ICONEXCLAMATION);
	  PostMessage(WM_CLOSE);
	  return false;
	}
//2装入部门
	CString sSQL, sText;
	CAdoRecordSet RecordSet;
	RecordSet.SetAdoConnection(m_pConnection);
	sSQL = _T("Select sm_Dept From kv_staff_mr group by sm_dept");
	CComboBox *pDept = (CComboBox*)m_ListDoc.GetClass("SM_DEPT", "COMBOBOX");
	ASSERT(pDept);
	if(pDept && RecordSet.Open(sSQL))
	{
	   while(RecordSet.IsEOF() == false)
	   {
	    RecordSet.GetCollect("sm_dept", sText);
        pDept->AddString(sText);
        RecordSet.MoveNext();
	   }
	}
	pDept->InsertString(0,"所有部门");
    pDept->SetCurSel(0);

//导入设置
	m_ListDoc.SetConnection(m_pConnection);
	m_Master.SetCheckboxes(true);
	OnRetrieve();
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CDlgKqCopyTo::OnRetrieve() 
{
	// TODO: Add your control notification handler code here
	CString s1 = _T(""), s2 = _T(""),s3 = _T("");
	CStringSQL sqlText;
	CEdit *pEdit;
	pEdit = (CEdit*)m_ListDoc.GetClass("SM_CODE");
	ASSERT(pEdit);
	if (pEdit) pEdit->GetWindowText(s1);
	pEdit = (CEdit*)m_ListDoc.GetClass("SM_NAME");
	ASSERT(pEdit);
	if (pEdit) pEdit->GetWindowText(s2);
	//pEdit = (CEdit*)m_ListDoc.GetClass(_T("EDIT"),"SM_DEPT");
	//if (pEdit) pEdit->GetWindowText(s3);
	CComboBox *pDept = (CComboBox*)m_ListDoc.GetClass("SM_DEPT", "COMBOBOX");
	ASSERT(pDept);
	if(pDept && pDept->GetCurSel() > 0) pDept->GetWindowText(s3);
	sqlText.SetSelect("Select sm_code, sm_name, sm_dept from kv_staff_mr");
	sqlText.SetWhere("sm_code", s1);
	sqlText.SetWhere("sm_name", s2);
	sqlText.SetWhere("sm_dept", s3);
	m_ListDoc.Retrieve(sqlText.GetSQL());
	
}

void CDlgKqCopyTo::OnOk() 
{
	// TODO: Add your control notification handler code here
  m_Progress.ShowWindow(SW_SHOW);
  CStringArray caOld;
  CString sCode, sDesCode, sName, sPro;
  int i, j, nNewItem, nItem, nSubItem;
  BOOL bFound;
  double dSkip;
  int oldSkip = 0, curSkip = 0;
//导入原信息
  nItem = m_pParent->m_Master.GetSelected();
  for(i = 1; i <= 31; i++)
  {
	sCode = m_pParent->m_Master.GetItemText(nItem,i);
    caOld.Add(sCode);
  }
//写入新信息
  nSubItem = m_pParent->m_MasterDoc._GetSubItem("编号");
  m_pParent->m_edProject.GetWindowText(sPro);
  if(m_Master.GetItemCount() <= 0) CDialog::OnOK();
  dSkip = (double)100/(double)m_Master.GetItemCount();
  for(i = 0; i < m_Master.GetItemCount(); i++, curSkip+=dSkip)
  {//读出所有员工
	if(curSkip != oldSkip)
	{
	  oldSkip = curSkip;
      m_Progress.SetPos(curSkip+dSkip);
	}
    if(m_Master.IsItemChecked(i))
	{//复制一项
	  sCode = m_Master.GetItemText(i, 0);
	  sName = m_Master.GetItemText(i, 1);
	  bFound = false;
	  for(nNewItem = 0; nNewItem < m_pParent->m_Master.GetItemCount(); nNewItem++)
	  {//搜索对应员工
		sDesCode = m_pParent->m_Master.GetItemText(nNewItem, nSubItem);
		if(sDesCode == sCode) 
		{//found
			bFound = true;
			break;
		}//end if
	  }//end for
	  if(bFound == false)
	  {//新建
	   m_pParent->m_MasterDoc.New(true, sPro+sCode);
	   nSubItem = m_pParent->m_MasterDoc._GetSubItem("编号");
	   m_pParent->m_Master.SetItemText(0, nSubItem, sCode);
	   nSubItem = m_pParent->m_MasterDoc._GetSubItem("名称");
	   m_pParent->m_Master.SetItemText(0, nSubItem, sName);
	   nNewItem = 0;
	  }//end if
	  //设置修改标志
	   m_pParent->m_MasterDoc.SetModify(nNewItem, LD_EDIT);
	  //复制考勤记录
      for(j = 1; j <= 31; j++)
	  {
	   sCode = caOld.GetAt(j-1);
       m_pParent->m_Master.SetItemText(nNewItem, 
		                               j, 
									   sCode);
	  }//end if
	}//end if
  }//end for
 CDialog::OnOK();
}

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



⌨️ 快捷键说明

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