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

📄 recorddlg.cpp

📁 本程序使用Visual C++6.0编写
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// RecordDLg.cpp : implementation file
//

#include "stdafx.h"
#include "Sjsys.h"
#include "LeftTreeView.h"
#include "RecordDLg.h"
#include "InquireDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CRecordDLg dialog


CRecordDLg::CRecordDLg(CWnd* pParent /*=NULL*/)
	: CDialog(CRecordDLg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CRecordDLg)
	//}}AFX_DATA_INIT
}


void CRecordDLg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CRecordDLg)
	DDX_Control(pDX, IDC_BUTTON4, m_btn4);
	DDX_Control(pDX, IDC_BUTTON3, m_btn3);
	DDX_Control(pDX, IDC_BUTTON2, m_btn2);
	DDX_Control(pDX, IDC_BUTTON1, m_btn1);
	DDX_Control(pDX, IDC_TREE1, m_tree);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CRecordDLg, CDialog)
	//{{AFX_MSG_MAP(CRecordDLg)
	ON_NOTIFY(NM_CLICK, IDC_TREE1, OnClickTree1)
	ON_BN_CLICKED(IDC_BUTTON2, OnInquire)
	ON_BN_CLICKED(IDC_BUTTON1, OnRefresh)
	ON_BN_CLICKED(IDC_BUTTON3, OnDelete)
	ON_BN_CLICKED(IDC_BUTTON4, OnClear)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CRecordDLg message handlers

BOOL CRecordDLg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_btn1.SetShade(CShadeButtonST::SHS_VSHADE);
	m_btn2.SetShade(CShadeButtonST::SHS_VSHADE);
	m_btn3.SetShade(CShadeButtonST::SHS_VSHADE);
	m_btn4.SetShade(CShadeButtonST::SHS_VSHADE);
	m_sheet.AddPage(&m_Prop1);
	m_sheet.AddPage(&m_Prop2);
	m_sheet.AddPage(&m_Prop3);
    m_sheet.AddPage(&m_Prop4);
	m_sheet.AddPage(&m_Prop5);
	m_sheet.AddPage(&m_Prop6);

	m_sheet.Create(this,WS_CHILD | WS_VISIBLE,0);
	m_sheet.ModifyStyleEx(0,WS_EX_CONTROLPARENT);
    m_sheet.ModifyStyle(0,WS_TABSTOP);
	m_sheet.SetWindowPos(NULL,250,10,0,0,SWP_NOZORDER | SWP_NOSIZE | SWP_NOACTIVATE);

    ///////////////////////////////////
	//	TreeDialog图标初始化
	//////////////////////////////////
    ImgTree.Create (16,16,ILC_COLOR|ILC_MASK,5,5);//创建图标列表
    ImgTree.Add (AfxGetApp()->LoadIcon (IDI_COMPANY));
	ImgTree.Add (AfxGetApp()->LoadIcon (IDI_DEPARTMENT1)); 
    ImgTree.Add (AfxGetApp()->LoadIcon (IDI_SUBDEPARTMENT));
	ImgTree.Add (AfxGetApp()->LoadIcon (IDI_OFFLINE));
	ImgTree.Add (AfxGetApp()->LoadIcon (IDI_ONLINE));

	///////////////////////////////////
	//	树形控件初始化
	//////////////////////////////////
	m_tree.DeleteAllItems();
	m_tree.SetBkColor(RGB(188,197,230));          //设置背景颜色
	m_tree.SetImageList (&ImgTree,TVSIL_NORMAL);  //设置图标

	///////////////////////////////////
	//	数据集初始化
	//////////////////////////////////
	::CoInitialize(NULL);
	pDeviceRecordset.CreateInstance(__uuidof(Recordset));
	pDepartmentRecordset.CreateInstance(__uuidof(Recordset));
    	
	TV_INSERTSTRUCT tvRoot;//第一层
    TV_INSERTSTRUCT tvSecond;//第二层
    TV_INSERTSTRUCT tvThird;//第三层
	TV_INSERTSTRUCT tvFourth;//第四层

	HTREEITEM item_root;
    HTREEITEM item_second;
	int i=0;
	HTREEITEM item_third[200];
	for(i=0;i<200;i++)
		item_third[i]=NULL;



	tvRoot.hParent=NULL;
	tvRoot.item.mask=TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE;
    tvRoot.item.iImage=0;
	tvRoot.item.iSelectedImage=0;
    CString	SQLStr;

	//插入已经分类的
	//插入公司名(第一级)
	try
	{
		
			SQLStr="select * from Department where Upnodeid=0";
			//打开数据集
 			pDepartmentRecordset->Open(_bstr_t(SQLStr),
				                       ((CSjsysApp*)AfxGetApp())->pConnection.GetInterfacePtr(),
										adOpenDynamic,
										adLockOptimistic,
										adCmdText);	
			
			CString value="";
			_variant_t var;
			while(!pDepartmentRecordset->adoEOF)
			{
				var = pDepartmentRecordset->GetCollect("CName");
				if(var.vt != VT_NULL)value=(LPCSTR)_bstr_t(var);
				tvRoot.item.pszText=(LPTSTR)(LPCTSTR)value;
				item_root=m_tree.InsertItem (&tvRoot);
                
				//设置树项对应的ID号
				var = pDepartmentRecordset->GetCollect("ID");
				if(var.vt != VT_NULL)value=(LPCSTR)_bstr_t(var);
				int ID=atoi(value);
				m_tree.SetItemData(item_root,ID);

				pDepartmentRecordset->MoveNext();
			}
			pDepartmentRecordset->Close();		
	}
	catch(_com_error *e)
	{
		AfxMessageBox(e->ErrorMessage());
	}


     
	//插入部门名(第二级)
	tvSecond.item.mask=TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE;
	tvSecond.item.iImage=1;
	tvSecond.item.iSelectedImage=1;
    try
	{	
	
		//	HTREEITEM hroot=m_tree.GetRootItem();
			while(item_root!=NULL)
			{
				tvSecond.hParent=item_root;
				int nID=m_tree.GetItemData(item_root);  //获取父项ID,用于寻找属于该父项的所有子项
				CString value="";
				_variant_t var;
 				SQLStr.Format("select * from Department  where  Upnodeid=%d",nID);
			    //打开数据集
 			    pDepartmentRecordset->Open(_bstr_t(SQLStr),
				                             ((CSjsysApp*)AfxGetApp())->pConnection.GetInterfacePtr(),
											 adOpenDynamic,
											 adLockOptimistic,
											 adCmdText);	
			    while(!pDepartmentRecordset->adoEOF)
				{
				 var = pDepartmentRecordset->GetCollect("CName");
				 if(var.vt != VT_NULL)value=(LPCSTR)_bstr_t(var);
				 tvSecond.item.pszText=(LPTSTR)(LPCTSTR)value;
				 item_second=m_tree.InsertItem (&tvSecond);
                 
				 //设置树项对应的ID号
				 var = pDepartmentRecordset->GetCollect("ID");
				 if(var.vt != VT_NULL)value=(LPCSTR)_bstr_t(var);
				 int ID=atoi(value);
				 m_tree.SetItemData(item_second,ID);
                 pDepartmentRecordset->MoveNext();
				}
			pDepartmentRecordset->Close();		
		    item_root=m_tree.GetPrevSiblingItem(item_root);
			}
	
	}
	catch(_com_error *e)
	{
		AfxMessageBox(e->ErrorMessage());
	}


    
    //插入部室名(第三级)
	tvThird.item.mask=TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE;
    tvThird.item.iImage=2;
	tvThird.item.iSelectedImage=2;
	i=0;
	try
	{
			while(item_second!=NULL)
			{
				tvThird.hParent=item_second;
				int nID=m_tree.GetItemData(item_second);  //获取父项ID,用于寻找属于该父项的所有子项
				CString value;
				_variant_t var;
				SQLStr.Format("select * from Department  where  Upnodeid=%d",nID);
			    //打开数据集
 			    pDepartmentRecordset->Open(_bstr_t(SQLStr),
				                             ((CSjsysApp*)AfxGetApp())->pConnection.GetInterfacePtr(),
											 adOpenDynamic,
											 adLockOptimistic,
											 adCmdText);	
			    while(!pDepartmentRecordset->adoEOF)
				{
					
				 var = pDepartmentRecordset->GetCollect("CName");
				 if(var.vt != VT_NULL)value=(LPCSTR)_bstr_t(var);
				 tvThird.item.pszText=(LPTSTR)(LPCTSTR)value;
				 item_third[i]=m_tree.InsertItem (&tvThird);
                 /*CString str123;
                 str123.Format("%d",i);
                 AfxMessageBox(str123);*/
				 //设置树项对应的ID号
				 var = pDepartmentRecordset->GetCollect("ID");
				 if(var.vt != VT_NULL)value=(LPCSTR)_bstr_t(var);
				 //AfxMessageBox(value);
				 int ID=atoi(value);
				 m_tree.SetItemData(item_third[i],ID);
				 i++;
                 tvFourth.item.mask=TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE;

                 pDepartmentRecordset->MoveNext();
				}
			pDepartmentRecordset->Close();	
			
		    item_second=m_tree.GetPrevSiblingItem(item_second);
			
		}
	}
	catch(_com_error *e)
	{
		AfxMessageBox(e->ErrorMessage());
	}
	
	
   //插入设备名(第四级)
	tvFourth.item.mask=TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE;
	CString online;
	int bonline;     //标识是否在线
    try
	{	
			i=0;
			while(item_third[i]!=NULL)
			{
				tvFourth.hParent=item_third[i];
				int nID=m_tree.GetItemData(item_third[i]);  //获取父项ID,用于寻找属于该父项的所有子项
				CString value="";
				_variant_t var;
				//
 			    SQLStr.Format("select Device.Devicename,Device.ID,Device.Deviceip,Filterconf.bOnline,Device.Employeeid from Device left outer join Filterconf on Device.ID=Filterconf.Deviceid  where Device.Employeeid in (select ID from Employee where Departmentid=%d) order by bOnline desc",nID);
				//打开数据集
				pDeviceRecordset->Open(_bstr_t(SQLStr),
					                   ((CSjsysApp*)AfxGetApp())->pConnection.GetInterfacePtr(),
									   adOpenDynamic,
									   adLockOptimistic,
									   adCmdText);	
				while(!pDeviceRecordset->adoEOF)
				{
                    //
					
					var = pDeviceRecordset->GetCollect("Devicename");
					if(var.vt != VT_NULL)value=(LPCSTR)_bstr_t(var);
					tvFourth.item.pszText=(LPTSTR)(LPCTSTR)value;
		
					var = pDeviceRecordset->GetCollect("bOnline");
					if(var.vt != VT_NULL)online=(LPCSTR)_bstr_t(var);
					bonline=atoi(online);
					if(bonline==1)
					{
						tvFourth.item.iImage=4;
						tvFourth.item.iSelectedImage=4;
					}
					else
					{
						tvFourth.item.iImage=3;
						tvFourth.item.iSelectedImage=3;
					}

					HTREEITEM item_fourth=m_tree.InsertItem(&tvFourth);

					UINT id;
					var = pDeviceRecordset->GetCollect("ID");
					if(var.vt != VT_NULL)value=(LPCSTR)_bstr_t(var);
					id=atoi(value);
					m_tree.SetItemData(item_fourth,id);
					pDeviceRecordset->MoveNext();
				}
				
				pDeviceRecordset->Close();	
				//AfxMessageBox("here!");
				i++;
			}
		
	}
					
    catch(_com_error *e)
	{
		AfxMessageBox(e->ErrorMessage());
	}

	//插入未分类的
	//插入第一层
	tvRoot.hParent=NULL;
	tvRoot.item.pszText="未分类";
	tvRoot.item.mask=TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE;
    tvRoot.item.iImage=0;
	tvRoot.item.iSelectedImage=0;
	item_root=m_tree.InsertItem (&tvRoot);
	hUnDivide=item_root;


	//插入第二层
	tvSecond.hParent=item_root;
	tvSecond.item.mask=TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE;

	try
	{
			SQLStr="select Device.ID,Device.Deviceip,Filterconf.bOnline,Device.Employeeid from Device left outer join Filterconf on Device.ID=Filterconf.Deviceid  where Device.Employeeid=0 order by bOnline desc";
			//打开数据集
 			pDeviceRecordset->Open(_bstr_t(SQLStr),
				                   ((CSjsysApp*)AfxGetApp())->pConnection.GetInterfacePtr(),
								   adOpenDynamic,
								   adLockOptimistic,
								   adCmdText);	
			
			CString value="";
			_variant_t var;
			while(!pDeviceRecordset->adoEOF)
			{
				var = pDeviceRecordset->GetCollect("Deviceip");
				if(var.vt != VT_NULL)value=(LPCSTR)_bstr_t(var);
				tvSecond.item.pszText=(LPTSTR)(LPCTSTR)value;
		
				CString online;
				var = pDeviceRecordset->GetCollect("bOnline");
				if(var.vt != VT_NULL)online=(LPCSTR)_bstr_t(var);
				UINT bonline=atoi(online);
				if(bonline==1)
				{
					tvSecond.item.iImage=4;
					tvSecond.item.iSelectedImage=4;
				}
				else
				{
					tvSecond.item.iImage=3;
					tvSecond.item.iSelectedImage=3;
				}
                
				item_second=m_tree.InsertItem(&tvSecond);

				UINT ID;
				var = pDeviceRecordset->GetCollect("ID");
				if(var.vt != VT_NULL)value=(LPCSTR)_bstr_t(var);
				ID=atoi(value);
				//item_second=m_TreeCtr.InsertItem(&tvSecond);
				m_tree.SetItemData(item_second,ID);
				pDeviceRecordset->MoveNext();
			}
			pDeviceRecordset->Close();
              
			///////////////////////
			//	获得最大的ID索引值
			///////////////////////
			SQLStr="select max(ID) as MaxID from Device";
			//打开数据集
 			pDeviceRecordset->Open(_bstr_t(SQLStr),
				                   ((CSjsysApp*)AfxGetApp())->pConnection.GetInterfacePtr(),
								   adOpenDynamic,

⌨️ 快捷键说明

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