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

📄 tabbrowseview.cpp

📁 利用CJ60库创建界面
💻 CPP
字号:
// TabBrowseView.cpp : implementation file
//

#include "stdafx.h"
#include "DutComputerManager.h"
#include "TabBrowseView.h"
#include "TabBrowseDoc.h"

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

/////////////////////////////////////////////////////////////////////////////
// CTabBrowseView

IMPLEMENT_DYNCREATE(CTabBrowseView, CTreeView)

CTabBrowseView::CTabBrowseView()
{
	m_strQueryType=_T("");
}

CTabBrowseView::~CTabBrowseView()
{
}


BEGIN_MESSAGE_MAP(CTabBrowseView, CTreeView)
	//{{AFX_MSG_MAP(CTabBrowseView)
	ON_NOTIFY_REFLECT(NM_DBLCLK, OnDblclk)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTabBrowseView drawing

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

/////////////////////////////////////////////////////////////////////////////
// CTabBrowseView diagnostics

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

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

/////////////////////////////////////////////////////////////////////////////
// CTabBrowseView message handlers

CTabBrowseDoc* CTabBrowseView::GetDocument()
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CTabBrowseDoc)));
	return (CTabBrowseDoc*)m_pDocument;
}

BOOL CTabBrowseView::PreCreateWindow(CREATESTRUCT& cs) 
{
	// TODO: Add your specialized code here and/or call the base class
	cs.style |= TVS_HASBUTTONS|TVS_HASLINES|TVS_LINESATROOT;
	return CTreeView::PreCreateWindow(cs);
}

void CTabBrowseView::OnInitialUpdate() 
{
	CTreeView::OnInitialUpdate();
	
	// TODO: Add your specialized code here and/or call the base class
	m_pTreeCtrl = &GetTreeCtrl();

	if(m_ImageList.GetSafeHandle() == NULL)
	{
		// Create the image list for the tree control
		m_ImageList.Create (IDB_IL_BROWSE, 16, 1, RGB(0,255,0));
		m_pTreeCtrl->SetImageList (&m_ImageList, TVSIL_NORMAL);

		// Initialize the view.
		UpdateView();
	}
}

void CTabBrowseView::UpdateView()
{
	if( m_pTreeCtrl && m_pTreeCtrl->GetSafeHwnd( ))
	{
		m_pTreeCtrl->LockWindowUpdate();
		
		if(theApp.m_pConnection!=NULL&&theApp.m_pConnection->IsOpen())
		{
			// 快速查询通道
			HTREEITEM htItem = m_pTreeCtrl->InsertItem("快速通道");
			m_pTreeCtrl->SetItemState( htItem, TVIS_BOLD, TVIS_BOLD );

			CAdoRecordSet  *pRecordset=new CAdoRecordSet(theApp.m_pConnection);
			pRecordset->Open("select * from typedb");
			
			//物品分类查询
			if(pRecordset!=NULL&&pRecordset->IsOpen())
			{
				pRecordset->MoveFirst();
				HTREEITEM htItem1=m_pTreeCtrl->InsertItem ("物品分类", 2, 3, htItem, TVI_LAST);
				while(!pRecordset->IsEOF())
				{
					CString str="";
					pRecordset->GetCollect("type",str);
					//pRecordset->GetCollect("serialnum",str);
					m_pTreeCtrl->InsertItem (str, 1, 4, htItem1, TVI_LAST);
					pRecordset->MoveNext();
				}
				pRecordset->Close();
			}

			//房间查询
			pRecordset->Open("select * from locationdb");
			if(pRecordset!=NULL&&pRecordset->IsOpen())
			{
				pRecordset->MoveFirst();
				while(!pRecordset->IsEOF())
				{
					CString strArea="";
					int parent=0;long id=0;
					pRecordset->GetCollect("parent",parent);
					if(parent==0) //属于校区
					{
						//记录当前数据库指针位置
						long currecord=pRecordset->GetAbsolutePosition();
						pRecordset->GetCollect("name",strArea);
						pRecordset->GetCollect("id",id);
						HTREEITEM htItem1=m_pTreeCtrl->InsertItem (strArea, 2, 3, htItem, TVI_LAST);
						//从头寻找本地区的教室
						pRecordset->MoveFirst();
						while(!pRecordset->IsEOF())
						{
							pRecordset->GetCollect("parent",parent);
							if(parent==id)
							{
								pRecordset->GetCollect("name",strArea);
								m_pTreeCtrl->InsertItem (strArea, 1, 4, htItem1, TVI_LAST);
							}
							pRecordset->MoveNext();
						}

						//把指针放到原点
						pRecordset->SetAbsolutePosition(currecord);

					}
					pRecordset->MoveNext();
				}
				pRecordset->Close();
			}


			if(pRecordset->IsOpen())
			{
				pRecordset->Close();
				TRACE("-------------------------------opened!=\n");
			}
			if(pRecordset!=NULL)
			{

				TRACE("ssssssssssssssssssssssssssssssssssssssssssss");
				delete pRecordset;
				pRecordset=NULL;

			}

			//查询全部
			m_pTreeCtrl->InsertItem ("列出全部", 2, 3, htItem, TVI_LAST);

			m_pTreeCtrl->Expand(htItem, TVE_EXPAND);
			//--条件查询分支
			HTREEITEM htItem2 = m_pTreeCtrl->InsertItem("普通查询");
			m_pTreeCtrl->SetItemState( htItem2, TVIS_BOLD, TVIS_BOLD );
			m_pTreeCtrl->InsertItem (_T("条件查询"), 1, 4, htItem2, TVI_LAST);
			m_pTreeCtrl->Expand(htItem2, TVE_EXPAND);
			//记录录入
			HTREEITEM htItem3 = m_pTreeCtrl->InsertItem("物品录入");
			m_pTreeCtrl->SetItemState( htItem3, TVIS_BOLD, TVIS_BOLD );
			m_pTreeCtrl->InsertItem ("物品录入", 1, 4, htItem3, TVI_LAST);
			m_pTreeCtrl->Expand(htItem3, TVE_EXPAND);
		}else{
			AfxMessageBox("数据库连接错误!");
		}

		m_pTreeCtrl->UnlockWindowUpdate();
	}
}

BOOL CTabBrowseView::IsSelected(const CObject* pDocItem) const
{
	// TODO: Add your specialized code here and/or call the base class
	return CTreeView::IsSelected(pDocItem);
}

#include "QueryStringDlg.h"
#include "DutComputerManagerDoc.h"
#include "DetailDlg.h"

void CTabBrowseView::OnDblclk(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	HTREEITEM m_hTreeItem=m_pTreeCtrl->GetSelectedItem();
	HTREEITEM m_hTreeItem1=m_pTreeCtrl->GetChildItem(m_hTreeItem);
	if(m_hTreeItem1==NULL)
	{
		CString string=m_pTreeCtrl->GetItemText(m_hTreeItem);
		if(string.Find("物品录入")!=-1)
		{
			CDetailDlg dlg;
			dlg.m_bAddnew=TRUE;
			dlg.DoModal();
		}
		else if(string.Find("列出全部")!=-1)
		{
			theApp.m_strSQL="select * from dbbean";
		}
		else if(string.Find("条件查询")!=-1)
		{
			CQueryStringDlg dlg;
			if(dlg.DoModal()==IDOK)
			{
				CString stritem=dlg.m_strQueryType;
				CString strcon=dlg.m_strquerystring;
				theApp.m_strSQL="select * from dbbean where dbbean."+stritem+" LIKE '%"+strcon+"%'";
				
				//MessageBox(theApp.m_strSQL,theApp.m_strSQL);
			}else{	*pResult = 0;return;}
		}
		else{
			HTREEITEM m_hTreeItem2=m_pTreeCtrl->GetParentItem(m_hTreeItem);
			CString strparent=m_pTreeCtrl->GetItemText(m_hTreeItem2);
			//快速查询
			if(strparent.CompareNoCase("物品分类")){
				theApp.m_strSQL="select * from dbbean where dbbean.location = '"+string+"' and dbbean.area = '"+strparent+"'";
			}else{
				theApp.m_strSQL="select * from dbbean where dbbean.type = '"+string+"'";

			}
		}

		CMDIFrameWnd *pFrame;
		CMDIChildWnd *pChild;
		CView *pView;
		//获取主窗口指针
		pFrame =(CMDIFrameWnd*)AfxGetApp()->m_pMainWnd;
		// 获取子窗口指针
		pChild = (CMDIChildWnd *) pFrame->GetActiveFrame();
		//获取视类指针
		pView = pChild->GetActiveView();
		if(pView != NULL)
		{
			pView->SendMessage(WM_QUERY_MESSAGE,(WPARAM )0,(LPARAM)0);
		}

	}
	*pResult = 0;
}

⌨️ 快捷键说明

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