亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lefttreeview.cpp

?? VC6.0下開發的Access數據庫小區管理系統
?? CPP
字號:
// LeftTreeView.cpp : implementation file
//

#include "stdafx.h"
#include "INhabitants.h"
#include "LeftTreeView.h"
#include "INhabitantsDoc.h"
#include "MainFrm.h"
#include "UsersListView.h"
#include "UserinfoView.h"

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

/////////////////////////////////////////////////////////////////////////////
// CLeftTreeView

IMPLEMENT_DYNCREATE(CLeftTreeView, CTreeView)

CLeftTreeView::CLeftTreeView()
{
}

CLeftTreeView::~CLeftTreeView()
{
}


BEGIN_MESSAGE_MAP(CLeftTreeView, CTreeView)
	//{{AFX_MSG_MAP(CLeftTreeView)
	ON_NOTIFY_REFLECT(TVN_SELCHANGED, OnSelchanged)
	ON_COMMAND(ID_OPERATE_DELETE, OnOperateDelete)
	ON_UPDATE_COMMAND_UI(ID_OPERATE_DELETE, OnUpdateOperateDelete)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CLeftTreeView drawing

void CLeftTreeView::OnDraw(CDC* pDC)
{
	CDocument* pDoc = GetDocument();
	// TODO: add draw code here
}

/////////////////////////////////////////////////////////////////////////////
// CLeftTreeView diagnostics

#ifdef _DEBUG
void CLeftTreeView::AssertValid() const
{
	CTreeView::AssertValid();
}

void CLeftTreeView::Dump(CDumpContext& dc) const
{
	CTreeView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CLeftTreeView message handlers

HTREEITEM CLeftTreeView::AddSectionToTree(CString strSectionName)
{
	CTreeCtrl * pCtrl = &GetTreeCtrl();
	HTREEITEM hRootItem = pCtrl->GetRootItem();
	if(hRootItem){
		while(hRootItem){
			CString strItemText = pCtrl->GetItemText(hRootItem);
			if(strSectionName == strItemText)
				return hRootItem;
			hRootItem = pCtrl->GetNextSiblingItem(hRootItem);
		}
	}
//	else return NULL;
	TV_INSERTSTRUCT TCItem;
	TCItem.hParent = TVI_ROOT;
	TCItem.hInsertAfter = TVI_LAST;
	TCItem.item.mask = TVIF_TEXT | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
	TCItem.item.lParam = 0;
	TCItem.item.iImage = 0;
	TCItem.item.iSelectedImage = 0;

	TCItem.item.pszText = (LPTSTR)(LPCTSTR)strSectionName;
	HTREEITEM hSectionItem = pCtrl->InsertItem(&TCItem);
	pCtrl->SortChildren(TVI_ROOT);
	return hSectionItem;
}

HTREEITEM CLeftTreeView::AddBuildingToTree(HTREEITEM hSectionItem, int nBuildingnum)
{
	if(hSectionItem == NULL)
		return NULL;
	CTreeCtrl* pCtrl = &GetTreeCtrl();
	CString strBuildingNum;
	strBuildingNum.Format("%d號樓",nBuildingnum);
	if(pCtrl->ItemHasChildren(hSectionItem))
	{
		HTREEITEM hItem = pCtrl->GetChildItem(hSectionItem);
		while(hItem)
		{
			CString strItemText = pCtrl->GetItemText(hItem);
			if(strItemText == strBuildingNum)
				return hItem;
			hItem = pCtrl->GetNextSiblingItem(hItem);
		}
	}
//	else return NULL;
	TV_INSERTSTRUCT TCItem;//插入數據項數據結構
	TCItem.hParent = hSectionItem;
	TCItem.hInsertAfter = TVI_LAST;
	TCItem.item.mask=TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE|TVIF_SELECTEDIMAGE;//設屏蔽
	TCItem.item.lParam=0;//序號
	TCItem.item.iImage=1;//正常圖標
	TCItem.item.iSelectedImage=1;//選中時圖標
	
	TCItem.item.pszText = (LPTSTR)(LPCTSTR)strBuildingNum;
	HTREEITEM hBuildingItem = pCtrl->InsertItem(&TCItem);
	
	pCtrl->SortChildren(hSectionItem);
	return hBuildingItem;
}

HTREEITEM CLeftTreeView::AddCellToTree(HTREEITEM hBuildingItem, int nCellnum)
{
	if(hBuildingItem == NULL)
		return NULL;
	CTreeCtrl* pCtrl = &GetTreeCtrl();
	CString strCellNum;
	strCellNum.Format("%d單元",nCellnum);
	if(pCtrl->ItemHasChildren(hBuildingItem))
	{
		HTREEITEM hItem = pCtrl->GetChildItem(hBuildingItem);
		while(hItem)
		{
			CString strItemText = pCtrl->GetItemText(hItem);
			if(strItemText == strCellNum)
				return hItem;
			hItem = pCtrl->GetNextSiblingItem(hItem);
		}
	}
//	else return NULL;
	TV_INSERTSTRUCT TCItem;//插入數據項數據結構
	TCItem.hParent = hBuildingItem;
	TCItem.hInsertAfter = TVI_LAST;
	TCItem.item.mask=TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE|TVIF_SELECTEDIMAGE;//設屏蔽
	TCItem.item.lParam=0;//序號
	TCItem.item.iImage=2;//正常圖標
	TCItem.item.iSelectedImage=2;//選中時圖標
	
	TCItem.item.pszText = (LPTSTR)(LPCTSTR)strCellNum;
	HTREEITEM hCellItem = pCtrl->InsertItem(&TCItem);
	
	pCtrl->SortChildren(hBuildingItem);
	return hCellItem;
}

void CLeftTreeView::AddUserToTree(CString strSectionName, int nBuildingNum, int nCellNum, int nRoomNum)
{
	HTREEITEM hSectionItem = AddSectionToTree(strSectionName);
	HTREEITEM hBuildingItem = AddBuildingToTree(hSectionItem, nBuildingNum);
	HTREEITEM hCellItem = AddCellToTree(hBuildingItem, nCellNum);
	if(hCellItem == NULL)
		return;
	CTreeCtrl * pCtrl = &GetTreeCtrl();
	TV_INSERTSTRUCT TCItem;
	TCItem.hParent = hCellItem;
	TCItem.hInsertAfter = TVI_LAST;
	TCItem.item.mask = TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE|TVIF_SELECTEDIMAGE;
	TCItem.item.lParam = 0;
	TCItem.item.iImage = 3;
	TCItem.item.iSelectedImage = 3;
	CString str;
	str.Format("%d", nRoomNum);
	TCItem.item.pszText = (LPTSTR)(LPCTSTR)str;
	pCtrl->InsertItem(&TCItem);
	pCtrl->SortChildren(hCellItem);
}

void CLeftTreeView::AddUsersToTree()
{
	CINhabitantsDoc * pDoc = (CINhabitantsDoc *)GetDocument();
	if(pDoc == NULL)
		return;
	GetTreeCtrl().DeleteAllItems();

	CString strSql = "select * from house";
	CCommand<CAccessor<ChouseAccessor> > dbHouse;
	long * pCount = new long;
	if(dbHouse.Open(pDoc->m_dbHouse.m_session, strSql, NULL, pCount) != S_OK){
		AfxMessageBox("error");
		delete  pCount;
		return;
	}
	delete pCount;

	if(dbHouse.MoveFirst() == S_OK){
		do{
			AddUserToTree(dbHouse.m_sectionname, dbHouse.m_buildingnum,
				dbHouse.m_cellnum, dbHouse.m_roomnum);
		}while(dbHouse.MoveNext() == S_OK);
	}
	dbHouse.Close();
}

void CLeftTreeView::OnInitialUpdate() 
{
	CTreeView::OnInitialUpdate();
	
	// TODO: Add your specialized code here and/or call the base class
	::SetWindowLong(m_hWnd,GWL_STYLE,WS_VISIBLE | WS_TABSTOP 
		| WS_CHILD | WS_BORDER| TVS_HASBUTTONS 
		| TVS_LINESATROOT | TVS_HASLINES
		| TVS_DISABLEDRAGDROP|TVS_SHOWSELALWAYS);
	CINhabitantsApp * pApp = (CINhabitantsApp *)AfxGetApp();
	CTreeCtrl * pTreeCtrl = &GetTreeCtrl();
	m_ImageList.Create(16, 16, ILC_COLOR16, 4, 4);
	m_ImageList.Add(pApp->LoadIcon(IDI_ICON_SECTION));
	m_ImageList.Add(pApp->LoadIcon(IDI_ICON_BUILDING));
	m_ImageList.Add(pApp->LoadIcon(IDI_ICON_CELL));
	m_ImageList.Add(pApp->LoadIcon(IDI_ICON_USER));
	pTreeCtrl->SetImageList(&m_ImageList, TVSIL_NORMAL);

	AddUsersToTree();
	pTreeCtrl->SortChildren(TVI_ROOT);
}


void CLeftTreeView::OnSelchanged(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
	*pResult = 0;
	// TODO: Add your control notification handler code here

	CTreeCtrl * pCtrl = &GetTreeCtrl();
	HTREEITEM hSelItem = pCtrl->GetSelectedItem();
	m_hHitItem = hSelItem;

	CMainFrame * pFrame = (CMainFrame *)AfxGetApp()->m_pMainWnd;
	if(hSelItem == NULL){
		pFrame->SwitchToView(USERSVIEW);
		pFrame->m_pUsersView->ShowUsers("");
		return;
	}

	HTREEITEM hParentItem = pCtrl->GetParentItem(hSelItem);
	CString strSql, strSectionName, strBuildingNum, strCellNum, strRoomNum;
	if(hParentItem == NULL){//小區
		strSectionName = pCtrl->GetItemText(hSelItem);
		strSql.Format("select * from house where sectionname = '%s'", strSectionName);
		pFrame->SwitchToView(USERSVIEW);
		pFrame->m_pUsersView->ShowUsers(strSql);
		return;
	}
	hParentItem = pCtrl->GetParentItem(hParentItem);
	if(hParentItem == NULL){//樓
		strSectionName = pCtrl->GetItemText(pCtrl->GetParentItem(hSelItem));
		CString str = pCtrl->GetItemText(hSelItem);
		int n = str.Find("號樓");
		strBuildingNum = str.Left(n);
		strSql.Format("select * from house where sectionname = '%s' and buildingnum = %s", 
			strSectionName, strBuildingNum);
		pFrame->SwitchToView(USERSVIEW);
		pFrame->m_pUsersView->ShowUsers(strSql);
		return;
	}
	hParentItem = pCtrl->GetParentItem(hParentItem);
	if(hParentItem == NULL){//單元
		strSectionName = pCtrl->GetItemText(pCtrl->GetParentItem(pCtrl->GetParentItem(hSelItem)));
		CString str = pCtrl->GetItemText(pCtrl->GetParentItem(hSelItem));
		int n = str.Find("號樓");
		strBuildingNum = str.Left(n);
		str = pCtrl->GetItemText(hSelItem);
		n = str.Find("單元");
		strCellNum = str.Left(n);
		strSql.Format("select * from house where sectionname = '%s' and buildingnum = %s and cellnum = %s", 
			strSectionName, strBuildingNum, strCellNum);
		pFrame->SwitchToView(USERSVIEW);
		pFrame->m_pUsersView->ShowUsers(strSql);
		return;
	}
	//房間
	strSectionName = pCtrl->GetItemText(pCtrl->GetParentItem(pCtrl->GetParentItem(pCtrl->GetParentItem(hSelItem))));
	CString str = pCtrl->GetItemText(pCtrl->GetParentItem(pCtrl->GetParentItem(hSelItem)));
	int n = str.Find("號樓");
	strBuildingNum = str.Left(n);
	str = pCtrl->GetItemText(pCtrl->GetParentItem(hSelItem));
	n = str.Find("單元");
	strCellNum = str.Left(n);
	strRoomNum = pCtrl->GetItemText(hSelItem);
	pFrame->SwitchToView(USERINFOVIEW);
	pFrame->m_pUserinfoView->UpdateUserInfo(strSectionName,
		atoi(strBuildingNum.GetBuffer(0)),
		atoi(strCellNum.GetBuffer(0)),
		atoi(strRoomNum.GetBuffer(0)));
}

void CLeftTreeView::OnOperateDelete() 
{
	// TODO: Add your command handler code here
	if(m_hHitItem == NULL)
		return;
	CMainFrame * pFrame = (CMainFrame *)AfxGetApp()->m_pMainWnd;
	CINhabitantsDoc * pDoc = (CINhabitantsDoc *)GetDocument();
	CTreeCtrl * pCtrl = &GetTreeCtrl();
	HTREEITEM hParentItem = pCtrl->GetParentItem(m_hHitItem);
	CString strSql;
	//小區
	if(hParentItem == NULL && m_hHitItem != NULL){
		CString strSectionName = pCtrl->GetItemText(m_hHitItem);
		strSql.Format("delete * from house where sectionname = '%s'", strSectionName);
		if(this->MessageBox("你真的要刪除該小區中的所有住戶嗎?", 
			"小區居民管理系統", MB_YESNO) == IDNO)
			return;
	}
	//樓
	else if(hParentItem != NULL && 
		pCtrl->GetParentItem(hParentItem) == NULL){
		CString strSectionName = pCtrl->GetItemText(pCtrl->GetParentItem(m_hHitItem));
		CString str = pCtrl->GetItemText(m_hHitItem);
		int n = str.Find("號樓");
		CString strBuildingNum = str.Left(n);
		strSql.Format("delete * from house where sectionname = '%s' and buildingnum = %s",
			strSectionName, strBuildingNum);
		if(this->MessageBox("你真的要刪除該樓中的所有住戶嗎?", 
			"小區居民管理系統", MB_YESNO) == IDNO)
			return;
	}
	//單元
	else if(pCtrl->GetParentItem(hParentItem) != NULL && 
		pCtrl->GetParentItem(pCtrl->GetParentItem(hParentItem)) == NULL){
		CString strSectionName = pCtrl->GetItemText(
			pCtrl->GetParentItem(pCtrl->GetParentItem(m_hHitItem)));
		CString str = pCtrl->GetItemText(pCtrl->GetParentItem(m_hHitItem));
		int n = str.Find("號樓");
		CString strBuildingNum = str.Left(n);
		str = pCtrl->GetItemText(m_hHitItem);
		n = str.Find("單元");
		CString strCellNum = str.Left(n);
		strSql.Format("select * from house where sectionname = '%s' \
			and buildingnum = %s and cellnum = %s",
			strSectionName, strBuildingNum, strCellNum);
		if(this->MessageBox("你真的要刪除該單元中的所有住戶嗎?", 
			"小區居民管理系統", MB_YESNO) == IDNO)
			return;
	}
	//住戶
	else{
		CString strSectionName = pCtrl->GetItemText(pCtrl->GetParentItem(
			pCtrl->GetParentItem(pCtrl->GetParentItem(m_hHitItem))));
		CString str = pCtrl->GetItemText(
			pCtrl->GetParentItem(pCtrl->GetParentItem(m_hHitItem)));
		int n = str.Find("號樓");
		CString strBuildingNum = str.Left(n);
		str = pCtrl->GetItemText(pCtrl->GetParentItem(m_hHitItem));
		n = str.Find("單元");
		CString strCellNum = str.Left(n);
		CString strRoomNum = pCtrl->GetItemText(m_hHitItem);
		strSql.Format("select * from house where sectionname = '%s' \
			and buildingnum = %s and cellnum = %s and roomnum = %s",
			strSectionName, strBuildingNum, strCellNum, strRoomNum);
		if(this->MessageBox("你真的要刪除該住戶嗎?", 
			"小區居民管理系統", MB_YESNO) == IDNO)
			return;
	}
	pDoc->DeleteUser(strSql);
	AddUsersToTree();
}

void CLeftTreeView::OnUpdateOperateDelete(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->Enable(m_hHitItem != NULL);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲h在线观看| 国产区在线观看成人精品| 亚洲丝袜另类动漫二区| 国产成人综合视频| 欧美国产精品专区| av一区二区三区在线| 综合久久综合久久| 久久综合丝袜日本网| 久久99精品久久久久久国产越南 | 美女视频黄频大全不卡视频在线播放| 欧美亚洲免费在线一区| 日韩影院免费视频| 精品久久久久久无| 成人影视亚洲图片在线| 亚洲色图在线视频| 777精品伊人久久久久大香线蕉| 日韩av一区二区三区| 精品国产自在久精品国产| 国产成a人无v码亚洲福利| 亚洲特黄一级片| 欧美日本不卡视频| 国产在线看一区| 亚洲欧美乱综合| 欧美一区二区三级| 成人午夜免费电影| 午夜精品成人在线视频| 国产人成亚洲第一网站在线播放 | 国产精品麻豆欧美日韩ww| 99久久婷婷国产综合精品电影| 亚洲综合久久久| 日韩三级在线免费观看| 成人黄色一级视频| 婷婷久久综合九色综合绿巨人 | 欧美专区日韩专区| 老司机午夜精品| ㊣最新国产の精品bt伙计久久| 欧美日韩国产不卡| 丰满少妇在线播放bd日韩电影| 亚洲一区二区三区四区的| 亚洲精品一区二区三区99| 91小视频在线| 一本到不卡精品视频在线观看| 日韩av在线发布| 国产精品毛片久久久久久久| 日韩一区二区三区高清免费看看| 99综合电影在线视频| 美女免费视频一区| 亚洲午夜羞羞片| 中文字幕一区免费在线观看| 69久久99精品久久久久婷婷| 91色乱码一区二区三区| 韩日欧美一区二区三区| 亚洲成人福利片| 1024亚洲合集| 亚洲国产成人午夜在线一区| 日韩欧美一二三四区| 在线观看欧美日本| 91丨porny丨国产入口| 紧缚奴在线一区二区三区| 午夜天堂影视香蕉久久| 日韩理论片在线| 中文字幕久久午夜不卡| 欧美精品一区二区久久久| 在线不卡一区二区| 精品视频全国免费看| 91丝袜呻吟高潮美腿白嫩在线观看| 精品一区二区免费在线观看| 日韩国产一二三区| 亚洲国产视频在线| 一区二区三区美女视频| 中文字幕亚洲一区二区av在线| 久久久久久综合| 26uuu亚洲综合色欧美| 亚洲男同性恋视频| 中文字幕制服丝袜成人av| 国产欧美一区二区精品性色| 337p粉嫩大胆色噜噜噜噜亚洲| 日韩一区二区在线看片| 欧美一区在线视频| 51久久夜色精品国产麻豆| 欧美日韩国产系列| 777午夜精品免费视频| 欧美高清激情brazzers| 欧美剧在线免费观看网站| 91精品综合久久久久久| 欧美一区二区三区思思人| 欧美高清你懂得| 欧美大片拔萝卜| 亚洲精品在线观看视频| 久久久亚洲午夜电影| 中文字幕精品在线不卡| 国产精品欧美极品| 亚洲人快播电影网| 亚洲在线中文字幕| 亚洲成av人影院在线观看网| 丝袜美腿一区二区三区| 秋霞电影网一区二区| 黄色日韩网站视频| 成人午夜大片免费观看| 91蜜桃免费观看视频| 欧美日韩国产区一| 精品成人在线观看| 国产精品护士白丝一区av| 亚洲精品视频一区| 日欧美一区二区| 国内不卡的二区三区中文字幕 | 欧美变态tickling挠脚心| 26uuu国产日韩综合| 国产精品久久久久久久久搜平片| 成人欧美一区二区三区在线播放| 亚洲免费在线观看| 午夜不卡av在线| 国产麻豆精品视频| 日本大香伊一区二区三区| 欧美一区二视频| 欧美高清在线一区| 亚洲成av人片观看| 国产成a人无v码亚洲福利| 欧美午夜在线一二页| 精品国产凹凸成av人导航| 国产精品不卡在线| 秋霞av亚洲一区二区三| 成人午夜又粗又硬又大| 欧美日韩国产一级| 国产精品私人自拍| 日本系列欧美系列| av在线一区二区三区| 欧美一级高清大全免费观看| 国产欧美一区二区精品性色| 亚洲地区一二三色| 成人午夜在线免费| 欧美一区二区三区在线视频| 国产精品久久久一区麻豆最新章节| 国产a级毛片一区| 欧美日韩国产综合久久| 国产精品久久久爽爽爽麻豆色哟哟| 日韩精品一级二级| 91视频在线观看| 久久精品在线免费观看| 首页亚洲欧美制服丝腿| 99re成人在线| 久久久三级国产网站| 日韩av网站免费在线| 色婷婷香蕉在线一区二区| 国产日韩高清在线| 日本中文一区二区三区| 欧美性三三影院| 亚洲天堂a在线| 成人午夜电影久久影院| 精品久久久久久无| 青青国产91久久久久久| 欧美亚洲精品一区| 亚洲欧美日韩国产综合在线| 国产成人激情av| 精品国产乱码久久久久久老虎| 日日夜夜免费精品| 欧美日韩一区在线观看| 亚洲精选视频免费看| 成人av手机在线观看| 久久久久久一级片| 国产一区二区三区在线观看免费| 欧美一区二区三区啪啪| 日韩激情av在线| 欧美日韩国产小视频在线观看| 一区二区三区不卡在线观看| 91网站在线播放| 亚洲天堂成人网| 91麻豆国产在线观看| 国产精品国产三级国产aⅴ入口| 国产剧情一区在线| 欧美国产精品一区| 国产成人亚洲综合色影视| 国产亚洲人成网站| 国产精品一区二区三区99| 337p粉嫩大胆色噜噜噜噜亚洲| 国内精品伊人久久久久av影院| wwwwww.欧美系列| 国产一区二区在线影院| 久久亚洲综合av| 国产成人精品亚洲午夜麻豆| 国产精品久久久久久久久久久免费看| 成人激情黄色小说| 久久99久国产精品黄毛片色诱| 欧美大片一区二区三区| 国产乱国产乱300精品| 国产欧美日韩视频在线观看| av一区二区三区四区| 亚洲黄色片在线观看| 欧美日韩二区三区| 久久精品国内一区二区三区| 欧美成人bangbros| 成人性生交大片免费看中文| 日韩美女精品在线| 欧美色图片你懂的| 麻豆一区二区三| 中文字幕av资源一区| 欧美性色aⅴ视频一区日韩精品| 日韩精品91亚洲二区在线观看| 欧美精品一区二区三区视频| 99久久免费精品高清特色大片|