首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GridControl刷新

GridControl刷新
EN

Stack Overflow用户
提问于 2012-05-26 02:29:03
回答 3查看 2.1K关注 0票数 0

我在vfp9中的一个表单上有一个网格控件。我有一个删除(带打包的)当前记录的按钮。在我删除记录后,网格找不到该资源。它只保留一个空的矩形。我做了这样的东西:DELETE ALL PACK GO TOP thisform.grid1.Refresh

,但没有效果。提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-26 20:12:13

就像Tamar提到的..。pack在日常活动中真的很糟糕。然而,有一个“设置”可以通过所有正常操作为您“隐藏”记录,直到夜间处理的管理任务永久删除记录...

代码语言:javascript
复制
SET DELETED ON
SET DELETED OFF

通过打开"ON“(并且只需要在整个应用程序中执行一次,除非您正在处理处理私有数据会话的表单,否则也需要在那里执行。SET DELETED ON告诉VFP隐藏任何标记为删除的记录,这样它们就不会弄乱屏幕。它还使它们对任何类型的SQL查询都是隐藏的,因此您不会将记录标记为删除。

通过将DELETED OFF设置为OFF,将关闭隐藏并允许您重新查看任何/所有已删除的记录。这是为了防止您意外地将一条记录标记为删除,并需要“召回”它(取消删除)。

现在,所有的话都说了。如果您将记录标记为删除,例如在查找条件后设置筛选器,执行全部删除、打包,这是不好的…

在按钮的单击事件中需要做的就是

代码语言:javascript
复制
DELETE
Thisform.YourGridObject.Refresh()

并且应该从列表中直观地删除该记录。当你发布一个包时,它实际上关闭了表,因此从网格中解绑了自己,删除了所有删除的记录,然后通过清理后的版本重新打开自己,但不会自动将自己重新绑定到网格。

票数 1
EN

Stack Overflow用户

发布于 2012-05-26 04:33:06

问题是,您正在重新创建网格的RecordSource,而它并不喜欢这样。如果不知道你在做什么,就很难给出具体的建议。然而,在正常的应用程序活动中打包一个表通常被认为是不好的形式。通常,PACK是为在非工作时间运行的管理代码保留的,因为它需要独占访问表。

你在这里的目标是什么?为什么要删除网格所基于的表中的所有记录?

添马舰

票数 1
EN

Stack Overflow用户

发布于 2012-05-28 06:58:25

VFP网格讨厌这样修改记录源。

您需要断开您的网格记录源(即,将其设置为""),执行您的操作,然后重置记录源并刷新。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10759648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档