标题:如何点击treeview中的姓名在表单上生成WORD格式的个人课表?
只看楼主
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
结帖率:96.99%
已结贴  问题点数:20 回复次数:12 
如何点击treeview中的姓名在表单上生成WORD格式的个人课表?
现有 学校日课总表kb20190101.dbf、各班教师任课表jsrkb20190101.dbf、个人课表模板grkbmb1.doc等文件,如何点击treeview中的姓名在表单上生成WORD格式的个人课表?且点击表单上的打印按钮进行打印。请高手赐教,万分感谢!!!
个人课表查询.zip (11.07 KB)


搜索更多相关主题的帖子: WORD 表单 点击 生成 格式 
2022-04-19 15:40
WSQSZSQ
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2022-4-18
得分:0 
为什么要用WORD格式呢,直接做个报表,不是更简单的吗?
2022-04-19 21:47
WSQSZSQ
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2022-4-18
得分:0 
日课表



[此贴子已经被作者于2022-4-19 21:58编辑过]

2022-04-19 21:52
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
得分:0 
OleControl1的NodeClick代码有点问题:点击 TREEVIEW控件中的姓名不能生成个人任课表,请高手指点,谢谢!!!
*** ActiveX 控件事件 ***
LPARAMETERS node

 CLOSE ALL
 CLEAR
 wjm="f:\temp2\grkbmb.doc"
 PUBLIC k,mxm,cxkmc,i,j
 WordApp=CREATEOBJECT("Word.application")
 WordApp.visible=.t.
 USE jsmd20190101 ALIAS jsmd IN 0
 USE jsrkb20190101 ALIAS jsrkb IN 0
 USE kb20190101 ALIAS rkb IN 0

 SELECT jsmd
 GOTO top
    mxm=ALLTRIM(node.text) && 这一句有问题,不知如何改。
   
    WAIT WINDOW '正在生成教师个人任课表...'+ mxm nowait
     WordTable=WordApp.Application.Documents.Open(wjm)
     WordApp.Visible =.t.
     WORDAPP.ActiveDocument.Content.Find.Execute('ABCDEF',.F.,.F.,.F.,.F.,.F.,.F.,.F.,.F.,'&mxm',2)
     SELECT rkb
     SCAN
         cnj=rkb.nj
         cbj=rkb.bj
         FOR i=1 TO 5
          FOR j=1 TO 6
            cxkmc=ALLTRIM(EVALUATE("rkb."+"zhou"+TRANSFORM(i)+TRANSFORM(j)))
            SELECT jsrkb
            SCAN
             FOR k=1 TO FCOUNT('jsrkb')
               IF FIELD(k)=cxkmc AND EVALUATE(FIELD(k))= mxm AND ALLTRIM(nj)=cnj AND ALLTRIM(bj)=cbj
               wordTable.tables.item(1).cell(j+1,i+2).range.text=cnj+cbj+cxkmc
              endif
             ENDFOR
            ENDSCAN
           ENDFOR
          endfor
     ENDSCAN
   
    WordApp.Documents(1).saveas("F:\"+mxm+"_任程表.doc")  
    WordApp.ActiveDocument.close
  
   
 WORDAPP.quit
 WORDAPP=.NULL.
 CLOSE ALL
 QUIT
  
2022-04-20 10:28
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:108
帖 子:2175
专家分:3785
注 册:2007-4-27
得分:0 
看样子王老师的日课表管理软件开发已经成功了

只求每天有一丁点儿的进步就可以了
2022-04-20 15:56
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
得分:0 
还没有,水平不够!
2022-04-21 07:31
fyyylyl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:16
帖 子:287
专家分:676
注 册:2006-5-22
得分:0 
mxm=ALLTRIM(This.Nodes(This.SelectedItem.Key).Text)

2022-04-21 08:44
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
得分:0 
OleControl1的NodeClick代码作如下修改,点击 TREEVIEW控件中的姓名可生成个人任课表

*** ActiveX 控件事件 ***

LPARAMETERS node
CLOSE DATABASES

wjm="f:\temp2\grkbmb.doc"
PUBLIC k,mxm,cxkmc,i,j
WordApp=CREATEOBJECT("Word.application")
WordApp.visible=.t.
USE jsmd20190101 ALIAS jsmd IN 0
USE jsrkb20190101 ALIAS jsrkb IN 0
USE kb20190101 ALIAS rkb IN 0


SELECT jsmd
LOCATE FOR ALLTRIM(jsmd.姓名)==ALLTRIM(node.text)
IF FOUND()
    mxm=ALLTRIM(node.text)
    WAIT WINDOW '正在生成教师个人任课表...'+ mxm nowait
    WordTable=WordApp.Application.Documents.Open(wjm)
    WordApp.Visible =.t.
    WORDAPP.ActiveDocument.Content.Find.Execute('ABCDEF',.F.,.F.,.F.,.F.,.F.,.F.,.F.,.F.,'&mxm',2)
    SELECT rkb
    SCAN
        cnj=rkb.nj
        cbj=rkb.bj
        FOR i=1 TO 5
            FOR j=1 TO 6
                cxkmc=ALLTRIM(EVALUATE("rkb."+"zhou"+TRANSFORM(i)+TRANSFORM(j)))
                SELECT jsrkb
                SCAN
                    FOR k=1 TO FCOUNT('jsrkb')
                        IF FIELD(k)=cxkmc AND EVALUATE(FIELD(k))= mxm AND ALLTRIM(nj)=cnj AND ALLTRIM(bj)=cbj
                            wordTable.tables.item(1).cell(j+1,i+2).range.text=cnj+cbj+cxkmc
                        ENDIF
                    ENDFOR
                ENDSCAN
            ENDFOR
        ENDFOR
    ENDSCAN
    WordApp.Documents(1).saveas("F:\temp3\"+mxm+"_任程表.doc")
    WordApp.ActiveDocument.close
endif
WORDAPP.quit
WORDAPP=.NULL.
* CLOSE ALL
* QUIT

2022-04-21 09:11
fyyylyl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:16
帖 子:287
专家分:676
注 册:2006-5-22
得分:20 
一、建议将
USE jsmd20190101 ALIAS jsmd IN 0
USE jsrkb20190101 ALIAS jsrkb IN 0
USE kb20190101 ALIAS rkb IN 0
放到表单的Load 事件
二、以下代码放到Tree控件的Click事件中:
IF !ISNULL(This.SelectedItem.Parent)     &&当前节点为教师
        mxm=ALLTRIM(This.Nodes(This.SelectedItem.Key).Text)
    IF MESSAGEBOX("确要生成 "+mxm+" 任课表吗?",4+32+0,"确认:")=6
        wjm="f:\temp2\grkbmb.doc"
        SELECT jsmd
        LOCATE FOR ALLTRIM(jsmd.姓名)==mxm
        IF FOUND()
    *        mxm=ALLTRIM(node.text)
            WAIT WINDOW '正在生成教师个人任课表...'+ mxm nowait
            FileName="F:\temp3\"+mxm+"_任程表.doc"
            COPY FILE (wjm) TO (FileName)
            WordApp=CREATEOBJECT("Word.application")
*            WordApp.Visible =.t.
            WordTable=WordApp.Application.Documents.Open(FileName)
            WORDAPP.ActiveDocument.Content.Find.Execute('ABCDEF',.F.,.F.,.F.,.F.,.F.,.F.,.F.,.F.,'&mxm',2)
            SELECT rkb
            SCAN
                cnj=rkb.nj
                cbj=rkb.bj
                FOR i=1 TO 5
                    FOR j=1 TO 6
                        cxkmc=ALLTRIM(EVALUATE("rkb."+"zhou"+TRANSFORM(i)+TRANSFORM(j)))
                        SELECT jsrkb
                        SCAN
                            FOR k=1 TO FCOUNT('jsrkb')
                                IF FIELD(k)=cxkmc AND EVALUATE(FIELD(k))= mxm AND ALLTRIM(nj)=cnj AND ALLTRIM(bj)=cbj
                                    wordTable.tables.item(1).cell(j+1,i+2).range.text=cnj+cbj+cxkmc
                                ENDIF
                            ENDFOR
                        ENDSCAN
                    ENDFOR
                ENDFOR
            ENDSCAN
               WordApp.Documents(1).saveas(FileName)
            WordApp.ActiveDocument.close
            WAIT WINDOW  mxm+' 任课表成生完成!'
        ENDIF
    ENDIF
ENDIF


2022-04-21 10:52
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
得分:0 
如何做到在表单上显示word格式个人任课表?且单击表单上的“打印”按钮即开始打印。望高手指点,万分感谢!!!
2022-04-21 12:37



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-508886-1-1.html




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

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