C++ Builder下数据库报表Master/Detail关系功能的实现

主从复合结构(Master/Detail)是基于"一对多"的关系,在一个数据库表中提供详细的信息,而这个表是通过另一个数据库表的外来关键字访问相关记录的。基于主从复合结构,我们可以在浏览一个表中的数据时,同时给出另一个表中与这个记录相关的所有记录信息。Borland C++Builder提供了TTable 和TQuery类型的数据库控件,可以方便地实现数据库表的Master/Detail关系,本文即以BCB中自带的示例数据库BCDEMOS为例来说明如何采用不同方法实现数据表的主从复合结构关系,以数据浏览功能为例:即在浏览主数据表Customer.db(客户信息)记录的同时,显示从数据表Orders.db(客户定单信息)中与其相关的所有记录的详细信息。

TTable控件相关的基本属性简介如下:DatabaseName:设置要打开的数据库别名或数据库目录路径;TableName:设置所要关联打开的数据库表文件名;Active:设置为true时数据库表文件自动打开,否则需要用代码在程序中打开数据表。TQuery控件的基本属性:DatabaseName:设置要打开的数据库别名或数据库目录路径;SQL:Tstring类型,所要执行的SQL数据查询语句,可以直接在对象观察器(Object Inspector)中双击打开SQL属性进行编辑,Active:设置为true时自动打开查询数据库表文件,否则需要用代码在程序中打开查询数据表。两者与M/D相关的属性将在下边结合示例加以解释。

一、TTable控件关联主、从表实现Master/Detail关系报表

Master/Detail关系最简单的实现方法是用两个TTable控件分别与主表及从表关联。分别起名为TableMaster和TableDetail,设置TableMaster的DatabaseName为BCDEMOS,TableName为Customer.db;设置TableMaster的DatabaseName为BCDEMOS,TableName为Orders.db。如此即可分别关联上主从数据表。

时间: 2025-01-21 13:50:30

C++ Builder下数据库报表Master/Detail关系功能的实现的相关文章

用C++ Builder建立数据库VCL使用经验

随着数据库的广泛应用,数据库编程已经成为程序设计中发展迅猛的一支.C++ Builder在数据库开发方面具有的强大功能是无可比拟的,你甚至可以不写一行程序就生成漂亮的数据库程序. 下面对C++Builder中的几个数据库VCL的使用技巧做一下介绍: 一.DBGrid控件 1.设置DBGrid的字段显示宽度属性 为了在DBGrid中建立较小的列,你必须建立一个显示标题,它等于或小于字段值.例如,你希望建立一个只有三个字符宽的列,你的列标题显示必须只有三个字符或更少. 2.改变DBGrid的显示字段

winform下水晶报表提示数据库登录[仅客户端提示,开发程序的机子不会出现此总量]

问题描述 winform下水晶报表提示数据库登录[仅客户端提示,开发程序的机子不会出现此总量] 解决方案 解决方案二:连接数据库问题是不是连接字符串写的有问题解决方案三:提示"您访问的资源不存在",,,解决方案四:开发主机就不会存在,但安装在客户机子就会出现此问题解决方案五:DataSetdsrpt=newDataSet();dsrpt=Ds.Copy();dsrpt.Tables[0].DefaultView.RowFilter="OrderID='"+Order

.NET环境下水晶报表使用总结 lihonggen0(原作)

水晶报表  .NET环境下水晶报表使用总结    lihonggen0(原作)    水晶报表是一个优秀的报表开发工具,本人在开发通用管理系统的时候,所有报表都使用水晶报表,其简单.易用和强大的功能令笔者倍加喜爱,现将水晶报表使用手记呈现给大家. 一.在使用自带的水晶报表时,请注册,否则只能使用30次 水晶报表注册码注册号:6707437608密码:AAP5GKS0000GDE100DS 二.使用CrystalReportViewer进行预览 CrystalReportViewer控件允许在应用

如何定义数据库表之间的关系

在设计关系型数据库时,最主要的一部分工作是将数据元素如何分配到各个关系数据表中.一旦完成了对这些数据元素的分类,对于数据的操作将依赖于这些数据表之间的关系,通过这些数据表之间的关系,就可以将这些数据通过某种有意义的方式联系在一起.例如,如果你不知道哪个用户下了订单,那么单独的订单信息是没有任何用处的.但是,你没有必要在同一个数据表中同时存储顾客和订单信息.你可以在两个关系数据表中分别存储顾客信息和订单信息,然后使用两个数据表之间的关系,可以同时查看数据表中每个订单以及其相关的客户信息.如果正规化

Win10 UWP开发系列:实现Master/Detail布局

原文:Win10 UWP开发系列:实现Master/Detail布局 在开发XX新闻的过程中,UI部分使用了Master/Detail(大纲/细节)布局样式.Win10系统中的邮件App就是这种样式,左侧一个列表,右侧是详情页面.关于这种 样式的说明可参看MSDN文档:https://msdn.microsoft.com/zh-cn/library/windows/apps/xaml/dn997765.aspx 样式如下: 在微软官方的Sample里,有这种样式的代码示例,下载地址:https:

VS.NET下水晶报表分发时的问题及解决

VS.NET下水晶报表分发时的问题及解决 一.载入报表时报错 千辛万苦,总算作完了程序,报表在开发机器上测试一切正常,做安装项目,生成后兴冲冲的拿到客户机上去试验,晕,载入报表时却报错(如图1),怎么会???仔细检查了程序代码,实在没有任何错误,看来问题出在报表发布上了. 经过一番苦苦寻觅,总算找到了问题所在.原来VS.NET环境下发布项目时水晶报表需要包含以下三种组件: 报表(*.rpt) 模块(*.msm) 运行库(*.msm) 这些模块文件是在C:Program FilesCommon F

VS.NET下水晶报表分发时的问题及解决3

VS.NET下水晶报表分发时的问题及解决3二.系统注册 报表在部分Win98的客户端可以载入,在部分Win98的客户端载入报表时却提示"Load Report Failed"(如图6),可恶,居然还出错,怎么回事? 原来,这是因为水晶报表运行时所需的CRQE.dll在客户端的系统注册不正确,而原因又是ATL.dll 的版本不对(Windows 98/ME下的正确版本号应为3.0.8449).解决办法有两条: 1. 在客户端安装IE6.0,难怪有的客户端运行正常. 2. 将ATL.msm

如何在VS.NET/C# Builder开发的网页中也能实现DOS下录入数据回车换行的功能

数据|网页 如何在VS.NET/C# Builder开发的网页中也能实现DOS下录入数据回车换行的功能北京煤炭科学研究总院经济与信息研究所 丁报圣 在DOS年代,录入数据时我们习惯了在录入完一行数据后敲一个回车转入下一行的数据录入.昔日DOS的辉煌已经成为过去,如今更加友好易用的GUI图形操作界面Windows已经进入了我们的日常生活. 1996年Windows95的出现是软件史上的一次伟大革命.Windows 是美国微软公司开发的一种图形方式的操作系统,它的出现克服了 DOS 中难记的一些命令

在.NET环境下将报表导出EXCEL和WORD lihonggen0(原作)

excel|word|导出excel 在.NET环境下将报表导出EXCEL和WORD    lihonggen0(原作)    在VB6开发环境下,本人使用EXCEL作过报表,在.NET环境下开发,本人使用水晶报表.但VB.NET同样可以将报表导出到EXCEL和WORD进行输出,制作出专业水平的报表. 具体操作如下:(注:首先需添加引用,选择COM-->选择Microsoft Word 10.0 Object Library和Microsoft Excel 10.0 Object Library