第一个问题照wfmwg(马子) 。
第二个问题可以用计算字段解决。具体:在物理字段中,设置入库数量和取线数量字段,当前数量用计算字段,这样在数据未存入后台服务器时也能正确显示。
第二个问题可以用计算字段解决。具体:在物理字段中,设置入库数量和取线数量字段,当前数量用计算字段,这样在数据未存入后台服务器时也能正确显示。
解决方案 »
- 如何在Delphi中实现将Excel中数据导入数据库
- 想得到01-100的值
- Grid++Report 的注册码有吗,给我个谢谢!!!我这里怎么fastreport装不起来!
- 在触摸屏查询系统中怎样设计模拟键盘输入数字,最好也能输入中文 ?
- 帮忙,如何使用TFrame控件
- 怎样在一定条件下,恢复Grid修改前的值?
- 寻找兼职程序员(限北京)有意者请与我联系¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
- 怎样取得组合键(如ctrl + a)?可以在keydown事件中处理吗?
- 从SQL SERVER里读数据到ACCESS里,但有3万多条,速度太慢,怎么解决??
- 临走了 散点分
- 简单的sql语句
- 关于listview中对选定行的操作
1> 库存管理
2> 出货管理
库存中没有的货物,是无法出货的,因此,你的第一个问题的解决方法是在进货时,就要登记货物,而不是在出货时登记。
同时,第二个问题 是站不住脚的。因为在取货的时候,不可能同一种货需要同时取出不同数量的两次。查看你上表,就可以明白,你的取货是在不同日期完成的,因此,不存在数据还没ApplyUpdates的情况(你不可以保存数据到第二天、第三天还没提交吧)如果你一定要按你设想的做的话,那么,我可以说,你的设计根本没有实用价值,只是小孩玩过家家罢了。
也就是说,Post的缓冲区就是可以直接通过DataSet访问的。
做一个临时表, post 到临时表中, 需要ApplyUpdates时从临时表中取数据,然后清
空临时表。这样似乎可以解决你的问题,对否请高手指正。
我常用的结构是:
数据库服务器:(NT)+SQL7
中间件:MTS/COM+
服务程序采用: MIDAS
网络联接采用: ScktSrvr.exe (LAN)
客户端:SocketConnection MIDAS
该方法需要使用TDataSetProvider控件和TClientDataSet控件(都在Midas页)。
将原来的Database控件保持不动,将Query控件(如果你用的是Query)的CachedUpdates改成false,rquestLive改成true,updateObject改成空,用一个DataSetProvider1和Query控件连接(DataSetProvider1.DataSet:=Query),再用一个clientDataSEt1控件和DataSetProvider连接(ClientDataSet1.Provider:=DataSetProvider1),然后将你原来和Query相连的DataSource和ClientDataSEt1相连。
ClientDataSet中有一个Delta属性,用户对数据集进行的所有修改都记录在Delta当中,你可以用另外的一个ClientDataSet2来解析Delta,来知道用户的修改,具体的方法就是:ClientDataSet2.Data:=ClientDataSet1.Delta,此时就可以用通常访问数据集的方法来访问ClientDataSet2,来获取已修改的记录。
你可以用一个DBgrid和ClientDataSet2连接,修改记录(增加、删除等)然后用一个按钮执行ClientDataSet2.Data:=ClientDataSet1.Delta,看DBGrid有何变化。
更具体的,你可以在需要检查缓冲区的时候,用ClientDataSet2.Locate(..)或者诸如此类的方法来判断某条记录是否在ClientDataSet1的缓冲区中。
在更新数据的时候,用ClientDataSet1.ApplyUpdate(0),来更新。
我说得可能不太清楚,如果有不明白的地方请继续提问。