设为首页 加入收藏

TOP

??VC?????????????????????
2012-11-04 15:10:22 】 浏览:509
Tags:
.Recordset :

1. CTreeDataDlg.h :

//------------------------------------------
private:
HRESULT hRes;
_RecordsetPtr m_TreeRecordset; //
//------------------------------------------
public:
CImageList m_TreeBootImage; //Tree

2. (1). TreeCtrl , ComboExe ; TreeCtrl ;


(2). BMP , Tree (TreeBoot.bmp), ID IDB_TreeBootImage;

(3). , .

3. CTreeDataDlg ,

TreeAddTree(bool Ta): void CBusinessView::TreeAddTree(bool Ta)
{
//--------------Tree ------------------------
TVINSERTSTRUCT tvInsert;
HTREEITEM hParent;
//------------------------------------------------
tvInsert.hParent = NULL;
tvInsert.hInsertAfter = NULL;
tvInsert.item.mask = TVIF_TEXT;
//----------------- ----------------------------
m_TreeBootImage.Create ( IDB_TreeBootImage,20,1,ILC_COLOR8);
m_ctrlTree.SetImageList ( &m_TreeBootImage,TVSIL_NORMAL );
m_ctrlTree.SetTextColor (RGB(7,145,13));
//-------- ----------------------------------------
tvInsert.item.pszText = _T(" й ");
hParent = m_ctrlTree.InsertItem(&tvInsert);
//--------------- -------------------------------
TreeAddSubTree(" й ","1",hParent);
//--------------------- Tree ------------------
m_ctrlTree.Expand(hParent,TVE_EXPAND);
}

4. COM CString :

//----------------- VARIANT CString --------------
CString CBusinessView::VariantToCString(VARIANT var)
{
CString strValue;
_variant_t var_t;
_bstr_t bst_t;
time_t cur_time;
CTime time_value;
COleCurrency var_currency;
switch(var.vt)
{
case VT_EMPTY:strValue=_T("");break;
case VT_UI1:strValue.Format ("%d",var.bVal);break;
case VT_I2:strValue.Format ("%d",var.iVal );break;
case VT_I4:strValue.Format ("%d",var.lVal);break;
case VT_R4:strValue.Format ("%f",var.fltVal);break;
case VT_R8:strValue.Format ("%f",var.dblVal);break;
case VT_CY:
var_currency=var;
strValue=var_currency.Format(0);
break;
case VT_BSTR:
var_t=var;
bst_t=var_t;
strValue.Format ("%s",(const char*)bst_t);
break;
case VT_NULL: strValue=_T(""); break;
case VT_DATE:
cur_time=var.date;
time_value=cur_time;
strValue=time_value.Format("%A,%B%d,%Y");
break;
case VT_BOOL: strValue.Format ("%d",var.boolVal ); break;
default: strValue=_T(""); break;
}
return strValue;
}

5.

TreeAddSubTree(CString ParTree,CString strChildTree,HTREEITEM hPartItem):

麯 .

if (strChildTree!="0")
{
//---------------- ж ----------
_RecordsetPtr m_pTreeRecordset; //
_variant_t vChild;
//--------------Tree ------------------------
HTREEITEM hCurrent;
//----------------------------------------------
CString strSQL,strCurItem;
//-----------------------------------------------
strSQL="SELECT * FROM TreeItem where ParentItem like ''%" ;
strSQL=strSQL+ParTree+"%''";
try
{
HRESULT hTRes;
hTRes = m_pTreeRecordset.CreateInstance(_T("ADODB.Recordset"));
if (SUCCEEDED(hTRes))
{
//----------------------------------------------------
hTRes = m_pTreeRecordset->Open((LPTSTR)strSQL.GetBuffer(130),
_variant_t((IDispatch *)(((CBusinessApp*)AfxGetApp())->m_pTreeConnection),true),
adOpenDynamic,adLockPessimistic,adCmdText);
if(SUCCEEDED(hTRes))
{
TRACE(_T(" !\n"));
//------------------------------------------
m_pTreeRecordset->MoveFirst();
if (!(m_pTreeRecordset->adoEOF))
{

while(!m_pTreeRecordset->adoEOF)
{
hCurrent = m_ctrlTree.InsertItem((LPCTSTR)(_bstr_t)\
(m_pTreeRecordset->GetCollect("Name")), hPartItem, NULL);
//--------------- City Combo ------------------
m_ctrlComboCity.AddString(VariantToCString(m_pTreeRecordset->GetCollect("Name")));
if (TreeSumRecordCount(VariantToCString\
(m_pTreeRecordset->GetCollect("Name")))>0)
{
TreeAddSubTree(VariantToCString(m_pTreeRecordset->GetCollect("Name")),
(VariantToCString(m_pTreeRecordset->GetCollect("Name"))),
hCurrent);
}

if (!(m_pTreeRecordset->adoEOF))
{
m_pTreeRecordset->MoveNext();
}
}
}
//---------------------------------------
}
}
}
catch(_com_error e)///
{
CString errormessage;
MessageBox(" City !",ParTree+strChildTree);
}
}

6.

ReturnTreeChilds(CString strCurItem):
麯 .

//---------------- ------------------------
CString CTreeDataDlg::ReturnTreeChilds(CString strCurItem)
{
CString strTreeChildren;//
if (TreeSumRecordCount(strCurItem) > 0)
{
//-------------------- ---------------------
_RecordsetPtr m_pTreeRecordset; //
_variant_t vCur;
CString strSQL;
//-----------------------------------------------
strSQL="SELECT * FROM TreeItem where ParentItem like ''%" ;
strSQL=strSQL+strCurItem+"%''";
try
{
HRESULT hTRes;
hTRes = m_pTreeRecordset.CreateInstance(_T("ADODB.Recordset"));
if (SUCCEEDED(hTRes))
{
//----------------------------------------------------
hTRes = m_pTreeRecordset->Open((LPTSTR)strSQL.GetBuffer(130),
_variant_t((IDispatch *)(((CTreeDataApp*)AfxGetApp())->m_pTreeConn),true),
adOpenDynamic,adLockPessimistic,adCmdText);
if(SUCCEEDED(hTRes))
{
TRACE(_T(" !\n"));
//------------------------------------------
m_pTreeRecordset->MoveFirst();
vCur=(m_pTreeRecordset->GetCollect("Name"));
if (TreeSumRecordCount(VariantToCString(vCur))>=0)
{
while(!m_pTreeRecordset->adoEOF)
{
vCur=(m_pTreeRecordset->GetCollect("Name"));
strTreeChildren+=(",''"+VariantToCString(vCur)+"''");
if (TreeSumRecordCount(VariantToCString(vCur))!=0)
{
strTreeChildren+=ReturnTreeChilds(VariantToCString(vCur));
}
if (!(m_pTreeRecordset->adoEOF))
{
m_pTreeRecordset->MoveNext();
}
}
}
//---------------------------------------
}
}
}
catch(_com_error e)///
{
CString errormessage;
AfxMessageBox(" ChildTree !"+strCurItem);
}
}
return strTreeChildren;
}

7. TreeCtrl (OnClick) (SelchangedTree) :

void CTreeDataDlg::OnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
//--------------------------------------------------------
hTreeCurrent=m_ctrlTree.GetSelectedItem ();
hTreeParent=m_ctrlTree.GetParentItem(m_ctrlTree.GetSelectedItem ());
//------------------- ---------
m_ctrlTree.SetItemImage(hTreeCurrent,1,true );
//----------------------------------------------
TreeCurrent="''"+m_ctrlTree.GetItemText(hTreeCurrent)+"''";
TreeParent=m_ctrlTree.GetItemText (hTreeParent);
//--------------------- ListTree е --------------
//------------- е ------
hTreeCurrent=m_ctrlTree.GetSelectedItem ();
m_strEdit=TreeCurrent+ReturnTreeChilds(m_ctrlTree.GetItemText(hTreeCurrent));
UpdateData(false);// Edit
//---------------------------------------------------
*pResult = 0;
}
void CTreeDataDlg::OnClickTree1(NMHDR* pNMHDR, LRESULT* pResult)
{
//------------------- ---------
m_ctrlTree.SetItemImage(hTreeCurrent,0,true );
//----------------------------------------------
*pResult = 0;
}

. BOOL CTreeDataDlg::OnInitDialog() : TreeAddTree();

Ч


:

н в , ; , !


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇VC++中轻松实现滑动(Slider)控件 下一篇用VC实现按数据库记录构建树控件

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目