| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4279 人关注过本帖
标题:求教:WAIT WINDOWS 的问题
只看楼主 加入收藏
excel2007
Rank: 1
等 级:新手上路
帖 子:163
专家分:0
注 册:2008-3-18
结帖率:77.27%
收藏
 问题点数:0 回复次数:4 
求教:WAIT WINDOWS 的问题
我在把数据导入Excel,由于数据量较大时,可需要几分钟,编写一部分代码如下:

WAIT WINDOWS "正在处理,请等待......"  AT 20,50
......
MESSAGEBOX("已经导入Excel",64,"提示")
MYEXCEL .VISIBLE=.T.

我的目的是:在弹出MESSAGEBOX前,屏幕上出现 "正在处理,请等待......"  
而在弹出MESSAGEBOX时,上述提示("正在处理,请等待......" )立即消失,
如何修改上述代码? 请指教!
搜索更多相关主题的帖子: WAIT WINDOWS 
2008-11-11 11:38
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:0 
WAIT WINDOWS "正在处理,请等待......"  AT 20,50 TIMEOUT 60  &&等待60秒
2008-11-11 11:43
excel2007
Rank: 1
等 级:新手上路
帖 子:163
专家分:0
注 册:2008-3-18
收藏
得分:0 
谢谢您!
导入到Excel的数据有多有少,能根据数据量多少设置等待的时间吗?
2008-11-11 11:50
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:0 
用Wait命令好像不能。只能把等待时间设置成变量,然后根据数据量人工设置等待时间。

不过可以用参考以下代码:

     为VFP设计一个进度条类
  在应用程序中使用一个进度条可以直观形象地显示当前处理完成的百分率,此功能的传统实现方法是在程序源代码中直接处理,这显然是一项繁重而缺乏灵活性的工作。为此,笔者在目前较为流行的VFP3.0下编写了一个具有数字和图形双重显示功能的进度条类,对应用程序而言,其调用与标准控件完全一致,并且全面支持可视化编程。
  1.建立类

  进度条类应该包含两个对象:一个显示处理过程的图形和一个显示处理完成百分率值的标签。首先,建立一个基于包容器类的自定义类,命名为ProgressBar,并在其内部建立一个图形BarShape,高度和ProgressBar相同,宽度预置为0,为便于百分率正文的显示,将图形设置为浅色(如浅蓝色)。加入标签对象TxtLabel,位置居中,宽度足够容下最大正文“100%”,颜色为深色。

  鉴于在实际应用中要求本控件的尺寸是交互可变的,因此,对ProgressBar控件的Init事件的编码为:

  THIS.BarShape.Height = THIS.Height
  THIS.BarShape.Width = 0
  THIS.TxtLabel.Alignment = 2
  THIS.TxtLabel.Left = (THIS.Width-THIS.TxtLabel.Width)/2
  THIS.TxtLabel.Top = (THIS.Height-THIS.TxtLabel.Height)/2
  THIS.TxtLabel.Caption = "0%"
  THIS.Percent=0
  自定义属性Percent用于跟踪记录当前百分率的变化;自定义的方法Show用于同时以图形和文本的方式来显示这种变化。
  方法Show的代码:
  PARAMETERS lpPercent
  *--合法性检验

  IF lpPercent < 0
   lpPercent = 0
  ENDIF
  IF lpPercent > 100
   lpPercent = 100 ENDIF

  *-刷新显示
  THIS.Percent = lpPercent
  THIS.BarShape.Width = THIS.Width*(lpPercent/100)
  THIS.TxtLabel.Caption = ALLT(STR(lpPercent))+"%"
  THIS.Refresh
  此时,进度条类设计完毕,将其存入自定义的类库中,假设类库名为:MyLib.VCX。
  2.应用示例
  一旦在VFP中注册了自定义类库MyLib.VCX,那么就能够象对待标准控制一样将其放入应用程序窗体中,通常可以由定时器或循环来激活该控制。
  例1:由定时器控制进度时的主要代码:
   ... ...
   THISFORM.Timer1.Interval = 1
   THISFORM.Timer1.Enabled = .T.
   THISFORM.Timer1.Reset
   THISFORM.ProgressBar1.Show(0)
   IF THISFORM.ProgressBar1.Percent<100
   THISFORM.ProgressBar1.Show(THISFORM.ProgressBar1.Percent+1)
   ELSE
   THISFORM.Timer1.InterVal = 0
   THISFORM.Timer1.Enabled = .F.
   ... ...
   ENDIF
   ... ...
 例2:由循环语句控制进度时的主要代码
   ... ...
   THISFORM.ProgressBar1.Show(0)
   FOR m.i=1 TO n
   THISFORM.ProgressBar1.Show(m.i/n*100)
   ... ...
   处理循环体
   ... ...
   ENDFOR
2008-11-11 12:11
szy345
Rank: 4
来 自:江苏——南京
等 级:贵宾
威 望:14
帖 子:336
专家分:14
注 册:2008-8-6
收藏
得分:0 
[bo][un]excel2007[/un] 在 2008/11/11 11:38 的发言:[/bo]

WAIT WINDOWS "正在处理,请等待......"  AT 20,50
......
("已经导入Excel",64,"提示")

我的目的 ...


你是想在整个转换过程中,显示WAIT WINDOWS 提示信息,当MESSAGEBOX出现之前,WAIT WINDOWS 消失?
其实在开始转换时加WAIT WINDOWS  "正在处理,请等待......"  AT 20,50
在MESSAGEBOX之前加 wait clear
应该可以实现!

VFP技术交流,QQ群:20452307
欢迎您!
2008-11-11 14:22
快速回复:求教:WAIT WINDOWS 的问题
数据加载中...
 
   



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

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