谁能帮我解决这个小问题?

qhgary 2002-10-11 10:56:40
我现在在写一个模块涉及数据库方面,不是很熟悉。想请教一下。就是我有一个字段是不需要输入数据的,是根据另外几个字段的值计算出来的。我又想在输入完那几个相关字段后自动显示出这个字段的值,并且保存进数据库。不知道该怎么做?我用了DBNvigator和DBEdit,就是在DBEdit里面输入,然后其中某一个DBEdit不需要输入,而是自动显示它的值(根据其他几个相关DBEdit的值计算出来的)
不知道我说清楚没有。谢谢,非常着急,在线等待
...全文
26 15 打赏 收藏 举报
写回复
15 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
qhgary 2002-10-12
非常感谢PPower和Libran(),我把分给你们了。能多问一个问题么
老师要求有一个自动增的字段(定单号)可是实际操作中发现很不号用,非要post以后定单号才加1(数据库中)可我想让它显示在屏幕上,表示这次的定单号,该怎么做?
  • 打赏
  • 举报
回复
Libran 2002-10-12
在设计时,双击Table控件上打开字段编辑器,点鼠标右键,选New Field...,输入Name、Type等,Field type选为Caculated,点[OK]完成字段添加
然后在Table的OnCalcFields事件里添加代码为新添的字段赋值
例如:新添字段的Name为F0,其值应为原有的字段F1与F2的值得和,则在Table的OnCalcFields事件里写:
{
DataSet->FieldByName("F0")->AsInteger =
DataSet->FieldByName("F1")->AsInteger +
DataSet->FieldByName("F2")->AsInteger;
}
当字段F1、F2的值改变时,字段F0的值会自动重新计算
  • 打赏
  • 举报
回复
勉励前行 2002-10-12
“字段放在数据库了”
可用Field->OnChange事件去同步更新它。
例:
select F1,F2,F3,F4 from myTable
要求:F4 =(F1+F2+F3)*F1/2 ;
可以這樣做:
在F1,F2,F3的FieldChange事件中寫上:
{
F4->Value =(F1->Value+F2->Value+F3->Value)*F1->Value/2 ;
}
這是把規則放在前端完成的例子。
使用觸發器是把規則放在後端完成。
  • 打赏
  • 举报
回复
qhgary 2002-10-12
问题在于怎么判断啊? 判断是否输入了字符或者数字还好说,这判断日期??太复杂了吧,有没有简单的办法,难道控件中没有考虑到这样的事情么?
  • 打赏
  • 举报
回复
qhgary 2002-10-12
我已经把这个字段放在数据库了,再新建哥字段?什么意思?我是说直接把那个字段的值让它自动产生
  • 打赏
  • 举报
回复
qhgary 2002-10-12
没有用SQL是用的table那种,具体怎么做? 这个字段怎么添加?我加了没有反应,公式又如何写?
  • 打赏
  • 举报
回复
xxgxxggxxgxx 2002-10-12
叫 TDateTimePicker 吧

OnAfertScroll 中把字段值赋给DateTimePicker1.DateTime(同步显示日期)
OnBeforPost 中检查各种各种输入的合法性,
把DateTimePicker1.DateTime赋回给字段
当然也赋id号等等等等
如此这般这般



单用户中上条单号就是 Last(最后一条,排序) 那条记录的 单号
或用 Max()函数查询出
然后你可以用一个变量跟踪它(最大单号)
  • 打赏
  • 举报
回复
qhgary 2002-10-12
楼上,选择日期的控件是哪个?如果我要达到修改后和数据库对应字段值同步具体怎么做,还有就是定单号怎么取得数据库中目前最大的定单号?
  • 打赏
  • 举报
回复
xxgxxggxxgxx 2002-10-12

输入日期不是有用于选择日期的控件吗

如是单机版:定单号可以在上个值上加1来显示啊
(网络版就没办法了,不能事先确定的)
  • 打赏
  • 举报
回复
zjqc 2002-10-12
在BeforePost事件中判断!符合要求就Post,否则就Abort。
  • 打赏
  • 举报
回复
qhgary 2002-10-12
我的数据库文件中已经设置了valid check,可是运行的时候不能保证输入啊,好象DBGrid里面可以错误不让输入 可我用的DBEdit怎么办?
  • 打赏
  • 举报
回复
qhgary 2002-10-12
真是不好意思,又碰到一个问题就是我用DBEdit控件,如果输入不合法怎么办?在哪里添加处理代码,因为和DBEdit磅定的对象不一样,总不能每次在OnExit里面写判断代码吧?谢谢了,久这么多问题。希望能得到指点
  • 打赏
  • 举报
回复
killedkiss 2002-10-11
我写过一个不过是用的循环写的
  • 打赏
  • 举报
回复
mynameis007 2002-10-11
TQuery:SQL:
select ......,youField1*yourField2 as "计算字段" from yourTbable
  • 打赏
  • 举报
回复
mynameis007 2002-10-11
双击Table新建一个Calculate字段.试试看,很简单...计算的公式添上就可以了.
  • 打赏
  • 举报
回复
相关推荐
发帖
C++ Builder

1.3w+

社区成员

C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
帖子事件
创建了帖子
2002-10-11 10:56
社区公告
暂无公告