标题:如何由表文件shsmd.dbf生成“2021年普通高中省级三好学生名单.doc
只看楼主
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
结帖率:96.99%
已结贴  问题点数:20 回复次数:5 
如何由表文件shsmd.dbf生成“2021年普通高中省级三好学生名单.doc
如何由表文件shsmd.dbf生成“2021年普通高中省级三好学生名单.doc”,请高手赐教,万分感谢!!!
shsmd.rar (12.57 KB)

表文件shsmd.dbf样式如下:

生成的“2021年普通高中省级三好学生名单.doc”样式如下:



[此贴子已经被作者于2021-6-8 17:42编辑过]

搜索更多相关主题的帖子: 生成 doc 文件 高中 学生 
2021-06-08 16:41
gs2536785678
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:45
帖 子:565
专家分:1668
注 册:2017-7-16
得分:0 
实在不知道朋友你想做啥?上回弄的是从WOED到DBF,
今天你又来个从DBF到WORD。
2021-06-09 08:17
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
以下是引用gs2536785678在2021-6-9 08:17:23的发言:

实在不知道朋友你想做啥?上回弄的是从WOED到DBF,
今天你又来个从DBF到WORD。

要尊重别人的辛勤劳动

[此贴子已经被作者于2021-6-9 10:18编辑过]


坚守VFP最后的阵地
2021-06-09 08:53
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
得分:0 
主要是从实际出发学习使用方法(如全县六年级抽考成绩分校列表,便于分析),不存在使用廉价劳动力现象。
2021-06-09 10:30
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:40
帖 子:749
专家分:2475
注 册:2011-5-8
得分:20 

程序代码:
Close Tables All
cCurrentProcedure = Sys(16,1)
nPathStart = At(":",cCurrentProcedure)- 1
nLenOfPath = Rat("\", cCurrentProcedure) - (nPathStart)
mypath=Substr(cCurrentProcedure, nPathStart, nLenofPath)
Set Default To (mypath)

_fnm=Sys(5)+Sys(2003)+"\模板.docx"
_Onm=Sys(5)+Sys(2003)+"\2021年普通高中省级三好学生名单.docx"

Declare Long SetForegroundWindow In user32.Dll Long &&设置顶层窗口
Declare Long FindWindow In WIN32API String lpClassName,String lpWindowName  &&第一个参数写 null才行!
oWrd_hWnd=FindWindow(Null,Justfname(_fnm)+' - Word')
If oWrd_hWnd<>0
    SetForegroundWindow(owrd_hwnd)
    wdrs=Getobject(,'word.application')
    wdrs.WindowState=2  && 0 普通 1 最大化  2 最小化
Else
    wdrs=Createobject('word.application')  &&创建Word目标测试是否安装了word  *
    wdrs.documents.Open(_fnm)
Endif
wdrs.Visible=.T.
wdrs.activedocument.SaveAs(_Onm)
*Select Distinct 所在市 dsmc From shsmd Into Cursor dstmp
SELECT 所在市  dsmc From shsmd INTO CURSOR mp1 READWRITE 
DELETE ALL
SELECT DISTINCT  所在市  dsmc From shsmd INTO CURSOR mpmp
scan
    _dsmc=ALLTRIM(dsmc)
    SELECT mp1
    LOCATE FOR _dsmc==ALLTRIM(dsmc)
    RECALL  
ENDSCAN 
SELECT * FROM mp1 INTO CURSOR sqtemp WHERE !DELETED()
Scan
    _dsmc=Alltrim(dsmc)
    Select 性别 xb,姓名 xm,学校和班级 dw From shsmd Where Alltrim(所在市)==_dsmc Into Cursor mpmp
    _addrows=Ceiling(Reccount('mpmp')/2)
    _rs1=wdrs.activedocument.Tables(1).Rows.Count+2
    wdrs.activedocument.Tables(1).Rows.Last.Select
    wdrs.Selection.InsertRowsBelow(_addrows+2)
    With wdrs.ActiveDocument.Tables(1)
        .Cell(_rs1-1,1).Merge(.Cell(_rs1-1,6))
        .cell(_rs1-1,1).Range.Text=_dsmc
        .cell(_rs1-1,1).range.Font.Size=14
        .cell(_rs1-1,1).range.Font.Bold=.t.
        .cell(_rs1-1,1).range.Font.name='宋体'
        .cell(_rs1-1,1).Borders(-2). LineStyle =0
        .cell(_rs1-1,1).Borders(-4). LineStyle =0        
        .cell(_rs1,1).Range.Text='姓  名'
        .cell(_rs1,2).Range.Text='性别'
        .cell(_rs1,3).Range.Text='所  在  学  校  和  班  级'
        .cell(_rs1,4).Range.Text='姓  名'
        .cell(_rs1,5).Range.Text='性别'
        .cell(_rs1,6).Range.Text='所  在  学  校  和  班  级'
        i=1
        Do While !Eof('mpmp')
            i=i+1
            _xm=Alltrim(mpmp.xm)
            _xb=Alltrim(mpmp.xb)
            _dw=Alltrim(mpmp.dw)
            .cell(_rs1+Int(i/2),4-3*Mod(Recno(),2)).Range.Text=_xm
            .cell(_rs1+Int(i/2),5-3*Mod(Recno(),2)).Range.Text=_xb
            .cell(_rs1+Int(i/2),6-3*Mod(Recno(),2)).Range.Text=_dw
            Skip In mpmp
Endd

Endwith


Endscan
With wdrs.ActiveDocument.Tables(1)
.Rows(1).Delete
.cell(1,1).Borders(-1). LineStyle =0
Endwith
Release wdrs
=MESSAGEBOX('OK')

word excel.rar (16.63 KB)

dBase有人接盘了。
2021-06-09 10:58
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
得分:0 
回复 5楼 xuminxz
非常感谢!!!
2021-06-09 12:50



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




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

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