论坛登陆 用户: 密码:
联系我们
设为首页
加入收藏
业界新闻 网络编程 程序开发 网页图象 聊天通讯 软件应用 网络安全 硬件学堂 教育频道 站长club
  ·推荐新闻
 
·美前任官员认为amd告倒英特
·搜索引擎关键字排行简介
·网站优化教程(一)
·msn近期遭受木马病毒骚扰 用
·用qq管理你的系统^_^ 
·测评中心金山毒霸联合发布7
·qq群聊实名 普通用户不受影
·雅虎思科联手推数字邮件签名
·这18条背下来没人敢和你忽悠
·自己动手,拯救丢失的硬盘数
  ·资料搜索
 
  ·相关文章
·制作用于日期时间型字段的delp
·数据库应用程序开发中图像数据
·dbgrid中的下拉列表和查找字段
·在delphi中建立和使用别名
·用delphi实现将纯文本资料转入
·tdbgrid控件中对多个记录的处理
·在delphi动态生成定义数据库
·用delphi编程访问sqlserver数据
·在dbgrid中实现copy、paste功能
  ·热门新闻
首页>>程序开发>>delphi >>文章正文

delphi 中使用计算出的字段


 日期:2005-7-18 9:00:39     来源:易特网络技术   编辑:黑鹰  点击:
p>  在很多情况下,我们需要的数据与数据库中其它字段的数据相关,例如订单的金额为数量与单价的乘积。在应用程序中,若要在显示订单具体条目的同时显示金额,通常要创建一个字段,在显示该字段之前先进行乘法运算,将金额值存储在该字段中。但是,若用户修改了数量或单价,那就不得不更改金额值。这个问题立刻变得复杂起来,幸好delphi提供了在数据库表中定义附加字段的容易方法。这种字段被称为计算出的字段(calculatedfields),它们以数据库表中的其他字段为基础。计算出的字段的优点是计算出的值不被存储在数据库中,不过,每次记录发生变化时都要对其进行计算,且需要访问和显示字段。下面说明使用计算出的字段的方法。
  1. 建立新的工程文件project1, 在form1上放置一个table、一个datasource和一个dbgrid 控件,datasource1的datasource 属性为table1,dbgrid1的datasource属性为datasource1。table1中所用的数据库表为order.db,将table1的active属性置为true。 下面是table1的定义:

字段名
类型
说明字段含义
productid
+产品
编号
quantity
n
数量
price
$
单价

  2. 添加计算出的字段cash。用鼠标右键单击table1组件,在弹出菜单中选取fieldseditor…项,进入字段编辑器;再用鼠标右键单击字段编辑器的字段显示区? 在弹出菜单中选取add fields…项,将table1的所有字段都加入字段编辑器中;再次用鼠标右键单击字段编辑器的字段显示区域,在弹出菜单中选取new field…项,进入新字段编辑器,设新字段的name为cash,type为currency,fieldtype为calculated,用鼠标单击ok命令按钮,即完成了添加计算出的字段cash。
  3 .添加table1的oncalcfields事件。其代码为:

proceduretform1.table1calcfields(dataset: tdataset);
var
quantity1:single;
price1:currency;
begin
quantity1:=table1.fieldbyname(quantity).asfloat; //数量
price1:=table1.fieldbyname(price).ascurrency; //单价
table1.fieldbyname(cash).ascurrency:=quantity1*price1; //应付资金
end;

  运行程序,你可以在表格的quantity 和price栏中任意修改数据并移动记录,cash栏即刻显示出与 之相应的金额值。

上一篇:dbgrid中的下拉列表和查找字段编程方法
下一篇:数据库应用程序开发中图像数据的存取技术
[发送给好友] [打印本页] [关闭窗口] [返回顶部转载请注明来源:http://www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 黑鹰 投稿作者: 易特网络
信息来源: 易特网络技术 录入时间: 2005-7-18 9:00:39
浏览次数: 投稿信箱: shtghy@163.com
设置首页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
copyrights ©2004-2005 iyit.net all rights reserved. 网站合作、广告联系qq:147007642、466949678
易特网络技术 点击这里给我发消息