(中行雷威2018.9.26)
(同一个世界,同一个梦想,交流学习C++Builder XE10,传承c++builder的魅力!欢迎各地朋友加入我的QQ群484979943,进群密码“BCB”,同时也请将该群号广为宣传,希望能够广集各方高手,共同进步。如需下载开发工具及源代码请加入我的QQ群。)
【阅读倡议】
1、有问题请留言;
2、没问题请点赞;
3、看连载请加群;
4、下源码请加群;
【开发工具】
1、C++Builder10.2.3 tokyo
2、FMSoft_uniGUI_Complete_Professional_1.10.0build1480(正版)
3、uniDAC万能数据库访问控件
4、oracle11g
一、研究目标
开发一个表格,让某个字段带有一定的归属关系展示,如下图city_name。
二、技能分析
为实现上述目标,数据表必须有一个字段用来构建多级树结构,另外有两个字段分别标识记录ID和记录的所属ID。
三、表格设计
本例计划用城市区域和所属城市名称构成树结构表格,city_name将作为树节点,city_id和city_pid将分别记录每个记录的编号和所属节点的编号。
四、项目设计
新建一个项目,放几个数据库连接和查询访问的相关控件和一个UniDBTreeGrid控件。如下图所示:
UniDBTreeGrid1的datasource指向UniDataSource1
UniDataSource1的dataset指向UniQuery1
UniQuery1的connection指向UniConnection1
UniConnection1的providername指向OracleUniProvider1
双击UniConnection1,先配置一下数据库连接关键字,包括驱动类型Provider:oracle数据库,server名称:填你的数据库连接串,用户名+密码,然后点Connect测试连接。如果连接失败,请先确认你本机数据库管理工具能否通过你输入的server字符串访问目标数据库。
配置完后,左侧的对应属性将变化如下,将
关键点:将UniDBTreeGrid1的IdField属性设为city表格的id字段(city_id),将UniDBTreeGrid的IdParentField设为city表格的pid(city_pid)
void __fastcall TMainForm::UniBitBtn1Click(TObject *Sender)
{//查询数据按钮,显示树机构表格
UniQuery1->Close();
UniQuery1->SQL->Clear();
UniQuery1->SQL->Add("select city_name,city_cold,city_id,city_pid from city");
UniQuery1->Open();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::UniBitBtn2Click(TObject *Sender)
{//取字段按钮,获取点击记录的某个字段值
String tmpStr;
tmpStr=UniDBTreeGrid1->DataSource->DataSet->FieldByName("city_name")->AsString;
ShowMessageN(tmpStr);
}
//---------------------------------------------------------------------------