| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1822 人关注过本帖
标题:如何修改代码,点击班级生成相应班级课表?
取消只看楼主 加入收藏
王咸美
Rank: 1
等 级:新手上路
帖 子:669
专家分:3
注 册:2018-1-4
结帖率:97.52%
收藏
 问题点数:0 回复次数:2 
如何修改代码,点击班级生成相应班级课表?
如何修改代码,点击班级生成相应班级课表? 涉及到年级、班级两个节点,实在不会,请行家赐教,万分感谢!!!
各班级课表查询.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
等 级:新手上路
帖 子:669
专家分:3
注 册: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
王咸美
Rank: 1
等 级:新手上路
帖 子:669
专家分:3
注 册:2018-1-4
收藏
得分:0 
@fyyylyl 谢谢!!!非常有用,值得学习借鉴。
2022-04-28 13:34
快速回复:如何修改代码,点击班级生成相应班级课表?
数据加载中...
 
   



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

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018315 second(s), 10 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved