导航
  • 主页
  • API 调用
  • 基础类
  • 控件与界面
  • 数据库相关
  • DataWindow
  • 项目管理
  • Web 应用
  • 脚本语言

???dw可不可以存成doc文档???

fhwang8 2003-12-26 04:43:21
如题
...全文
6 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
CodeMagic 2003-12-27
你自己看看程序,做表格线的功能是由这句来完成的:
ole_object.ActiveDocument.tables.add(ole_object.selection.range,ll_rownum,ll_colnum) //新建word文件的表

你先把上面的程序复制到你的程序里,看看对不对,不对的话再提问?
回复
fhwang8 2003-12-27
这样能把dw中的格式也存到word中吗?(表格线等)
回复
banalman 2003-12-26
同意楼上
回复
mittee 2003-12-26
//可以,下面是网上的十分好的
//
//----------------------------------------------------------
//
//name: gf_savetoword
//input parameters : datawindow dw_1
//
//out : 1
//
//通过ole技术,将datawindow(grid形式)的数据输出到word文档
//-----------------------------------------------------------
integer li_rtn,i,j,m
string docname,named

li_rtn = GetFileSaveName("输入文件名字", docname, named, "DOC", " Doc Files (*.DOC), *.DOC")
SetPointer(HourGlass!)
IF li_rtn = 1 THEN
//2 创建ole实例,并连接到word服务
oleobject ole_object
ole_object=create oleobject
integer li_ret
li_ret=ole_object.connecttoobject("","word.application")
if li_ret <> 0 then
li_ret=ole_object.connecttonewobject("word.application")
if li_ret <> 0 then
messagebox("ole 错误","ole无法连接! 错误号: " + string(li_ret))
return 0
end if
ole_object.visible= true
end if

//3 得到dw_1的行数和列数,还有列名
long ll_colnum,ll_rownum
string ls_colname[]
ll_colnum = Long(dw_1.object.datawindow.column.count)
ll_rownum = dw_1.rowcount()
for i = 1 to ll_colnum //得到数据列的名
dw_1.scrolltorow(1)
dw_1.setcolumn(i)
ls_colname[i]=trim(dw_1.GetColumnName())
next

//4 创建word文档和表
ole_object.Documents.Add() //新建word文件
ole_object.ActiveDocument.tables.add(ole_object.selection.range,ll_rownum,ll_colnum) //新建word文件的表

//5 输出表的标题
dw_1.setredraw(false)
string ls_title
for i = 1 to ll_colnum //输出标题
ls_title=dw_1.describe(ls_colname[i] + "_t" + ".text")
ole_object.Selection.TypeText(ls_title)
// for m = 1 to lenw(ls_title)
// ole_object.Selection.TypeBackspace()
// next
ole_object.selection.moveright(12)
next

//6 输出表的数据
string ls_value
for i = 1 to ll_rownum //输出数据到word文件
for j = 1 to ll_colnum
dw_1.scrolltorow(i)
dw_1.setcolumn(j)
ls_value = trim(dw_1.gettext())
ole_object.Selection.TypeText(ls_value)
// for m = 1 to lenw(ls_value) //取出字符串中的中文个数
// ole_object.Selection.TypeBackspace()
// next
// //ole_object.Selection.TypeParagraph //加一回车
ole_object.selection.moveright(12) //跳到下一格
next
next
dw_1.setredraw(true)

// //7 保存文档和销毁ole实例
// ole_object.ActiveDocument.SaveAs(docname, 0,false,"",True,"",False,False,False, False,False)
ole_object.disconnectobject()
destroy ole_object
messagebox("提示信息","输出完毕")


End if
SetPointer(Arrow!)
return 1
回复
fhwang8 2003-12-26
怎么导?
回复
yanitan 2003-12-26
你把数据窗口导出来,然后用word打开(选择始终使用这种打开方式)就行了
回复
发动态
发帖子
PowerBuilder
创建于2007-09-28

816

社区成员

PowerBuilder 相关问题讨论
申请成为版主
社区公告
暂无公告