向大家咨询,希望大家给些建议!

fireegg 2006-06-30 10:26:20
我原来编个系统是FOXPRO的,表单较多,每个表单是一个表的数据,字段很多,有三百个左右,因为是检验数据,所以这么多,基本上有10个表这样吧,就是要做10个表单这么多字段的表单,在DELPHI中似乎不太好弄,而且这其中检验某一项数据,需要用到1、2十个字段进行计算的,原来是写在TEXT的LOSTFOCUS里去计算,现在DELPHI里可能也只能写成这种样子。。
现在我自己的想法是用DBEDIT系统存数据,有计算的也是放在DBEDIT的上写,去激活,然后填数据保存。。主要是按钮太多,一个表单要放好几个百。。。

想问的是大家有没什么好的建议,能够简化些,比较快的方法?给些建议吧,谢谢
...全文
257 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
wudi_1982 2006-07-03
  • 打赏
  • 举报
回复
学太极拳的时候,张三丰问张无忌:“忘了吗?” 有时候,忘记一些东西,是一种更大的进步。

改忘记的东西,就忘记吧。
Hank 2006-07-03
  • 打赏
  • 举报
回复
老大,可以用命令行加入啊,一个循环就搞定了,和VFP是一样的

Delphi的计算字段不用写代码,直接设置就可以,这个和VFP不同

Delphi没有LostFocus事件,有类似的OnExit事件
fireegg 2006-07-03
  • 打赏
  • 举报
回复
谢谢星星农场
fireegg 2006-07-03
  • 打赏
  • 举报
回复
我都用FASTREPORT,简单是挺简单的,就是字段多,全部加进去工作量较大,还有计算也是直接写在控件的LOSTFOCUS中是吗?你们觉得呀。。?
fireegg 2006-07-03
  • 打赏
  • 举报
回复
谢谢:)
Hank 2006-07-03
  • 打赏
  • 举报
回复
这就很简单了

1、EXE录入界面使用计算字段,即时得到计算结果
2、打印报表也用计算字段,一样的东西。
当然有不同,DELPHI的报表相对VFP的报表实在太糟糕了!
尤其是QuickReport,稍微复杂的报表就写很多代码,但是你可以使用其它的报表,譬如FastReport、RAVE等
fireegg 2006-07-03
  • 打赏
  • 举报
回复
有用过VFP+SQL,是用视图,楼上说的我也明白。我的计算要求及时显示出来的!字段多,但打印的字段只是每项计算的结果值:)
Hank 2006-07-03
  • 打赏
  • 举报
回复
还是那句话:放弃VFP的开发习惯!

Delphi可以动态创建控件、类,VFP是不行的,就这么简单。

这样比较的话太多东西要切换思路了,偶99年开始转换的时候可累的够呛,第一个应用软件界面相当奇怪。
相对从C->C++->PB->VFP/Foxpro->BCB->Delphi->C#,VFP转BCB/Delphi是最累的了,其它的转换一般只需要数周甚至数天即可,这个可能要3个月。除非你以前有VB或VC的开发经验。
fireegg 2006-07-03
  • 打赏
  • 举报
回复
你是说控件可以用命令行加入是吗?
真是不懂了,计算的不用写代码吗?如何直接设置呀?
Hank 2006-07-01
  • 打赏
  • 举报
回复
老大,既然你要从VFP迁移到Delphi,那太多的东西要修改了,太多的习惯要放弃了

VFP是开发和数据库纠合在一起的,Delphi是分开的,很多东西完全不一回事。

1、尤其是你习惯了VFP的表格再去用DELPHI的TDBGrid感觉TDBGrid简直就是垃圾
2、在Delphi中你必须要习惯那些函数是数据库的,那些是Delphi的
3、VFP可以对数据表进行连续组合连续取数据,Delphi不行。譬如通过VFP寥寥数行可以做出ERP中的BOM网络图,Delphi中简直就是一个庞大的工程,而且相当的慢

其实你的问题本来很简单
1、如果你要求及时显示计算结果,建立计算字段即可
2、如果不要求当前界面显示,可以在TADOQuery的BeforePost事件中写代码,模式就是
ADOQuery.FieldByName('计算结果').AsFloat:=ADOQuery.FieldByName('计算字段1').AsFloat+ADOQuery.FieldByName('计算字段2').AsFloat*ADOQuery.FieldByName('计算字段3').AsFloat
3、如果是后期要求,直接通过数据库的存储过程去实现即可

难道你没有用过VFP+SQLServer开发?
fireegg 2006-07-01
  • 打赏
  • 举报
回复
是呀,VFP虽然不太好,但一些事件控制是很有效果的。。不会像DELPHI,都要写代码:)
fireegg 2006-07-01
  • 打赏
  • 举报
回复
不知道说SQL进行计算是如何操作呢?是将计算公式写在DATASET的BEFOREPOST里吗?
Hank 2006-06-30
  • 打赏
  • 举报
回复
典型的VFP向DELPHI迁移的心态,这些问题在98/99年的第一代Delphi程序员身上已经演练过了。

1、将数据库迁移成SQL Server
2、放弃VFP的很多开发习惯

你的东西在VFP中有一个Valid事件控制,这个太NB了,可以控制很多东西,Delphi中没有,间接的使用TField的OnSetText事件控制,但是太罗嗦了。
其实通过SQL进行计算,时间在DataSet的BeforePost事件中控件即可


最最关键的是:放弃VFP的开发习惯!
VFP是数据库可代码纠在一起的开发,Delphi是CS模式,数据库部分和代码部分是彻底分开的。
ffwin 2006-06-30
  • 打赏
  • 举报
回复
直接用sql语句进行操作就行了,为什么非要用按钮?
fireegg 2006-06-30
  • 打赏
  • 举报
回复
关联性是不大,就是单表,就是字段多,里面有好几小块要进行计算的。
天涯倦客 2006-06-30
  • 打赏
  • 举报
回复
表的关联性不大 的话 就当2维数组处理了
用 TDbf 控件。
fireegg 2006-06-30
  • 打赏
  • 举报
回复
我算不上是前辈啦,在DELPHI中就是在控件里写上计算公式是吗?
后台数据库计算是如何操作呀?写存储过程吗?
liwenyang1118 2006-06-30
  • 打赏
  • 举报
回复
在中国FOXPRO程序员是一代人了,首先向前辈致敬!
我的建议是:数据库移植到SQLSERVER,用户使用界面用DELPHI开发。这样组合是比较容易上手的。复杂的计算可以放在后台数据库中计算也可以在DELPHI实现。满足需求是第一的。
fireegg 2006-06-30
  • 打赏
  • 举报
回复
我问的有问题吗?
fireegg 2006-06-30
  • 打赏
  • 举报
回复
怎么回事呀你们??
加载更多回复(3)

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧