回 帖 发 新 帖 刷新版面

主题:讨教:为什么提示文件使用中

各位老师好:
现在有一段代码,老师们给看看那有问题
Select * from 数据表;
where 报销日期 between thisform.container1.text1.value and thisform.container1.text2.value into cursor 时间表
  SELECT 时间表
     
     thisform.text3.value=reccount()
    sum(财政费用) to thisform.text4.value
    sum(个人费用) to thisform.text5.value
    sele 时间表
    copy to ls  &&拷贝到临时库
        SELECT 5
 这个代码的意思是把时间段的数据写入临时时间表,由于临时时间表不能做报表,我又复制到ls这样就能做报表了。但运行时说“文件在使用中”但不影响程序正常运行。如何能把这句话去掉。谢谢指教。

回复列表 (共4个回复)

沙发

在 copy to ls  之前,先判断一下 ls 表是否被打开。

if used("ls")
sele ls
use
endif
copy to ls

板凳

同意1楼,可以稍简化点:
if used("ls")
   use in ls
endif
copy to ls

3 楼

老师:以前的呢虽然有“表在使用中”,但还能运行。现在加上指教的if used("ls")
   use in ls  endif   copy to ls  后,出现正常的临时表需要覆盖的提示,表单上也有计算的数字,但我要的
thisform.text3.value=reccount()
sum(财政费用) to thisform.text4.value
sum(个人费用) to thisform.text5.value
这个几个数字却怎么也加不进表ls里去了,报表上也没有数字,这是为什么呢?谢谢

4 楼

1、into cursor 时间表 &&是只读。
   into cursor 时间表 readwrite  &&可读写。
2、临时表可以做报表的。在运行报表前只要将工作区定位到时间表即可。

3、copy to ls 生成自由表,第一次运行便在磁盘上产生这个ls.dbf文件。如果再次运行程序,而这个表处于打开状态,就会产生错误“文件在使用中”。所以在释放表单时应关闭这个表。你不删除的话,再次运行时,当然会有是否覆盖的提示。如果不想有提示,可SET SAFETY off

我来回复

您尚未登录,请登录后再回复。点此登录或注册