📄 tabbrowseview.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 + -