📄 recorddlg.cpp
字号:
// 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 + -