📄 department.cpp
字号:
// Department.cpp : implementation file
//
#include "stdafx.h"
#include "Sale.h"
#include "Department.h"
#include "Affirm.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// Department dialog
Department::Department(CWnd* pParent /*=NULL*/)
: CDialog(Department::IDD, pParent)
{
//{{AFX_DATA_INIT(Department)
m_departmentID = _T("");
m_departmentName = _T("");
m_departmentManager = _T("");
m_departmentPhone = _T("");
m_departmentFunction = _T("");
TreeCurrent="0";
//}}AFX_DATA_INIT
}
void Department::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(Department)
DDX_Control(pDX, IDC_TREE1, m_departmentTree);
DDX_Text(pDX, IDC_departmentID, m_departmentID);
DDX_Text(pDX, IDC_departmentName, m_departmentName);
DDX_Text(pDX, IDC_departmentManager, m_departmentManager);
DDX_Text(pDX, IDC_departmentPhone, m_departmentPhone);
DDX_Text(pDX, IDC_departmentFunction, m_departmentFunction);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(Department, CDialog)
//{{AFX_MSG_MAP(Department)
ON_BN_CLICKED(IDC_addSameLevel, OnAddSameLevel)
ON_BN_CLICKED(IDC_addChildLevel, OnAddChildLevel)
ON_BN_CLICKED(IDC_modify, OnModify)
ON_BN_CLICKED(IDC_delete, OnDelete)
ON_BN_CLICKED(IDC_save, OnSave)
ON_BN_CLICKED(IDC_BUTTON6, OnExit)
ON_NOTIFY(TVN_SELCHANGED, IDC_TREE1, OnSelchangedDepartmentTree)
ON_NOTIFY(NM_CLICK, IDC_TREE1, OnClickDepartmentTree)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// Department message handlers
BOOL Department::OnInitDialog()
{
CDialog::OnInitDialog();
flag=0;
bt_delete=GetDlgItem(IDC_delete);
bt_addSameLevel=GetDlgItem(IDC_addSameLevel);
bt_addChildLevel=GetDlgItem(IDC_addChildLevel);
bt_modify=GetDlgItem(IDC_modify);
bt_save=GetDlgItem(IDC_save);
tx_departmentID=GetDlgItem(IDC_departmentID);
tx_departmentName=GetDlgItem(IDC_departmentName);
tx_departmentManager=GetDlgItem(IDC_departmentManager);
tx_departmentPhone=GetDlgItem(IDC_departmentPhone);
tx_departmentFunction=GetDlgItem(IDC_departmentFunction);
bt_delete->EnableWindow(false);
bt_addSameLevel->EnableWindow(false);
bt_addChildLevel->EnableWindow(false);
bt_modify->EnableWindow(false);
bt_save->EnableWindow(false);
tx_departmentID->EnableWindow(false);
tx_departmentName->EnableWindow(false);
tx_departmentManager->EnableWindow(false);
tx_departmentPhone->EnableWindow(false);
tx_departmentFunction->EnableWindow(false);
TVINSERTSTRUCT tvInsert;
HTREEITEM hParent;
tvInsert.hParent = NULL;
tvInsert.hInsertAfter = NULL;
tvInsert.item.mask = TVIF_TEXT;
//-----------------创建图象标签----------------------------
m_TreeBootImage.Create ( IDB_TreeBootImage,20,1,ILC_COLOR8);
m_departmentTree.SetImageList ( &m_TreeBootImage,TVSIL_NORMAL );
m_departmentTree.SetTextColor (RGB(7,145,13));
//--------添加根目录----------------------------------------
tvInsert.item.pszText = _T("all");
hParent = m_departmentTree.InsertItem(&tvInsert);
TreeAddSubTree("all","1",hParent);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void Department::TreeAddSubTree(CString ParTree, CString strChildTree, HTREEITEM hPartItem)
{
if (strChildTree!="0")
{
//----------------使用到的变量进行定义----------
_RecordsetPtr m_pTreeRecordset; //用于创建一个查询记录集
_variant_t vChild;
HTREEITEM hCurrent;
CString strSQL,strCurItem;
strSQL="SELECT * FROM department where parentDepartmentID = '" ;
strSQL=strSQL+ParTree+"'";
try
{
HRESULT hTRes;
hTRes = m_pTreeRecordset.CreateInstance(_T("ADODB.Recordset"));
if (SUCCEEDED(hTRes))
{
//----------------------------------------------------
hTRes = m_pTreeRecordset->Open((LPTSTR)strSQL.GetBuffer(130),
((CSaleApp*)AfxGetApp())->m_pConn.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);
if(SUCCEEDED(hTRes))
{
TRACE(_T("连接成功!\n"));
//------------------------------------------
m_pTreeRecordset->MoveFirst();
if (!(m_pTreeRecordset->adoEOF))
{
while(!m_pTreeRecordset->adoEOF)
{
_variant_t vIndex=(long)0;
hCurrent = m_departmentTree.InsertItem(
((CSaleApp*)AfxGetApp())->GetStringFromVariant(m_pTreeRecordset->GetCollect("departmentName")),
hPartItem, NULL);
if(TreeSumRecordCount(
VariantToCString(m_pTreeRecordset->GetCollect(vIndex)))>0)
{
TreeAddSubTree(VariantToCString(
m_pTreeRecordset->GetCollect(vIndex)),
(VariantToCString(m_pTreeRecordset->GetCollect(vIndex))),
hCurrent);
}
if (!(m_pTreeRecordset->adoEOF))
{
m_pTreeRecordset->MoveNext();
}
}
}
//---------------------------------------
}
}
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
MessageBox("创建department1记录集失败!",ParTree+strChildTree);
}
}
}
//-----------------实现了VARIANT类型的值转换成CString类型--------------
CString Department::VariantToCString(VARIANT var)
{
CString strValue;
_variant_t var_t;
_bstr_t bst_t;
time_t cur_time;
CTime time_value;
COleCurrency var_currency;
switch(var.vt)
{
case VT_EMPTY:strValue=_T("");break;
case VT_UI1:strValue.Format ("%d",var.bVal);break;
case VT_I2:strValue.Format ("%d",var.iVal );break;
case VT_I4:strValue.Format ("%d",var.lVal);break;
case VT_R4:strValue.Format ("%f",var.fltVal);break;
case VT_R8:strValue.Format ("%f",var.dblVal);break;
case VT_CY:
var_currency=var;
strValue=var_currency.Format(0);
break;
case VT_BSTR:
var_t=var;
bst_t=var_t;
strValue.Format ("%s",(const char*)bst_t);
break;
case VT_NULL:strValue=_T("");break;
case VT_DATE:
cur_time=var.date;
time_value=cur_time;
strValue=time_value.Format("%A,%B%d,%Y");
break;
case VT_BOOL:strValue.Format ("%d",var.boolVal );break;
default:strValue=_T("");break;
}
return strValue;
}
int Department::TreeSumRecordCount(CString strFieldValue)
{
int Sum=0;
_RecordsetPtr m_pRecordset; //用于创建一个查询记录集
_variant_t vChild;
CString strSQL,strCurItem;
//-----------------------------------------------
strSQL="SELECT * FROM department where parentDepartmentID like '%" ;
strSQL=strSQL+strFieldValue+"%'";
try
{
HRESULT hTRes;
hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
if (SUCCEEDED(hTRes))
{
hTRes = m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(130),
_variant_t((IDispatch *)(((CSaleApp*)AfxGetApp())->m_pConn),true),
adOpenDynamic,adLockPessimistic,adCmdText);
if(SUCCEEDED(hTRes))
{
TRACE(_T("连接成功!\n"));
if(!m_pRecordset->BOF )
{
m_pRecordset->MoveFirst ();
while(!m_pRecordset->adoEOF)
{
Sum+=1;
m_pRecordset->MoveNext ();
}
}
}
}
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
MessageBox("求符合条件的记录总数出错!",strFieldValue);
}
return Sum;
}
void Department::OnAddSameLevel()
{
UpdateData(true);
flag=11;
TreeParentID=m_departmentID;
int departmentID=((CSaleApp*)AfxGetApp())->m_pIDRecordset->GetCollect("departmentID").intVal;
if(departmentID<10)
m_departmentID.Format("department0000%d",departmentID);
else if(departmentID<100&&departmentID>9)
m_departmentID.Format("department000%d",departmentID);
else if(departmentID<1000&&departmentID>99)
m_departmentID.Format("department00%d",departmentID);
CString str;
str.Format("%d",departmentID+1);
((CSaleApp*)AfxGetApp())->m_pIDRecordset->PutCollect("departmentID",_variant_t(str));
((CSaleApp*)AfxGetApp())->m_pIDRecordset->Update();
bt_addChildLevel->EnableWindow(false);
bt_addSameLevel->EnableWindow(false);
bt_modify->EnableWindow(false);
bt_save->EnableWindow(true);
tx_departmentID->EnableWindow(false);
tx_departmentName->EnableWindow(true);
tx_departmentManager->EnableWindow(true);
tx_departmentPhone->EnableWindow(true);
tx_departmentFunction->EnableWindow(true);
UpdateData(false);
}
void Department::OnAddChildLevel()
{
UpdateData(true);
flag=12;
TreeCurrentID=m_departmentID;
int departmentID=((CSaleApp*)AfxGetApp())->m_pIDRecordset->GetCollect("departmentID").intVal;
if(departmentID<10)
m_departmentID.Format("department0000%d",departmentID);
else if(departmentID<100&&departmentID>9)
m_departmentID.Format("department000%d",departmentID);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -