BS模式下,我用模板的方式将表单的内容输出到word打印,只是我一点击怎么不在客户端上打开word,却在服务器上打开word?

Lotusxyz 2004-08-18 09:01:37
代码如下:
Sub Initialize
Dim session As New notessession
Dim db As notesdatabase
Dim view As notesview
Dim doc As notesdocument
Dim docsj As notesdocument

dbname=Evaluate("@dbname")
Set db=New notesdatabase(dbname(0),"meritoa\merit_sjzd.nsf") '//取到数据字典
Set view=db.getview("moban")
Set docsj=view.getfirstdocument()
Set doc=session.documentcontext()
Set item=docsj.getfirstitem("FldTemplate")
If ( item.Type = RICHTEXT ) Then
Set object = item.getEmbeddedObject(item.EmbeddedObjects(0).name)
object.Extractfile("c:\月度计划汇总表.doc")
End If
Set wordapp=createobject("word.application")
wordapp.visible=True
wordapp.documents.open("c:\月度计划汇总表.doc") '//获得word模板
wordapp.activedocument.bookmarks("huizongren").select
wordapp.wordbasic.insert(doc.planman(0))
wordapp.activedocument.bookmarks("yuefen").select
wordapp.wordbasic.insert(doc.planmonth(0))
wordapp.activedocument.bookmarks("huizongriqi").select
wordapp.wordbasic.insert(doc.formdate(0))
wordapp.activedocument.bookmarks("start").select
For i=1 To 10
deptname=doc.getitemvalue("depname"+Cstr(i))(0)
If deptname<>"" Then
wordapp.wordbasic.insert(deptname)
wordapp.Selection.ParagraphFormat.Alignment=1
wordapp.Selection.Range.Cells.VerticalAlignment = 1
wordapp.selection.moveright(12)

item=doc.getitemvalue("workplan"+Cstr(i))
j=0
Forall o In item
j=j+1
End Forall
wordapp.Selection.Cells.Split(j)
wordapp.Selection.Moveup
Forall o In item
wordapp.Selection.MoveDown
wordapp.wordbasic.insert(o)
End Forall
wordapp.selection.moveright(12)

item=doc.getitemvalue("over"+Cstr(i))
wordapp.Selection.Cells.Split(j)
wordapp.Selection.Moveup
Forall o In item
wordapp.Selection.MoveDown
wordapp.wordbasic.insert(o)
End Forall
wordapp.selection.moveright(12)

item=doc.getitemvalue("duty"+Cstr(i))
wordapp.Selection.Cells.Split(j)
wordapp.Selection.Moveup
Forall o In item
wordapp.Selection.MoveDown
wordapp.wordbasic.insert(o)
End Forall
wordapp.selection.moveright(12)

item=doc.getitemvalue("charger"+Cstr(i))
wordapp.Selection.Cells.Split(j)
wordapp.Selection.Moveup
Forall o In item
wordapp.Selection.MoveDown
wordapp.wordbasic.insert(o)
End Forall
wordapp.selection.moveright(12)

item=doc.getitemvalue("xtbumen"+Cstr(i))
wordapp.Selection.Cells.Split(j)
wordapp.Selection.Moveup
For k=0 To j-1
wordapp.Selection.MoveDown
Next
wordapp.selection.moveright(12)
Else
continue=False
'wordapp.Selection.Rows.Delete
End If
Next
End Sub
请大虾们指点指点!小弟先谢过了.
...全文
261 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
freyild1979 2004-08-20
  • 打赏
  • 举报
回复
楼上得楼上 正解
netkaiser 2004-08-19
  • 打赏
  • 举报
回复
Lotusxyz 2004-08-19
  • 打赏
  • 举报
回复
楼上的大虾们,通过js怎么实现啊?有没有人给提个醒,活着给点代码参考一下??
lotusweb 2004-08-19
  • 打赏
  • 举报
回复
b/s的代理都是在服务器运行。着你该明白了吧。所以要改变思路。写javascript来调用word.或者activex控件吧。
Lotusxyz 2004-08-19
  • 打赏
  • 举报
回复
up
dive 2004-08-18
  • 打赏
  • 举报
回复
你可能用这个试一下嘛!
function converttoword()
{
var worddoc,field,getfield
app = new ActiveXObject("Word.Application")
if (app==null )
{
alert("加入本主机ip,以保证可以启用本地应用程序!");
return false
}
app.visible =true;
app.Activate()
app.Username =document.all.currentuser.value;

worddoc = app.documents.open("http://"+window.location.hostname+"/"+document.all.docstyle.value)
worddoc.activate()
servr = ""
count = worddoc.Fields.count
if (count <1) return false
getfield = worddoc.Fields(1)
while (getfield!==null)
{
field = getfield
getfield = field.next
code = field.Code.text.split(" ")
if (code.length <2) continue
name = code[2]
value = eval("document.all."+name+".value")
if (value==null||value =="") value = eval("document.all."+name+".innerText")
if (value==null||value =="") continue
switch (name)
{
case "secret" :
period= eval("document.all.secretperiod.value")
if (period!==null||period!=="")
value=value+"★"+period
field.result.Insertbefore(value)
field.Delete();
break;
default:
field.result.Insertbefore(value)
field.Delete();
break;
}
}
bar = worddoc.CommandBars(27)
bar.Visible = true
worddoc.TrackRevisions = true
worddoc.ShowRevisions = true
}
fengyi999 2004-08-18
  • 打赏
  • 举报
回复
rugl(rugl) 说的不错!
rugl 2004-08-18
  • 打赏
  • 举报
回复
不是这些原因吧,B/S模式代理都在服务器上运行,所以才导致在服务器上打开word。

一般在客户端操作一般通过js来实现。
虎头是我 2004-08-18
  • 打赏
  • 举报
回复
服务器有个winword的进程,清除掉以后再试试,

另外,我严重怀疑你的服务器,或客户端安装了3721,卸载了试试

535

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 Exchange Server
社区管理员
  • 消息协作社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧