您好 欢迎光临,能给个QQ吗,有些VFP问题想请教您

共有 1538 人关注过本帖
标题:请教问题,请指教!
等 级:新手上路
帖 子:43
结帖率:100%
&&已结贴√
&&问题点数:20&&回复次数:32&&&
请教问题,请指教!
用foxPRO做了一个应用程序,现在有一个问题需要请教各位朋友。
&&&&&1.需要定时从文本(TXT)文件中读取数据到相应表中
&&&&&2.应用程序会通过操作界面(一些表单窗口)与操作人员进行对话,同时对这些数据进行分析处理
问题是:如何做到不退出操作界面的同时,还不耽误定时读取(文本)TXT数据?希望各位朋友给个详细方案。
搜索更多相关主题的帖子:
等 级:贵宾
威 望:304
帖 子:25793
专家分:48814
用定時器中斷咯
授人以渔,不授人以鱼。
等 级:友情版主
威 望:197
帖 子:14630
专家分:60634
以下是引用TonyDeng在 21:03:50的发言:
用定時器中斷咯恰当
等 级:新手上路
帖 子:43
回复 2楼 TonyDeng
能具体点吗?我是菜鸟。
等 级:贵宾
威 望:304
帖 子:25793
专家分:48814
已經提示你用Timer控件了,還要怎麽詳細。再詳細就要從零教起,怎麽教得過來,何況你已經寫出一定的程序,總不會是連基本控件都不會用。
授人以渔,不授人以鱼。
等 级:新手上路
帖 子:43
回复 5楼 TonyDeng
我先试试,因为从来没有遇到过这个问题。
等 级:版主
威 望:53
帖 子:1861
专家分:5674
以下是引用pjtyzyq在 20:40:02的发言:
问题是:不退出操作界面的同时,还不耽误定时读取(文本)TXT数据?
1、操作界面的同时与读取(文本)TXT数据有什么关系?
2、读取(文本)TXT数据的耗时长吗?
等 级:新手上路
帖 子:43
回复 7楼 吹水佬
读取的文本数据需要同时存到表中进行处理
等 级:贵宾
威 望:304
帖 子:25793
专家分:48814
要考慮的地方多了。透露多少,得到多少,必然規律。
授人以渔,不授人以鱼。
等 级:版主
威 望:14
帖 子:618
专家分:591
既然应用程序通过操作界面(一些表单窗口)与操作人员进行对话,一般就不必再用计时器了,直接读取就可以了。
VB/VFP 的计时器很耗资源的。
但不好说,具体的事情差别很大,看你的具体示例而定。
民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
版权所有,并保留所有权利。
Powered by , Processed in 0.024136 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved共有 1044 人关注过本帖
标题:问题没有解决,再请教......
来 自:红土地
等 级:版主
威 望:291
帖 子:10236
专家分:37270
以下是引用陶然愚者在 10:35:20的发言:
那个界面的确是用90年代写的程序代码实现的。现在想用VFP9进行升级。除了输出界面之外,对数据表的统计操作应该还是相通的吧。不知这样想对不对VFP9当然兼容FoxPro2.5,想法绝对正确。
活到老,学到老!
E-mail:hu-
等 级:新手上路
帖 子:151
回复 10楼 sdta
二楼回复内容:
以4、6、9楼回复,不对吗?是否对二楼的意思没领会清楚?
简单说,国标、行标、地标、企标、协议五列是分别统计QYZYCPK表中某经济类型企业产品记录的BZDJ字段值分别为1、2、3、4、5的记录数,标准覆盖率由以上数据相加除以产品数得来,然后再以百分比显示。
[ 本帖最后由 陶然愚者 于
14:44 编辑 ]
附件: 只有本站会员才能下载或查看附件,请
等 级:新手上路
帖 子:151
又及:原来的数据表因为考虑到统计方便,在QYZYCPK表中有JJLX、JJHY....等字段,统计操作时只要设置条件为
count for qyzycpk.jjlx=数组变量1 to 产品数&&统计某经济类型企业生产产品数
count for qyzycpk.jjlx=数组变量1.and.qyzycpk.bzdj=c标准等级字段值 to 国标&&统计某经济类型企业产品执行国家标准产品数
后来,考虑到qyzycpk表与qyjbxxb表中重复字段太多,所以这两个表只保留了一个公共字段JGDM以便建立关联。
这样一来,就必须需要首先在QYJBXXB表中,提取各经济类型企业记录的JGDM字段值,存贮于一个数组中,然后再从QYZYCPK表中找出对应于这些JGDM值的记录进行分类统计。正因为如此,所以对于我这个初学者而言,大大增加了统计程序设计的难度。
当然,关键还是自己对VFP系统知识掌握不够,这样涉及多表操作的统计,弄着弄着就糊涂了
其实,有一点我似乎隐约间有点感觉:数据统计结果的错误,肯定是循环条件设置不当引起的,但到底应该如何设置几处循环条件,其间逻辑关系总是理不出一个头绪。
[ 本帖最后由 陶然愚者 于
14:48 编辑 ]
等 级:新手上路
帖 子:151
程序代码行再次上传,请指教:程序代码:SET ESCAPE OFF
USE qyjjlxk
IF .not.file('jjlxsy.idx')
&&INDEX on jjlx TO jjlxsy
&&SET INDEX TO jjlxsy
USE qyzycpk
IF .not.file('cpsy.idx')
&&INDEX on jgdm TO cpsy
&&SET INDEX TO cpsy
USE qyjbxxb
IF .not.file('jjlssy.idx')
&&INDEX on jjlx TO jjlssy
&&SET INDEX TO jjlssy
SET RELATION TO jjlx INTO qyjjlxk
SET RELATION TO jgdm INTO qyzycpk additive
TOTAL TO lxk.dbf ON jjlx
SET RELATION TO jjlx INTO qyjjlxk additive
COUNT ALL TO lxsl
DIMENSION lx(j),lm(j)
DO whil .not.eof()
&&lx(j)=jjlx
&&lm(j)=b-&jjlxmc
USE qyjbxxb
ERASE lxk.dbf
STORE 0 TO hj1,hj2,hj3,hj4,hj5,hj6,hj7,hj8
DO WHILE j&=lxsl
&&COUNT ALL FOR jjlx=lx(j) TO aa
DIMENSION dm(l)
DO whil l&=aa
dm(l)=ALLTRIM(jgdm)
&&SELECT c
FOR l=1 TO aa
&&COUNT for dm(l)=jgdm TO bb
&&COUNT for dm(l)=jgdm.and.bzdj='1' TO cc
&&COUNT for dm(l)=jgdm.and.bzdj='2' TO dd
&&COUNT for dm(l)=jgdm.and.bzdj='3' TO ee
&&COUNT for dm(l)=jgdm.and.bzdj='4' TO ff
&&COUNT for dm(l)=jgdm.and.bzdj='5' TO gg
&&hh=ROUND((cc+dd+ee+ff+gg)/bb*100,2)
hj1=hj1+aa
hj2=hj2+bb
hj3=hj3+cc
hj4=hj4+dd
hj5=hj5+ee
hj6=hj6+ff
hj7=hj7+gg
hj8=ROUND((hj3+hj4+hj5+hj6+hj7)/hj2*100,2)
SET FILTER TO
......&&将相关统计数据以统计表形式传送至屏幕或打印机
......&&恢复相关设置,返回调用程序
等 级:版主
威 望:117
帖 子:5810
专家分:12454
程序代码:SELECT Qyjjlxk.jjlxMC,CAST(COUNT(distinct Qyzycpk.jgmc) AS N(2)) 企业数,;
&&CAST(COUNT(QYZYCPK.ZYCP) AS N(2)) 产品数,;
&&CAST(SUM(IIF(QYZYCPK.BZDJ=[1],1,0)) AS N(2)) 国标,;
&&CAST(SUM(IIF(QYZYCPK.BZDJ=[2],1,0)) AS N(2)) 行标,;
&&CAST(SUM(IIF(QYZYCPK.BZDJ=[3],1,0)) AS N(2)) 地标,;
&&CAST(SUM(IIF(QYZYCPK.BZDJ=[4],1,0)) AS N(2)) 企标,;
&&CAST(SUM(IIF(QYZYCPK.BZDJ=[5],1,0)) AS N(2)) 协议 ;
&&FROM QYJBXXB ;
&&INNER JOIN QYJJLXK ;
&&ON QYJBXXB.JJLX=QYJJLXK.JJLX ;
&&INNER JOIN QYZYCPK ON Qyjbxxb.jgdm = Qyzycpk.jgdm GROUP BY Qyjjlxk.jjlxMC INTO CURSOR TEMP READWRITE
&*--- 在数据表最后插入一条记录
INSERT INTO TEMP ((FIELD(1))) VALUES (PADC(&合计&,FSIZE(FIELD(1)),[ ]))
*---下面的代码好处,不管你有多少数值型字段,也不需要你知道字段名,全部计算合计数
FOR I=1 TO FCOUNT()
&&& MFIELD=FIELD(I)
&&& IF TYPE(MFIELD)=&N&
&&&&&& *--- 数值型字段求和,并将结果添加到最后一条记录
&&&&&& SUM &MFIELD TO HJ
&&&&&& REPLACE RECORD RECCOUNT() (FIELD(I)) WITH HJ
&&&&&& *--- 清空数值型字段内容为&0&的记录
&&&&&& BLANK FIELD &MFIELD FOR &MFIELD=0
*---或者用下面的代码
INSERT INTO TEMP SELECT [合计],SUM(企业数),SUM(产品数),SUM(国标),SUM(行标),SUM(地标),SUM(企标),SUM(协议) FROM TEMP
附件: 只有本站会员才能下载或查看附件,请
等 级:版主
威 望:117
帖 子:5810
专家分:12454
&&得分:10&
程序代码:SELECT Qyjjlxk.jjlxMC,CAST(COUNT(distinct Qyzycpk.jgmc) AS N(2)) 企业数,;
&&CAST(COUNT(QYZYCPK.ZYCP) AS N(2)) 产品数,;
&&CAST(SUM(IIF(QYZYCPK.BZDJ=[1],1,0)) AS N(2)) 国标,;
&&CAST(SUM(IIF(QYZYCPK.BZDJ=[2],1,0)) AS N(2)) 行标,;
&&CAST(SUM(IIF(QYZYCPK.BZDJ=[3],1,0)) AS N(2)) 地标,;
&&CAST(SUM(IIF(QYZYCPK.BZDJ=[4],1,0)) AS N(2)) 企标,;
&&CAST(SUM(IIF(QYZYCPK.BZDJ=[5],1,0)) AS N(2)) 协议 ;
&&FROM QYJBXXB ;
&&INNER JOIN QYJJLXK ;
&&ON QYJBXXB.JJLX=QYJJLXK.JJLX ;
&&INNER JOIN QYZYCPK ON Qyjbxxb.jgdm = Qyzycpk.jgdm GROUP BY Qyjjlxk.jjlxMC INTO CURSOR TEMP READWRITE
INSERT INTO TEMP SELECT [合计],SUM(企业数),SUM(产品数),SUM(国标),SUM(行标),SUM(地标),SUM(企标),SUM(协议) FROM TEMP
附件: 只有本站会员才能下载或查看附件,请
等 级:新手上路
帖 子:151
回复 16楼 sdta
谢谢!慢慢学习领会。
1、程序中的N(2),其中“2”是指数据宽度对吗?数值是不是可根据需要增大?比如,如果数据库够大,这个数值可能是三位数或者四位数,是否就应该设为3或者4?
2、如果程序末尾不用Browse命令,而是用表格控件显示统计表,该如何实现?是不是将表格控件的数据源设置为表temp就行了?
[ 本帖最后由 陶然愚者 于
17:37 编辑 ]
等 级:版主
威 望:117
帖 子:5810
专家分:12454
要在代码中设置,而不是在属性框中设置
1.将表格控件加入表单中
2.在表单的INIT事件中加入代码程序代码:
SELECT Qyjjlxk.jjlxMC,CAST(COUNT(distinct Qyzycpk.jgmc) AS N(2)) 企业数,;
&&CAST(COUNT(QYZYCPK.ZYCP) AS N(2)) 产品数,;
&&CAST(SUM(IIF(QYZYCPK.BZDJ=[1],1,0)) AS N(2)) 国标,;
&&CAST(SUM(IIF(QYZYCPK.BZDJ=[2],1,0)) AS N(2)) 行标,;
&&CAST(SUM(IIF(QYZYCPK.BZDJ=[3],1,0)) AS N(2)) 地标,;
&&CAST(SUM(IIF(QYZYCPK.BZDJ=[4],1,0)) AS N(2)) 企标,;
&&CAST(SUM(IIF(QYZYCPK.BZDJ=[5],1,0)) AS N(2)) 协议 ;
&&FROM QYJBXXB ;
&&INNER JOIN QYJJLXK ;
&&ON QYJBXXB.JJLX=QYJJLXK.JJLX ;
&&INNER JOIN QYZYCPK ON Qyjbxxb.jgdm = Qyzycpk.jgdm GROUP BY Qyjjlxk.jjlxMC INTO CURSOR TEMP READWRITE
INSERT INTO TEMP SELECT [合计],SUM(企业数),SUM(产品数),SUM(国标),SUM(行标),SUM(地标),SUM(企标),SUM(协议) FROM TEMP
WITH THISFORM.GRID1
&&&.COLUMNCOUNT=FCOUNT([TEMP])
&&&.RECORDSOURCE=[TEMP]
[ 本帖最后由 sdta 于
17:59 编辑 ]
等 级:新手上路
帖 子:14
回复 楼主 陶然愚者
发数据文件给我,我跟你改一下
等 级:版主
威 望:117
帖 子:5810
专家分:12454
&&得分:10&
附件: 只有本站会员才能下载或查看附件,请
版权所有,并保留所有权利。
Powered by , Processed in 0.039375 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved您好,可以加你qq吗,您之前在知道上回答过我的问题,我想请教您一些问题呢 谢谢啦_百度知道
您好,可以加你qq吗,您之前在知道上回答过我的问题,我想请教您一些问题呢 谢谢啦
我有更好的答案
你的qq是多少 我加你吧 我的留不上不知道怎么回事
来自:求助得到的回答
我很想知道你问的是谁
哦 这样呀 不好意思哈 我没说清楚 是我之前问的一个网友 我想再问他一些问题 呵呵
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁你好,有些问题想请教您。可否给我留个联系方式,QQ或电话_百度知道
你好,有些问题想请教您。可否给我留个联系方式,QQ或电话
我有更好的答案
- -问什么?扣扣
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁百度拇指医生
&&&普通咨询
您的网络环境存在异常,
请输入验证码
验证码输入错误,请重新输入

我要回帖

更多关于 尊敬的qq用户您好 的文章

 

随机推荐