| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1876 人关注过本帖
标题:探讨一个VFP编程问题
只看楼主 加入收藏
thomasou
Rank: 1
等 级:新手上路
帖 子:67
专家分:3
注 册:2010-8-15
收藏
得分:0 
版主:谢谢您的重视。
俺说的那个表是:“从b1999表中挑出ms9、ms10、ms11、ms12,从b2000表挑出ms1、ms2、ms3。。。。。。。。ms12,从b2001表中挑出ms1。。。。。。ms4,然后把这些数据形成新的表(明细表)”。谢谢。
2010-08-16 01:37
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
思路跟刚才给你的那个差不多, 你自己变通一下即可

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2010-08-16 01:51
thomasou
Rank: 1
等 级:新手上路
帖 子:67
专家分:3
注 册:2010-8-15
收藏
得分:0 
版主:俺想了好久,水平有限,还是想不出来变通的办法,请您告诉俺吧,谢谢您。
2010-08-16 02:06
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
都告诉你了,你的表设计的是有问题的,把 一个简单问题复杂化了

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2010-08-16 02:07
thomasou
Rank: 1
等 级:新手上路
帖 子:67
专家分:3
注 册:2010-8-15
收藏
得分:0 
谢谢版主教导。
2010-08-16 02:12
thomasou
Rank: 1
等 级:新手上路
帖 子:67
专家分:3
注 册:2010-8-15
收藏
得分:0 
版主:您好,今天俺认真想过,确实由于水平不够,真的想不出来,俺还是请求您帮助 如何从b1999表中挑出ms9、ms10、ms11、ms12,从b2000表挑出ms1、ms2、ms3。。。。。。。。ms12,从b2001表中挑出ms1。。。。。。ms4,数据形成新的表(明细表),非常感谢。
2010-08-16 20:16
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
set talk off
set safety off
close all
ldDate1=date(1999,9,1)
ldDate2=date(2001,4,30)
lcHm='雪碧'
lcSQL='create table tmp1 (ss n(4),hm c(10)'
for i=year(ldDate1) to Year(ldDate2)
  for j=iif(i=year(ldDate1),month(ldDate1),1) to iif(i=year(ldDate2),month(ldDate2),12)
    lcSQL=lcSQL+',ms'+str(i,4)+padl(j,2,'0')+' n(6)'
  endfor
endfor
lcSQL=lcSQL+')'
&lcSQL

select tmp1
locate all for alltrim(hm)==lcHm
if eof()
  append blank
  replace hm with lcHm
endif

for i=year(ldDate1) to year(ldDate2)
  cTable='d'+str(i,4)
  use (cTable) in 2 alias tmp2
  select tmp2
  locate for alltrim(hm)==lcHm
  if eof()
    loop
  endif
  for j=iif(i=year(ldDate1),month(ldDate1),1) to iif(i=year(ldDate2),month(ldDate2),12)
    select tmp2
    lnFieldValue=evaluate(field(j+2))
    select tmp1
    lcFieldName='ms'+str(i,4)+padl(j,2,'0')
    replace (lcFieldName) with lnFieldValue
  endfor
endfor
select tmp1
brow

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2010-08-16 21:59
thomasou
Rank: 1
等 级:新手上路
帖 子:67
专家分:3
注 册:2010-8-15
收藏
得分:0 
衷心感谢版主,俺初来乍到就得到版主的热情款待和盛情的指导,俺感动不已,再次致谢。
俺确实水平很有限,因为工作喜欢上了VFP,它带给俺工作上极大的方便,俺是门外汉,所学之VFP知识均自学而来,很多还是不懂不明白,好像昨晚您给俺的那个程序以及刚才的那个出表得程序,俺还是有一些地方看不懂的,俺还要努力学习,还望版主赐教,谢谢。
2010-08-16 22:19
thomasou
Rank: 1
等 级:新手上路
帖 子:67
专家分:3
注 册:2010-8-15
收藏
得分:0 
版主:拜读您的在17楼程序,俺在想,能否在以下那段代码中:
for j=iif(i=year(ldDate1),month(ldDate1),1) to iif(i=year(ldDate2),month(ldDate2),12)
    select tmp2
    lnFieldValue=evaluate(field(j+2))
    select tmp1
    lcFieldName='ms'+str(i,4)+padl(j,2,'0')
    replace (lcFieldName) with lnFieldValue
  endfor
加一个循环结构的语句,把每一次循环得出的lnFieldValue统计下来(total),到最后为tmp1加一个字段(grandtotal),然后把total放进去,那就不用再运行在8楼的程序求得结果再进行表间转移总数了。我刚尝试加入循环语句但不成功,再恭请版主指导,谢谢。

2010-08-17 00:04
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:20 
以下是引用Tiger5392在2010-8-16 21:59:23的发言:

set talk off
set safety off
close all
ldDate1=date(1999,9,1)
ldDate2=date(2001,4,30)
lcHm='雪碧'
lcSQL='create table tmp1 (ss n(4),hm c(10)'
for i=year(ldDate1) to Year(ldDate2)
  for j=iif(i=year(ldDate1),month(ldDate1),1) to iif(i=year(ldDate2),month(ldDate2),12)
    lcSQL=lcSQL+',ms'+str(i,4)+padl(j,2,'0')+' n(6)'
  endfor
endfor
lcSQL=lcSQL+'mstotal n(6))'
&lcSQL

select tmp1
locate all for alltrim(hm)==lcHm
if eof()
  append blank
  replace hm with lcHm
endif

nTot=0
for i=year(ldDate1) to year(ldDate2)
  cTable='d'+str(i,4)
  use (cTable) in 2 alias tmp2
  select tmp2
  locate for alltrim(hm)==lcHm
  if eof()
    loop
  endif
  for j=iif(i=year(ldDate1),month(ldDate1),1) to iif(i=year(ldDate2),month(ldDate2),12)
    select tmp2
    lnFieldValue=evaluate(field(j+2))
    select tmp1
    lcFieldName='ms'+str(i,4)+padl(j,2,'0')
    replace (lcFieldName) with lnFieldValue
    nTot=nTot+lnFieldValue
  endfor
endfor
select tmp1
replace mstotal with nTot
brow

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2010-08-17 08:48
快速回复:探讨一个VFP编程问题
数据加载中...
 
   



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

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