| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4815 人关注过本帖
标题:VFP如何调用个人课表模板文件,一页纸上生成两张个人课表
只看楼主 加入收藏
王咸美
Rank: 1
等 级:新手上路
帖 子:665
专家分:3
注 册:2018-1-4
收藏
得分:0 
@wengjl 谢谢!问题已解决。
2019-05-07 07:53
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2214
专家分:3882
注 册:2007-4-27
收藏
得分:0 
一张纸打印二位老师的课表,节省了一半的纸张,环保。通过探索,多学了一点知识或者方法。从这些角度看是值的。换其他角度看并不一定值……哈……哈……哈……


只求每天有一丁点儿的进步就可以了
2019-05-07 13:33
星光悠蓝
Rank: 9Rank: 9Rank: 9
来 自:山水甲天下
等 级:贵宾
威 望:52
帖 子:525
专家分:1278
注 册:2010-1-11
收藏
得分:0 
用A5纸设计,A4纸打印也可以的
2019-05-07 14:09
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:766
专家分:2517
注 册:2011-5-8
收藏
得分:0 
程序代码:
  SET TALK OFF
  SET SAFETY OFF
  CLOSE TABLES ALL
  CLEAR

  wjm=SYS(5)+SYS(2003)+"\grkbmb1.doc"
  WordApp=CREATEOBJECT("word.application")
  USE jsmd20180912 ALIAS jsmd20180912 IN 0
  USE jsrkb20190101 ALIAS jsrkb20190101 IN 0
  USE kb20190101 ALIAS kb20190101 IN 0

  SELECT jsmd20180912
  GOTO top
  rkmc=""
  Do While !Eof('jsmd20180912')
      xm=ALLTRIM(姓名)
*      rkmc[color=#808080]=xm+","[/color]
      kbxh=IIF(MOD(RECNO(),2)=0,2,1)
       IF kbxh=1    
      WordTable=WordApp.Application.Documents.Open(wjm)
      WordApp.Visible =.t.
      outfnm=xm
      ELSE
          outfnm=outfnm+''+xm
     ENDIF
     
      SELECT jsrkb20190101
      krecc=RECCOUNT()
      FOR k=1 TO krecc
         SELECT jsrkb20190101
         GO k
          FOR i=1 TO fcount() 
              m=FIELD(i)
              xm2= &m.
              IF ALLTRIM(xm2)=ALLTRIM(xm) THEN  &&IF ALLTRIM(xm2)=ALLTRIM(xm) 用完全匹配保险
*                 rkmc[color=#808080]=rkmc+FIELD(i)+nj+bj+','[/color]
*                 zk( m,nj,bj)
                 zk( m,nj,bj,kbxh)
               SELECT jsrkb20190101  &&保险起见,加这一句。调用过程与函数后,返回当前工作区。
              ENDIF
         NEXT i
      ENDFOR
       =WORDAPP.Selection.homekey(6)
      WORDAPP.ActiveDocument.Content.Find.Execute('ABCDEF',.F.,.F.,.F.,.F.,.F.,.T.,.F.,.F.,'&xm',1) 
      SELECT jsmd20180912
      skip
     IF kbxh=2 OR EOF('jsmd20180912')
      oFile=SYS(5)+SYS(2003)+"\"+ALLTRIM(outfnm)+"_课程表.doc"
      WordApp.Documents(1).SaveAs(oFile)
      WordApp.ActiveDocument.Close       
     endif
  ENDDO
  WORDAPP.quit
  WORDAPP=.NULL.

 CLOSE ALL

 QUIT
   
  PROCEDURE zk
*      LPARAMETERS kcm,lnj,lbj
      LPARAMETERS kcm,lnj,lbj,xh
      LOCAL j,zkm,xq,jc,zkkm
      wknb=SELECT(0)
      SELECT kb20190101
      GOTO top
      LOCATE FOR ALLTRIM(nj)==ALLTRIM(lnj) AND ALLTRIM(bj)==ALLTRIM(lbj)  
              &&如果不需要用==,可以用 LOCATE FOR nj=ALLTRIM(lnj) AND bj=ALLTRIM(lbj) 效率高一点点,但不建议这样
      IF FOUND() 
         FOR j=3 TO FCOUNT()
             zkm=FIELD(j)
             zkkm= &zkm.
             IF ALLTRIM(zkkm)=ALLTRIM(kcm) then
                xq=VAL(SUBSTR(zkm,5,1))
                jc=VAL(SUBSTR(zkm,6,1))
                scsz=ALLTRIM(nj)+ALLTRIM(bj)+ALLTRIM(kcm)
                WordTable.Tables(xh).Cell(jc+1,xq+2).Range.Text=scsz
             ENDIF
         NEXT j
      ENDIF

 **     SELECT kb20190101  本身没错但调用后的工作区变了。
         SELECT (wknb)
      RETURN

dBase有人接盘了。
2019-05-08 11:02
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
在自由表中产生重复二条记录即可,这样在报表文件一页中上,下两部份就打印出相同的内客
2019-05-08 18:09
gs2536785678
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:45
帖 子:610
专家分:1784
注 册:2017-7-16
收藏
得分:0 
朋友啊,我一张纸要打印18个教师的课程表
节能与环保是全人类的共识!

我学校共有200位老师,也只能这样做了。

[此贴子已经被作者于2019-5-9 13:55编辑过]

2019-05-09 13:53
快速回复:VFP如何调用个人课表模板文件,一页纸上生成两张个人课表
数据加载中...
 
   



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

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