| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3824 人关注过本帖
标题:zap命令的问题[错误已解决,但新的疑问来了]
只看楼主 加入收藏
amdmemo
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2016-2-16
结帖率:0
收藏
已结贴  问题点数:5 回复次数:7 
zap命令的问题[错误已解决,但新的疑问来了]
以下是命令按钮的click事件的部分程序段。
第一次按键执行的是else后的,可以正常运行,并在之后的gird1表格控件中正常显示。但是在我按第二次按键时,却始终出现“文件已在另一个工作区中打开”或“文件正在使用”。我看了下调试器,是卡在zap这点,网上看了一下案例,应该在可以通过的。
系统用的是vfp9.0
===================
已解决:
在最前面加入了
select a
use


问题来了, "a"工作区我没开,我要执行第二个按钮才会开"a"工作区(第二个按钮代码类似,只是表为temp1.dbf),我用browse注意到"a"工作区的表跟"b"工作区打开的表是一样的,为什么会这样?
程序代码:
tempdbf="&LCNowpath"+"temp2.dbf"
SELECT a
use
IF USED("b")
   SELECT b
   zap
else
   USE "&tempdbf" IN b EXCLUSIVE
   SELECT b
   ZAP IN b
ENDIF 
&&下面是转换步骤
filexls=GETFILE("xls","xls文件名","",0,"打开EXCEL库存模版")
IF !"&filexls"==""
   APPEND  FROM  "&filexls"  TYPE XLS
   thisform.grid1.RecordSource="temp2"
   thisform.refresh
ELSE 
   MESSAGEBOX("未选择EXCEL文件,请重新选择",0+32)
   this.SetFocus
   return
ENDIF  


[此贴子已经被作者于2016-4-20 18:02编辑过]

搜索更多相关主题的帖子: 工作区 网上 
2016-04-20 15:59
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10551
专家分:42993
注 册:2014-5-20
收藏
得分:3 
试试这样
程序代码:
IF USED("b")
   **thisform.grid1.RecordSource=""
   **thisform.refresh
   SELECT b
   ZAP 
   thisform.grid1.SetFocus
else
   USE "&tempdbf" IN b EXCLUSIVE
   SELECT b
   ZAP IN b
ENDIF
2016-04-20 16:17
amdmemo
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2016-2-16
收藏
得分:0 
以下是引用吹水佬在2016-4-20 16:17:49的发言:

试试这样
IF USED("b")
   **thisform.grid1.RecordSource=""
   **thisform.refresh
   SELECT b
   ZAP
   thisform.grid1.SetFocus
else
   USE "&tempdbf" IN b EXCLUSIVE
   SELECT b
   ZAP IN b
ENDIF

报“文件已在另一个工作区打开”,这是该按钮的全部代码
程序代码:
tempdbf="&LCNowpath"+"temp2.dbf"
IF USED("b")
   **thisform.grid1.RecordSource=""
   **thisform.refresh
   SELECT b
   ZAP 
   thisform.grid1.setfocus
else
   USE "&tempdbf" IN b EXCLUSIVE
   SELECT b
   ZAP IN b
ENDIF 
&&下面是转换步骤
filexls=GETFILE("xls","xls文件名","",0,"打开EXCEL库存模版")
IF !"&filexls"==""
   APPEND  FROM  "&filexls"  TYPE XLS
   thisform.grid1.RecordSource="temp2"
   thisform.refresh
ELSE 
   MESSAGEBOX("未选择EXCEL文件,请重新选择",0+32)
   this.SetFocus
   return
ENDIF 


[此贴子已经被作者于2016-4-20 16:27编辑过]

2016-04-20 16:25
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9806
专家分:26967
注 册:2012-2-5
收藏
得分:3 
楼主打开表的习惯很不好,可以说是恶习!

坚守VFP最后的阵地
2016-04-20 16:29
amdmemo
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2016-2-16
收藏
得分:0 
以下是引用sdta在2016-4-20 16:29:36的发言:

楼主打开表的习惯很不好,可以说是恶习!

vfp编程还浅,还望多多指教

[此贴子已经被作者于2016-4-20 16:37编辑过]

2016-04-20 16:35
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9806
专家分:26967
注 册:2012-2-5
收藏
得分:0 
如果表格控件的数据源是固定的,可以在表格生成器中将数据源添加到表格控件中。
如果表格控件的数据源是不固定的,可以在合适的事件中用SQL命令生成表格控件的数据源。
表格控件的属性、方法、事件有很多,希望楼主能逐一研究。

坚守VFP最后的阵地
2016-04-20 16:41
amdmemo
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2016-2-16
收藏
得分:0 
以下是引用sdta在2016-4-20 16:41:35的发言:

如果表格控件的数据源是固定的,可以在表格生成器中将数据源添加到表格控件中。
如果表格控件的数据源是不固定的,可以在合适的事件中用SQL命令生成表格控件的数据源。
表格控件的属性、方法、事件有很多,希望楼主能逐一研究。

谢谢!我想把一个excel表先导入temp2.dbf,让temp2作gird1的数据源。其实只点一下按钮倒没什么,可我怕使用人多点几下就会出错,temp2里始终有第一次导入的记录,如果中间excel源表作了删减,temp2.dbf内容不能体现出来。

[此贴子已经被作者于2016-4-20 17:06编辑过]

2016-04-20 17:00
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10551
专家分:42993
注 册:2014-5-20
收藏
得分:0 
有点乱,看到眼花。
1、通常先考虑要用到多少个表。
2、模块开始就先创建或打开要用到的表,充分使用表别名来描述,易读。
3、如果GRID的栏目固定(显示的字段不变),GRID的数据表不用改变。
4、更新GRID数据表可用 ZAP 和 APPEND FROM 命令。
5、模块结束关闭或删除相关表、临时表。

[此贴子已经被作者于2016-4-20 20:11编辑过]

2016-04-20 20:09
快速回复:zap命令的问题[错误已解决,但新的疑问来了]
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022756 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved