| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1294 人关注过本帖
标题:恳请老师帮我看一个程序的代码!
只看楼主 加入收藏
cymjx
Rank: 2
等 级:论坛游民
帖 子:74
专家分:29
注 册:2010-11-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:25 
恳请老师帮我看一个程序的代码!
这是一个打印程序,是从VF3.0升级到VFP6.0的,按打印按钮的后,出现“文件没有打开”,不知问题出在那里?请老师赐教:
 PUBLIC Y , M , D , A1 , A2 , A3 , A4 , A5 , A6 , A7 , F( FCOUNT() )
 FOR K = 1 TO FCOUNT()
    F( K ) = PADL(FIELD(K),8)
 ENDFOR
 USE
 A1 = '输入'
 A2 = ''
 A3 = '完毕!按退出键返回...'
 A4 = '数据库中无记录!'
 A5 = '按任一键继续....'
 A6 = '该单位未建立!'
 A7 = '正在打印...'
 RQ = DTOC(DATE(),1)
 Y = SUBSTR(RQ,1,4)
 M = SUBSTR(RQ,5,2)
 D = SUBSTR(RQ,7,2)
 USE IN 2 GZ2 ORDER 1
 USE IN 1 GZ1
 DO WHILE .T.
    @ 0,0 CLEAR to 20,70  
    @ 1 , 16 SAY '请使用宽行打印纸!' COLO RGB(0,0,255,)  &A13
    @ 5 , 20 GET L1 FUNC '*C 生成汇总库(\<K)' DEFA .T. COLO RGB(0,0,255,255,255,255)  &A12
    @ 7 , 20 SAY '打印标题:'  COLO RGB(64,0,0,)  &A12
    @ 7 , col()+1  GET DWM  DEFAULT '公司企管人事部'  COLO RGB(0,255,255,255,255,255)  &A12
    @ 17.5, 40 GET XZ DEFAULT 1 SIZE 2 ,10 , 1 FUNCTION '*H \?退出(\<0);打印(\<+)' COLO RGB(0,0,255,)  &A12
    READ CYCLE
    IF XZ = 1
       CLOSE DATABASES
       RELEASE WINDOW
       RETURN
    ENDIF
    IF L1
       L1 = .F.
       USE GZ1 ORDER 1
       D4 = FIELD(4)
       D5 = FIELD(5)
       D6 = FIELD(6)
       D7 = FIELD(7)
       D8 = FIELD(8)
       D9 = FIELD(9)
       D10 = FIELD(10)
       D11 = FIELD(11)
       D12 = FIELD(12)
       D13 = FIELD(13)
       D14 = FIELD(14)
       D15 = FIELD(15)
       D16 = FIELD(16)
       D17 = FIELD(17)
       D18 = FIELD(18)
       D19 = FIELD(19)
       D20 = FIELD(20)
       D21 = FIELD(21)
       D22 = FIELD(22)
       D23 = FIELD(23)
       D24 = FIELD(24)
       TOTA TO HZ ON 单位编号 FIEL &D4,&D5,&D6,&D7,&D8,&D9,&D10,&D11,&D12,&D13,&D14,&D15,&D16, &D17,&D18,&D19,&D20,&D21,&D22,&D23,&D24
       @ 9 , 20 SAY '汇总库已生成!'  COLO RGB(255,0,0,255,255,255)  &A12
    ENDIF
    IF  .NOT. FILE('HZ.DBF')
       @ 9 , 20 SAY '汇总数据库不存在!' &A12
       WA = INKEY(1)
       L1 = .T.
       LOOP
    ENDIF
    HX = REPLICATE('—',49)
    DWM1 = ALLTRIM(DWM)
    @ 11 , 20 SAY A7 &A12
    USE IN 2 GZ2 ORDER 1
    SELECT 3
    USE HZ
    SET RELATION TO 单位编号 INTO B
    SET DEVICE TO PRINTER
    @ PROW() + 5 , 0 SAY ' '
    @ PROW()+1,50 SAY '&Y.年&M.月&D.日  &DWM1  工资汇总表' FONT '黑体',12
    @ PROW()+2, 0 SAY HX+HX FONT '黑体',9
    @ PROW()+1, 0 SAY FIEL(2,2)+'│'+FIEL(4)+'│'+' '+F(5)+'│ '+F(6)+'│'+F(7)+'│'+F(8)+'│ '+F(9) +'│'+F(10)+'│'+F(11)+'│ '+F(12)+'│'+F(13)+'│ '+F(14)+'│'+F(15)+'│'+F(16)+'│' &NT7
    @ PROW(),PCOL() SAY ' '+F(17)+'│'+F(18)+'│'+F(19)+'│'+F(20)+'│'+F(21)+'│'+F(22)+'│' +F(23)+'│  '+F(24) &NT7
    @ PROW()+1, 0 SAY HX+HX FONT '黑体',9
    DO WHILE  .NOT. EOF()
       SCATTER TO V
       P3 = B.单位名称
       P4 = STR(V(4),5)
       P5 = STR(V(5),9,2)
       P6 = STR(V(6),10,2)
       P7 = STR(V(7),9,2)
       P8 = STR(V(8),9,2)
       P9 = STR(V(9),9,2)
       P10 = STR(V(10),9,2)
       P11 = STR(V(11),9,2)
       P12 = STR(V(12),10,2)
       P13 = STR(V(13),9,2)
       P14 = STR(V(14),10,2)
       P15 = STR(V(15),9,2)
       P16 = STR(V(16),9,2)
       P17 = STR(V(17),9,2)
       P18 = STR(V(18),9,2)
       P19 = STR(V(19),9,2)
       P20 = STR(V(20),9,2)
       P21 = STR(V(21),9,2)
       P22 = STR(V(22),9,2)
       P23 = STR(V(23),9,2)
       P24 = STR(V(24),10,2)
       @ PROW()+1,0 SAY '&P3 &P4  &P5 &P6 &P7 &P8  &P9 &P10 &P11 &P12 &P13 &P14 &P15 &P16  &P17 &P18 &P19' &NT7
       @ PROW(),PCOL() SAY '  &P20 &P21 &P22 &P23 &P24 ' &NT7
       SKIP
    ENDDO
     @ PROW()+1,0 SAY HX+HX FONT '黑体',9
    SELECT 3
    SUM ALL TO ARRAY T
    DIMENSION T( 32 )
    II = AINS(T,3)
    T4 = STR(T(4),5)
    T5 = STR(T(5),10,2)
    T6 = STR(T(6),10,2)
    T7 = STR(T(7),9,2)
    T8 = STR(T(8),9,2)
    T9 = STR(T(9),10,2)
    T10 = STR(T(10),9,2)
    T11 = STR(T(11),9,2)
    T12 = STR(T(12),10,2)
    T13 = STR(T(13),9,2)
    T14 = STR(T(14),10,2)
    T15 = STR(T(15),9,2)
    T16 = STR(T(16),9,2)
    T17 = STR(T(17),9,2)
    T18 = STR(T(18),9,2)
    T19 = STR(T(19),9,2)
    T20 = STR(T(20),8,2)
    T21 = STR(T(21),9,2)
    T22 = STR(T(22),9,2)
    T23 = STR(T(23),9,2)
    T24 = STR(T(24),10,2)
    @ PROW()+1,0 SAY '合    '+' &T4 &T5 &T6 &T7 &T8 &T9 &T10 &T11 &T12 &T13 &T14 &T15 &T16  &T17 &T18 &T19' &NT7
    @ PROW(), PCOL()+0.6 SAY +'  &T20 &T21 &T22 &T23 &T24' &NT7
    @ PROW()+1,0 SAY HX+HX FONT '黑体',9        
    @ PROW()+1,2 SAY '单位主管:'+SPAC(40)+'劳动工资:'+SPAC(40)+'制表人:' &A10
    SELECT 4
    USE LOGIN
    @ PROW(),PCOL() SAY 姓名 &A14
    @ PROW() + 1 , 0 SAY ' '
    EJECT
    SET PRINTER OFF
    SET DEVICE TO SCREEN
    @ 13.2 , 20 SAY '打印' + A3     &A12
    WAIT ''
 ENDDO
搜索更多相关主题的帖子: PUBLIC 
2012-02-27 11:11
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:0 
整个代码不完整
FOR K = 1 TO FCOUNT()
    F( K ) = PADL(FIELD(K),8)
ENDFOR
这段代码前还有代码吗

坚守VFP最后的阵地
2012-02-27 12:31
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
收藏
得分:5 
只要不是表损坏,打开的表再调用时,要用 sele 表名,或sele 区号,或 相同的 USE ..in .。(纠正 USE GZ1 ORDER 1 看看)

2012-02-27 12:33
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:0 
关键是贴出来的代码只是一个过程文件,调用程序什么情况不清楚
你从原来的代码中选取的代码不完整,因此会出现这种情况
贴出完整的代码

[ 本帖最后由 sdta 于 2012-2-27 13:00 编辑 ]

坚守VFP最后的阵地
2012-02-27 12:56
软件服务
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:344
专家分:736
注 册:2011-12-23
收藏
得分:5 
用调试器一看就知道那一行错啦
2012-02-27 12:58
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:0 
以下是引用软件服务在2012-2-27 12:58:33的发言:

用调试器一看就知道那一行错啦
VFP3.0以前的版本,很少用表单。他从原来的程序中,选取了上面的这段代码,因此造成了错误。
这段代码,只是原打印程序(VFP3.0)中的一部分。

[ 本帖最后由 sdta 于 2012-2-27 13:06 编辑 ]

坚守VFP最后的阵地
2012-02-27 13:02
cymjx
Rank: 2
等 级:论坛游民
帖 子:74
专家分:29
注 册:2010-11-9
收藏
得分:0 
完整的代码就是在上面的代码前加上:
PUBLIC NT7 , A8 , A9 , A10 , A11 , A12 ,A13  ,A14
 NT7 = "FONT '宋体',8"
  A8 = "FONT '宋体',9"
 A10 = "FONT '宋体',10"
 A12 = "FONT '宋体',12"
 A13 = "FONT '黑体',14"
 A14 = "FONT '迷你简硬笔楷书',14"
2012-02-27 14:13
cymjx
Rank: 2
等 级:论坛游民
帖 子:74
专家分:29
注 册:2010-11-9
收藏
得分:0 
上面的这段代码是在VFP3.0一个表单的Activate中,其它过程均为空,在VFP3.0中能正常运行。
数据环境为:gz1.dbf、gz2.dbf。
2012-02-27 14:29
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:0 
打印按钮下的代码?
把表单及数据表上传

[ 本帖最后由 sdta 于 2012-2-27 14:37 编辑 ]

坚守VFP最后的阵地
2012-02-27 14:36
cymjx
Rank: 2
等 级:论坛游民
帖 子:74
专家分:29
注 册:2010-11-9
收藏
得分:0 
上面代码就在打印按钮中。

图片附件: 游客没有浏览图片的权限,请 登录注册

 
2012-02-27 14:47
快速回复:恳请老师帮我看一个程序的代码!
数据加载中...
 
   



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

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