📄 clienttreedlgview.cpp
字号:
_RecordsetPtr m_pTreeRecordset; //用于创建一个查询记录集
CString strSQL,strCurItem;
if(dlg.m_NewItemName.GetLength()<1)
{
AfxMessageBox("需要输入组名称");
return;
}
// strSQL.Format("INSERT INTO ComputerGroups(ComputerGroupId,ComputerGroupName,ParentComputerGroupid) VALUES(select MAX(ComputerGroupId) from ComputerGroups,'%s',%d)",dlg.m_NewItemName,m_ClientTree.GetItemData(hTreeCurrent));
strSQL.Format("INSERT INTO ComputerGroups(ComputerGroupName,ParentComputerGroupid) VALUES('%s',%d)",dlg.m_NewItemName,m_ClientTree.GetItemData(hTreeCurrent));
_variant_t varSQLtcp(strSQL);
try
{
HRESULT hTRes;
hTRes = m_pTreeRecordset.CreateInstance(_T("ADODB.Recordset"));
if (SUCCEEDED(hTRes))
{
hTRes = m_pTreeRecordset->Open(varSQLtcp,
_variant_t((IDispatch *)m_db,true),
adOpenStatic,adLockOptimistic,adCmdText);
}
}
catch(...)
{
AfxMessageBox("INSERT DATA ERROR\r\n");
TRACE("INSERT DATA ERROR\r\n");
}
hTreeCurrent = m_ClientTree.InsertItem(dlg.m_NewItemName, hTreeCurrent, NULL);
// m_ClientTree.SetItemData(hTreeCurrent, m_pTreeRecordset->GetCollect("ComputerGroupId").iVal );
Refresh();
}
}
void CClientTreeDlgView::OnPopupInstall()
{
// TODO: Add your command handler code here
CInstallKillDlg dlg;
HTREEITEM hTreeCurrent;//当前项句柄
hTreeCurrent=m_ClientTree.GetSelectedItem ();
if(dlg.DoModal()==IDOK)
{
if(dlg.m_IncludeAllSubTreeNum)
{
CMainFrame * pMain=(CMainFrame *)AfxGetMainWnd();
pMain->m_SocketServer.InstallGroup(m_ClientTree.GetItemData(hTreeCurrent),pMain->m_ClientPort,pMain->m_InstallUrl.GetBuffer(0),1);
}
else
{
CMainFrame * pMain=(CMainFrame *)AfxGetMainWnd();
pMain->m_SocketServer.InstallGroup(m_ClientTree.GetItemData(hTreeCurrent),pMain->m_ClientPort,pMain->m_InstallUrl.GetBuffer(0),0);
}
}
}
void CClientTreeDlgView::OnPopupEdit()
{
// TODO: Add your command handler code here
HTREEITEM hTreeCurrent;//当前项句柄
hTreeCurrent=m_ClientTree.GetSelectedItem ();
CString TreeCurrentStr;
TreeCurrentStr="‘"+m_ClientTree.GetItemText(hTreeCurrent)+"’";
if(TreeCurrentStr.Compare("‘组织’")==0 || TreeCurrentStr.Compare("‘未分组’")==0)
return;
int i=m_ClientTree.GetItemData(hTreeCurrent);
if(i==0 || i==1 || i==2)
return;
CItemEditDlg dlg;
if(dlg.DoModal()==IDOK)
{
// dlg.m_NewItemName;
_RecordsetPtr m_pTreeRecordset; //用于创建一个查询记录集
CString strSQL,strCurItem;
if(dlg.m_NewItemName.GetLength()<1)
{
AfxMessageBox("需要输入组名称");
return;
}
strSQL.Format("UPDATE ComputerGroups SET computerGroupName='%s' where ComputerGroupid = %d",dlg.m_NewItemName,m_ClientTree.GetItemData(hTreeCurrent));
_variant_t varSQLtcp(strSQL);
try
{
HRESULT hTRes;
hTRes = m_pTreeRecordset.CreateInstance(_T("ADODB.Recordset"));
if (SUCCEEDED(hTRes))
{
hTRes = m_pTreeRecordset->Open(varSQLtcp,
_variant_t((IDispatch *)m_db,true),
adOpenStatic,adLockOptimistic,adCmdText);
}
}
catch(...)
{
}
m_ClientTree.SetItemText(hTreeCurrent,dlg.m_NewItemName);
// Refresh();
}
}
void CClientTreeDlgView::OnPopupDelete()
{
// TODO: Add your command handler code here
HTREEITEM hTreeCurrent,hTreeParent;//当前和父级项句柄
hTreeCurrent=m_ClientTree.GetSelectedItem ();
hTreeParent=m_ClientTree.GetParentItem(m_ClientTree.GetSelectedItem ());
CString TreeCurrentStr;
TreeCurrentStr="‘"+m_ClientTree.GetItemText(hTreeCurrent)+"’";
if(TreeCurrentStr.Compare("‘组织’")==0 || TreeCurrentStr.Compare("‘未分组’")==0)
return;
int i=m_ClientTree.GetItemData(hTreeCurrent);
if(i==0 || i==1 || i==2)
return;
CItemDeleteDlg dlg;
dlg.m_DeleteChild=true;
dlg.m_ItemName=TreeCurrentStr;
if(dlg.DoModal()==IDOK)
{
CString strSQL,strCurItem;
_CommandPtr Cmd1;
HRESULT hTRes;
hTRes=Cmd1.CreateInstance( __uuidof( Command ) );
if(SUCCEEDED(hTRes))
{
if(!dlg.m_DeleteChild)
{
try
{
Cmd1->ActiveConnection = m_db;
strSQL.Format("update ComputerGroups set ParentComputerGroupid=%d where ParentComputerGroupid=%d",m_ClientTree.GetItemData(hTreeParent),m_ClientTree.GetItemData(hTreeCurrent));
Cmd1->CommandText = strSQL.AllocSysString();
Cmd1->Execute(NULL,NULL,adCmdText);
strSQL.Format("DELETE FROM ComputerGroups where ComputerGroupid = %d",m_ClientTree.GetItemData(hTreeCurrent));
Cmd1->CommandText = strSQL.AllocSysString();
Cmd1->Execute(NULL,NULL,adCmdText);
}
catch(...)
{
}
}
else
DeleteSubTree(m_ClientTree.GetItemData(hTreeCurrent));
}
Refresh();
}
}
void CClientTreeDlgView::OnPopupUninstall()
{
// TODO: Add your command handler code here
CInstallKillDlg dlg;
HTREEITEM hTreeCurrent;//当前项句柄
hTreeCurrent=m_ClientTree.GetSelectedItem ();
if(dlg.DoModal()==IDOK)
{
if(dlg.m_IncludeAllSubTreeNum)
{
CMainFrame * pMain=(CMainFrame *)AfxGetMainWnd();
pMain->m_SocketServer.UnInstallGroup(m_ClientTree.GetItemData(hTreeCurrent),pMain->m_ClientPort,pMain->m_UnInstallUrl.GetBuffer(0),1);
}
else
{
CMainFrame * pMain=(CMainFrame *)AfxGetMainWnd();
pMain->m_SocketServer.UnInstallGroup(m_ClientTree.GetItemData(hTreeCurrent),pMain->m_ClientPort,pMain->m_UnInstallUrl.GetBuffer(0),0);
}
}
}
void CClientTreeDlgView::Refresh()
{
m_ClientTree.DeleteAllItems();
AddTree();
}
void CClientTreeDlgView::DeleteSubTree(int ParentComputerGroupid)
{
CString strSQL,strCurItem;
_RecordsetPtr m_pTreeRecordset; //用于创建一个查询记录集
_CommandPtr Cmd1;
HRESULT hTRes;
strSQL.Format("SELECT * FROM ComputerGroups where ParentComputerGroupid = %d",ParentComputerGroupid );
_variant_t varSQLtcp(strSQL);
try
{
// HRESULT hTRes;
hTRes = m_pTreeRecordset.CreateInstance(_T("ADODB.Recordset"));
if (SUCCEEDED(hTRes))
{
//----------------------------------------------------
hTRes = m_pTreeRecordset->Open(varSQLtcp,
_variant_t((IDispatch *)m_db,true),
adOpenStatic,adLockOptimistic,adCmdText);
// adOpenDynamic,adLockOptimistic,adCmdText);
if(SUCCEEDED(hTRes))
{
bool abc=m_pTreeRecordset->adoEOF;
int a=m_pTreeRecordset->GetRecordCount();
if (!m_pTreeRecordset->adoEOF)
{
for(int i=0;i<m_pTreeRecordset->GetRecordCount(); i++)
{
DeleteSubTree(m_pTreeRecordset->GetCollect("ComputerGroupId").intVal);
if (!(m_pTreeRecordset->adoEOF))
m_pTreeRecordset->MoveNext();
}
}
m_pTreeRecordset->Close();
}
hTRes=Cmd1.CreateInstance( __uuidof( Command ) );
if(SUCCEEDED(hTRes))
{
Cmd1->ActiveConnection = m_db;
strSQL.Format("DELETE FROM ComputerGroups where ComputerGroupid = %d",ParentComputerGroupid);
Cmd1->CommandText = strSQL.AllocSysString();
Cmd1->Execute(NULL,NULL,adCmdText);
}
}
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
MessageBox("创建City记录集失败!");
}
}
void CClientTreeDlgView::OnDblclkClientTree(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
// AfxMessageBox("abc");
*pResult = 0;
}
int CClientTreeDlgView::GetCurrentGroupId()
{
HTREEITEM hTreeCurrent;//当前项句柄
hTreeCurrent=m_ClientTree.GetSelectedItem ();
return m_ClientTree.GetItemData(hTreeCurrent);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -