(24)uniGUI for C++ builder表格篇之UniDBTreeGrid树表格的研究

时间:2024-03-23 07:54:41

                                                                          (中行雷威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。

(24)uniGUI for C++ builder表格篇之UniDBTreeGrid树表格的研究

二、技能分析

为实现上述目标,数据表必须有一个字段用来构建多级树结构,另外有两个字段分别标识记录ID和记录的所属ID。

三、表格设计

本例计划用城市区域和所属城市名称构成树结构表格,city_name将作为树节点,city_id和city_pid将分别记录每个记录的编号和所属节点的编号。

(24)uniGUI for C++ builder表格篇之UniDBTreeGrid树表格的研究(24)uniGUI for C++ builder表格篇之UniDBTreeGrid树表格的研究

四、项目设计

新建一个项目,放几个数据库连接和查询访问的相关控件和一个UniDBTreeGrid控件。如下图所示:

UniDBTreeGrid1的datasource指向UniDataSource1

UniDataSource1的dataset指向UniQuery1

UniQuery1的connection指向UniConnection1

UniConnection1的providername指向OracleUniProvider1

(24)uniGUI for C++ builder表格篇之UniDBTreeGrid树表格的研究

双击UniConnection1,先配置一下数据库连接关键字,包括驱动类型Provider:oracle数据库,server名称:填你的数据库连接串,用户名+密码,然后点Connect测试连接。如果连接失败,请先确认你本机数据库管理工具能否通过你输入的server字符串访问目标数据库。

(24)uniGUI for C++ builder表格篇之UniDBTreeGrid树表格的研究

配置完后,左侧的对应属性将变化如下,将

(24)uniGUI for C++ builder表格篇之UniDBTreeGrid树表格的研究

关键点:将UniDBTreeGrid1的IdField属性设为city表格的id字段(city_id),将UniDBTreeGrid的IdParentField设为city表格的pid(city_pid)

(24)uniGUI for C++ builder表格篇之UniDBTreeGrid树表格的研究

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);
}
//---------------------------------------------------------------------------