主题:如何锁定已经修改的记录
sleepingsleeping
[专家分:150] 发布于 2008-12-30 18:03:00
我有一个表单,数据源是一个经计算后的表.
那么现在我想对表单中的内容进行修改后(即表中的内容有修改),如果我重新对数据进行计算,不至于影响到这些已经修改的记录,可以办到这一点吗?我想,这些已经修改过的记录,应该有个标识什么的,请高手给出点思路吧,谢谢.
回复列表 (共7个回复)
沙发
xm7050432 [专家分:180] 发布于 2008-12-31 08:47:00
你的意思是表单A,数据源是B,修改A,想不影响B。
如果修改B,呢?会不会影响A?
如果修改B,也不影响A,
你可以把B copy到C,难后表单A的数据为C,是不是这样就可以了。
板凳
sleepingsleeping [专家分:150] 发布于 2008-12-31 11:10:00
不是这样的,就是表单A和数据源B.修改表单A的内容B表会同步更新.
因为B表是通数程序计算出来的,每计算一次就会覆盖掉以前的记录重算.所以在表单中修改过的记录也会被覆盖,我现在的想法是想锁定那些在表单中修改过的记录,让他不自动重算,不会被覆盖.
3 楼
lwh1188 [专家分:25840] 发布于 2009-01-01 16:16:00
思路改改,开阔些嘛,保护方式可以“加壳”不让伤着,也可以“另外存放”:
1、加个“标志”字段,表单A修改时把“标志”同步‘修改’为“1”(其它也可,能与未修改的有区别即可),每次计算后不覆盖“标志”为“1”的!
2、把“修改”的记录copy 到另外一个“临时表”中,每次计算后再用“临时表”记录更新原表即可!
4 楼
sleepingsleeping [专家分:150] 发布于 2009-01-03 10:23:00
你好,我用的是你说的第一种方法,但是有个地方我一直没有想出为怎么去解决:如果修改过,就加一个标志,这个我明白.但是如何去判断记录是否被修改呢?
我修改记录时使用的是在wizbtns.vcx类库中的BUTTONSET1.txtbtns.
5 楼
BlueSmart [专家分:2340] 发布于 2009-01-03 12:36:00
在txtbtns中定义了一个属性EditMode,如果它为.t.则调用UpdateRows()方法,你看那段程序,或许能想出办法来
6 楼
cbl518 [专家分:57140] 发布于 2009-01-04 23:44:00
不明白你的问题!
不过你用,wizbtns.vcx类库中的BUTTONSET1.txtbtns要了解它的方法,否则会有很多的麻烦。
7 楼
cbl518 [专家分:57140] 发布于 2009-01-04 23:47:00
这是一组完整的编辑按钮,其中包括“第一个”、“前一个”、“下一个”、“最后一个”、“查找”、“打印”、“添加”、“删除”、“编辑”、和“保存”按钮,表单向导使用该类。
种类 Data Editing
默认目录 Visual FoxPro Catalog\Foundation Classes\Buttons
类 picbtns
基类 CommandGroup
类库 wizbtns.vcx
父类 txtbtns
示例 ...\Samples\Solution\Ffc\dataedit.scx
说明
可在只有一个表的简单表单上使用该类,也可以在具有一对多关系的表单(将字段作为父表、表格作为子表)上使用这个类。
使用该类的方法是:将其拖放到一个项目或表单中,或从“组件管理库”的“数据项”快捷菜单中选择“添加至表单”命令。将该类添加到表单上时,Visual FoxPro 则将这些按钮放在表单上,这时可以指定一个数据源,并提供输入和输出对象。在将该类拖放到项目中时,可选择添加该类或创建一个子类。txtbtns 父类中包含用户可以设置的其他属性。
我来回复