| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1527 人关注过本帖
标题:如何修改代码,点击班级生成相应班级课表?
只看楼主 加入收藏
王咸美
Rank: 1
等 级:新手上路
帖 子:579
专家分:0
注 册:2018-1-4
结帖率:97.04%
收藏
 问题点数:0 回复次数:10 
如何修改代码,点击班级生成相应班级课表?
如何修改代码,点击班级生成相应班级课表? 涉及到年级、班级两个节点,实在不会,请行家赐教,万分感谢!!!
各班级课表查询.zip (12.15 KB)

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


OleControl1.NodeClick代码:
*** ActiveX 控件事件 ***
LPARAMETERS node
CLOSE DATABASES
wjm="F:\temp2\jkbmb3.doc"  && 班级课程表模板(含有标题行的空表)
PUBLIC cnj,cbj,cxkmc,i
WordApp=CREATEOBJECT("Word.application")   
WordApp.Visible =.t.

SELECT 0
Use jsrkb20190101 alias bjb

cnj=bjb.nj
cbj=bjb.bj
  && 红色代码不知如何修改,请高手指教!

WAIT WINDOW '正在生成"  '+cnj+cbj+'  "的日课表……' NOWAIT
SELECT * from kb20190101 where nj=cnj and bj=cbj into cursor bjkb
SELECT bjkb
WordTable=WordApp.Application.Documents.Open(wjm)    && 关键
wordapp.selection
wordapp.Selection.InsertAfter(ALLTRIM("&cnj&cbj"))     && 在模板文件标题行插入年级、班级
SELECT bjkb
FOR i=1 TO 5
  FOR j=1 TO 6
     cxkmc=ALLTRIM(EVALUATE("bjkb."+"zhou"+TRANSFORM(i)+TRANSFORM(j)))
     WordTable.Tables.item(1).Cell(j*2,i+2).Range.Text=cxkmc
     SELECT bjb
     FOR k=1 to FCOUNT()
      IF FIELD(k)=cxkmc
       WordTable.Tables.item(1).Cell(j*2+1,i+2).Range.Text=EVALUATE(FIELD(k))
      ENDIF
     ENDFOR
   ENDFOR
  endfor
  SELECT bjkb
  USE
  SELECT bjb
  WAIT CLEAR  

  filename="F:\temp2\"+cnj+cbj+"课程表.doc"
  WordApp.ActiveDocument.PrintOut
  WordApp.Documents(1).SaveAs(filename)  &&自动保存文件
  WordApp.ActiveDocument.Close


wordapp.application.quit
messagebox("班级日课表的WORD文档生成完毕!",64,"提示:")
return


[此贴子已经被作者于2022-4-24 15:30编辑过]

搜索更多相关主题的帖子: 点击 修改 代码 生成 SELECT 
2022-04-24 15:28
王咸美
Rank: 1
等 级:新手上路
帖 子:579
专家分:0
注 册:2018-1-4
收藏
得分:0 
问题已解决
** ActiveX 控件事件 ***
LPARAMETERS node
CLOSE DATABASES
wjm="F:\temp2\bjkbmb3.doc"  && 班级课程表模板(含有标题行的空表)
PUBLIC cnj,cbj,cxkmc,i
WordApp=CREATEOBJECT("Word.application")   
WordApp.Visible =.t.
SELECT 0
Use jsrkb20190101 alias bjb
LOCATE FOR ALLTRIM(bjb.NJ)==ALLTRIM(node.parent.Text) AND ALLTRIM(bjb.BJ)==ALLTRIM(Node.text)
IF FOUND()
cnj=ALLTRIM(Node.parent.Text)
cbj=ALLTRIM(Node.text)
WAIT WINDOW '正在生成"  '+cnj+cbj+'  "的日课表……' NOWAIT
SELECT * from kb20190101 where nj=cnj and bj=cbj into cursor bjkb
SELECT bjkb
WordTable=WordApp.Application.Documents.Open(wjm)    && 关键
wordapp.selection
wordapp.Selection.InsertAfter(ALLTRIM("&cnj&cbj"))     && 在模板文件标题行插入年级、班级
SELECT bjkb
FOR i=1 TO 5
  FOR j=1 TO 6
     cxkmc=ALLTRIM(EVALUATE("bjkb."+"zhou"+TRANSFORM(i)+TRANSFORM(j)))
     WordTable.Tables.item(1).Cell(j*2,i+2).Range.Text=cxkmc
     SELECT bjb
     FOR k=1 to FCOUNT()
      IF FIELD(k)=cxkmc
       WordTable.Tables.item(1).Cell(j*2+1,i+2).Range.Text=EVALUATE(FIELD(k))
      ENDIF
     ENDFOR
   ENDFOR
  endfor
  SELECT bjkb
  USE
  SELECT bjb
  WAIT CLEAR  

  filename="F:\temp2\"+cnj+cbj+"课程表.doc"
*  WordApp.ActiveDocument.PrintOut
  WordApp.Documents(1).SaveAs(filename)  &&自动保存文件
  WordApp.ActiveDocument.Close


wordapp.application.quit
messagebox("班级日课表的WORD文档生成完毕!",64,"提示:")
ENDIF

2022-04-25 16:18
ljlhpop
Rank: 2
等 级:论坛游民
帖 子:151
专家分:49
注 册:2015-10-11
收藏
得分:0 
老师真厉害!!!!!
2022-04-25 17:08
fyyylyl
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:301
专家分:764
注 册:2006-5-22
收藏
得分:0 
课表查询.zip (20.18 KB)
将教师任课表、班级课程表合二为一。
在表单上显示WORD文档:
1、使用WEBBROWSE控件:出现打开提示窗口目前找不到好的解决办法;
2、使用WORD控件:没有类似VALUE、CONTROLSOURCE的属性,试了使用OPEN打开文档后全选复制,模拟键盘粘贴到WORD控件对象中可显示,但还是不太理想。
以上问题盼有高手出手解决。

[此贴子已经被作者于2022-4-28 08:56编辑过]


2022-04-27 17:10
王咸美
Rank: 1
等 级:新手上路
帖 子:579
专家分:0
注 册:2018-1-4
收藏
得分:0 
@fyyylyl 谢谢!!!非常有用,值得学习借鉴。
2022-04-28 13:34
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:763
专家分:2503
注 册:2011-5-8
收藏
得分:0 
回复 4楼 fyyylyl
没明白你说的“打开提示窗口”指的是什么?运行程序没有问题啊。只是建议加一个SET SAFETY OFF 。改写临时文件不需要确认吧。

dBase有人接盘了。
2022-04-28 15:38
fyyylyl
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:301
专家分:764
注 册:2006-5-22
收藏
得分:0 
回复 6楼 xuminxz
https://bbs.bccn.net/thread-508886-1-1.html十三楼

2022-04-28 16:04
fyyylyl
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:301
专家分:764
注 册:2006-5-22
收藏
得分:0 
不太理解楼主为什么不使用报表或直接打印WORD文档而非得显示WORD文档后再打印?使用模板也得写代码啊!

2022-04-28 16:16
fyyylyl
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:301
专家分:764
注 册:2006-5-22
收藏
得分:0 
试了一下,可先将WORD文档转存为网页文件oWord.Active.Documents.SaveAs(cFileName,9),使用WEB BROWSE控件显示;或转存为PDF文件oWord.Active.Documents.SaveAs(cFileName,17)使用PDF控件显示。

2022-04-29 17:46
ljlhpop
Rank: 2
等 级:论坛游民
帖 子:151
专家分:49
注 册:2015-10-11
收藏
得分:0 
回复 9楼 fyyylyl
新手一个,,,,弱弱问下,,按您的意思是说可以把模版WORD 转换为PDF 文件? 然后VFP 可以把需要的文字啥的,打印到PDF 的控件里面? 就像VFP 自带的域控件一样简单?
2022-04-29 20:17
快速回复:如何修改代码,点击班级生成相应班级课表?
数据加载中...
 
   



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

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