ID 總工程專案 分部工程名 子分部工程名 分項工程
1 zhang 1 2 3
2 zhang 2 5 6
3 wang 7 8 9
4 wang 10 11 12
5 li 13 14 15
6 li 123 2 4
7 liu 123 2 2
如上,將工程專案,分部工程,子分部工程,分項工程 按名稱分4級歸到treeview中,重復的工程名遞回到同一個節點。求助!
zhang
1
2
3
2
5
6
uj5u.com熱心網友回復:
僅供參考
//---------------------------------------------------------------------------
void __fastcall TMapFrm::TreeView1Init()
{
try
{
TTreeNode *Root,*Node1,*Node2;
AnsiString TempStr,SQLStr;
TreeView1->Items->Clear();
Root=TreeView1->Items->AddChild(NULL,"全國高速公路網");
Root->SelectedIndex=0;
//Root->Selected=true;
DataMod->ProvinceADOQ->Close();
SQLStr="Select * from ProvinceTable Where DeviceNum>0 Order by ProvinceID";
DataMod->ProvinceADOQ->SQL->Text=SQLStr;
DataMod->ProvinceADOQ->Open();
DataMod->ProvinceADOQ->First();
while(!DataMod->ProvinceADOQ->Eof)
{
TempStr=DataMod->ProvinceADOQ->FieldByName("ProvinceID")->AsAnsiString.SubString(3,2);
TempStr+=DataMod->ProvinceADOQ->FieldByName("ProvinceName")->AsAnsiString;
//TempStr+="("+DataMod->ProvinceADOQ->FieldByName("DeviceNum")->AsAnsiString+")";
Node1=TreeView1->Items->AddChild(Root,TempStr);
Node1->SelectedIndex=1;
DataMod->WaysADOQ->Close();
SQLStr="Select * from waysTable where ProvinceID=";
SQLStr+=DataMod->ProvinceADOQ->FieldByName("ProvinceID")->AsAnsiString;
SQLStr+=" order by highwayID";
DataMod->WaysADOQ->SQL->Text=SQLStr;
DataMod->WaysADOQ->Open();
DataMod->WaysADOQ->First();
while(!DataMod->WaysADOQ->Eof)
{
TempStr=DataMod->WaysADOQ->FieldByName("highwayID")->AsAnsiString.SubString(5,3);
TempStr+=DataMod->WaysADOQ->FieldByName("highwayName")->AsAnsiString;
Node2=TreeView1->Items->AddChild(Node1,TempStr);
Node2->SelectedIndex=2;
DataMod->WaysADOQ->Next();
}
DataMod->ProvinceADOQ->Next();
}
}
catch(...)
{
//
}
}
uj5u.com熱心網友回復:
我只有一張報,能實作嗎。還是要設計多張表?uj5u.com熱心網友回復:
就你那個格式,一張表就夠了uj5u.com熱心網友回復:
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/110081.html
標籤:數據庫及相關技術
