回 帖 发 新 帖 刷新版面

主题:请教各位PB高手,如何倒入word的问题!!

我做了用pb一个“软件工程题库系统”,现在有个问题:就是我在出完题之后,不知如何倒入word,因为我想在word中实现打印等功能,请各位高手指点一下小女子,谢谢!!!

回复列表 (共3个回复)

沙发

我做了是数据库的试题题库系统,也有这方面的问题,大家可以讨论一下的
QQ:98723455

板凳


用ole吧,实例变量is_docname,open事件中代码:
is_docname ='\11.doc'\\你要的文件所在的路径
IF NOT FileExists(is_docname) THEN
    MessAgeBox("提示","没有找到会员打印摸板,会员生日函无法打印")
    cb_print.visible = false
    RETURN
END IF



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
    end if
    ole_object.Visible = false
END IF
cb_print事件代码:
IF DW_1.GETROW() = 0 THEN
    MESSAGEBOX("提示","请选择要打印的会员")
    RETURN
END IF

IF NOT FileExists ( is_docname ) THEN
    MessAgeBox("提示","模板文件丢失,无法打印")
    RETURN
END IF

long ll_cycle1,ll_cycle2,ll_brow,ll_row
string ls_name
ll_brow = dw_1.GetSelectedRow (0)
for ll_cycle1 = ll_brow  to dw_1.rowcount()
    
    If dw_1.IsSelected(ll_cycle1) Then
        ls_name = dw_1.object.namec[ll_cycle1]
        ole_object.Documents.Add(is_docname)
        ole_object.selection.goto(true,0,0,'b_1')//b_1为我在WORD模板中设置的标签
        ole_object.selection.typetext(ls_name)
    
        for ll_cycle2 = 1 to wf_getcnmum(ls_name)
            ole_object.Selection.TypeBackspace()
        next
        ole_object.application.ActiveDocument.printout()
        ole_object.ActiveDocument.Close(False)
    End if
next
close事件代码:
if isvalid ( Ole_Object ) then
    Ole_Object.DisConnectObject()
    Destroy Ole_Object
end if


wf_getcnmum(string astring)函数:
string ls_ch //临时单元
string ls_SecondSecTable //存放所有国标二级汉字读音
integer li_num = 0 //返回值
integer i,j

for i = 1 to Len(aString)
    ls_ch = Mid(aString,i,1)
    if Asc(ls_ch) >= 128 then //判定是汉字
        li_num++
        i = i+1
    end if
next

return li_num

3 楼

使用OLE技术,将WORD嵌入到窗口中。

我来回复

您尚未登录,请登录后再回复。点此登录或注册