Sub SearchWeb()
Dim QryDB As NotesDatabase
Dim vwDBList As NotesView
Dim sQueryString As String
Dim sMinRecord,sMaxRecord,sSortMethod,sTemp,sQry,sOldQry,sSymbol As String
Dim sSearchFuzzy As String
Dim sUseCache As String
Dim sServername As String
Dim sDbName As String
Dim sViewName As String
Dim sPage As String
Dim sCondition As String
Dim sDBDocID As String
Dim sFields As String
Dim vResult() As Variant
Dim vTemp,vDBDocList As Variant
Dim i,j,iRecordNumber As Integer
Set session = New NotesSession
Set db = session.currentdatabase
Set doc = session.documentcontext
sQry = doc.Query_String_Decoded(0)
sOldQry = sQry
'-------------------------------- 獲取查詢參數(shù) --------------------------------------
vTemp = Evaluate("@ReplaceSubstring('"+sQry+"';'+';' ')")
sTemp = vTemp(0)
sQry = sTemp
i = Instr(sTemp,"^")
sCondition = Mid(sTemp,i+1) '查詢條件
sDBDocID = Left(sTemp,i-1)
i = Instr(sDBDocID,"&")
sDBDocID = Mid(sDBDocID,i+1)'查詢視圖參數(shù)
'sSortMethod = Mid(sCondition,Instr(sCondition,"~")+1,1)'排序方式
sSearchFuzzy = Mid(sCondition,Instr(sCondition,"!")+1,1)'是否使用模糊查詢
sUseCache = Mid(sCondition,Instr(sCondition,"$")+1,1)'是否使用Cache
i = Instr(sCondition,"@")
j = Instr(i+1,sCondition,"@")
sMinRecord=Val(Mid(sCondition,i+1,j-i-1))'查詢記錄起始數(shù)
sMaxRecord=Val(Mid(sCondition,j+1))'查詢記錄每頁最大結(jié)果數(shù)
sCondition = Mid(sCondition,1,i-1)'取得查詢關(guān)鍵字
vDBDocList = Extract(sDBDocID,",") '獲取查詢視圖參數(shù)的數(shù)組
Call ExtractArray(sCondition) '獲取查詢關(guān)鍵字列表
iRecordNumber = 0
sPage = ""
sSymbol = ""
If sSearchFuzzy = "1" Then
sSymbol = "*"
End If
'------------------------------------------------------------------------------------
'---------------------------------- 開始查詢 ----------------------------------------
Forall x In vDBDocList
vTemp = Extract(Cstr(x),"!")'拆分查詢參數(shù)(所在服務(wù)器!所在數(shù)據(jù)庫!查詢視圖)
sServerName=vTemp(0)'查詢數(shù)據(jù)庫所在服務(wù)器
sDbName=vTemp(1)'查詢數(shù)據(jù)庫
sViewName = vTemp(2)'查詢的視圖名
Set QryDB = New NotesDatabase(sServerName,sDbName)'取得查詢數(shù)據(jù)庫對(duì)象
Set view = QryDB.getview(sViewName)'取得查詢數(shù)據(jù)庫視圖
sQry=""
sQueryString = ""
Forall y In sQryKey
sQry = Replace(y,"""","''")
sTemp = ""
'當(dāng)指定域查詢時(shí)
If doc.Fields(0) <> "" Then
Forall z In doc.Fields
If sTemp = "" Then
sTemp = "FIELD "+z+{ contains "}+sSymbol+sQry+sSymbol+{"}
Else
sTemp = sTemp + " AND FIELD "+z+{ contains "}+sSymbol+sQry+sSymbol+{"}
End If
End Forall
If sQueryString = "" Then
sQueryString = "(" + sTemp +")"
Else
sQueryString = sQueryString + " OR (" + sTemp +")"
End If
Else'未指定域
If sQueryString = "" Then
sQueryString = sQry
Else
sQueryString = sQueryString + " AND " + sQry
End If
End If
End Forall
j = view.FTSearch( sQueryString, Cint(sMaxRecord))'開始查詢
'將結(jié)果形成XML數(shù)據(jù)
If j>0 Then
For i = 1 To j
iRecordNumber = iRecordNumber + 1
Set qrydoc = view.getnthdocument(i)
sPage = sPage + {<row url="javascript:opendoc('/}+QryDB.Replicaid+{/0/}+qrydoc.Universalid+{?opendocument')">}
sPage = sPage + {<number>}+Cstr(iRecordNumber)+{</number>}
sPage = sPage + {<title>}+qrydoc.ColumnValues(0)+{</title>}
sPage = sPage + {<category>}+doc.Name(0)+{</category>}
sPage = sPage + {<score>}+Cstr(qrydoc.FTSearchScore)+{%</score>}
sPage = sPage + {</row>}
Next
End If
Call view.clear
End Forall
'------------------------------------------------------------------------------------
'---------------------------------- 輸出結(jié)果 ----------------------------------------
Print {Content-type: text/xml}
Print {<?xml version='1.0' encoding="utf-8" ?>}
Print {<view name="查詢結(jié)果" id="vgosearchresult.xml">}
Print {<header>}
Print { <number>序號(hào)</number>}
Print { <title>標(biāo)題</title>}
Print { <category>位置</category>}
Print { <score>匹配度</score>}
Print {</header>}
Print {<action/>}
Print {<rows>}
Print sPage
Print {</rows>}
Print {</view>}
'------------------------------------------------------------------------------------
End Sub
import java.io.*;
import java.net.URL;
import java.sql.*;
import java.util.Properties;
import lotus.notes.*;
import java.util.*;
public class savetonewdatabase extends AgentBase {
public void NotesMain() {
Driver drv = null;
PrintWriter out = null;
try {
Session session = getSession();
AgentContext ac = session.getAgentContext();
Database db = ac.getCurrentDatabase();
Database SendDB = session.getDatabase(db.getServer(),"lt_getfile.nsf");
Document doc = ac.getDocumentContext();
out = getAgentOutput();
String docUnid;
//Get the new record's unid
docUnid = uniqueID();
//Get the sql insert statement
StringBuffer SqlUrl = new StringBuffer("Insert into Shouwen_stat (");
StringBuffer SqlValue = new StringBuffer(" values (");
String temp= doc.getItemValueString("F_hao");
if(temp!=null){
temp = doc.getItemValueString("F_ziTitle")+"〔"+doc.getItemValueString("F_zi")+"〕"+doc.getItemValueString("F_hao")+"號(hào)";
}else{
temp = "〔"+doc.getItemValueString("F_zi")+"〕";
}
if (temp!= null){
SqlUrl.append("doc_no");
SqlValue.append("'" + temp+"'");
}
String doc_id = doc.getItemValueString("CurDocId");
if (doc_id != null) {
SqlUrl.append(",doc_id");
SqlValue.append(",'" + doc_id + "'");
}
String sqlField = doc.getItemValueString("F_title");
if (sqlField != null) {
SqlUrl.append(",doc_title");
SqlValue.append(",'" + sqlField + "'");
}
sqlField = doc.getItemValueString("shenghr");
if (sqlField != null) {
SqlUrl.append(",niban_people");
SqlValue.append(",'" + sqlField + "'");
}
sqlField = doc.getItemValueString("F_BigSpecies");
if (sqlField != null) {
SqlUrl.append(",wen_zhong");
SqlValue.append(",'" + sqlField + "'");
}
sqlField = doc.getItemValueString("text");
if (sqlField != null) {
SqlUrl.append(",file_content");
SqlValue.append(",'" + sqlField + "'");
}
sqlField = doc.getItemValueString("timewrite"); //收文日期
if (sqlField != null) {
SqlUrl.append(",shouwen_date");
SqlValue.append(",'" + sqlField + "'");
}
sqlField = doc.getItemValueString("F_FilekeyWord");
if (sqlField != null) {
SqlUrl.append(",title_word");
SqlValue.append(",'" + sqlField + "'");
}
sqlField = doc.getItemValueString("F_emergency");
if (sqlField != null) {
SqlUrl.append(",huan_ji");
SqlValue.append(",'" + sqlField + "'");
}
sqlField = doc.getItemValueString("F_UnitName");
if (sqlField != null) {
SqlUrl.append(",laiwen_unit");
SqlValue.append(",'" + sqlField + "'");
}
sqlField = doc.getItemValueString("F_Secret");
if (sqlField != null) {
SqlUrl.append(",mi_ji");
SqlValue.append(",'" + sqlField + "'");
}
sqlField = doc.getItemValueString("laiwfs");
if (sqlField != null) {
SqlUrl.append(",laiwen_mode");
SqlValue.append(",'" + sqlField + "'");
}
sqlField = doc.getItemValueString("shengpyj");
if (sqlField != null) {
SqlUrl.append(",niban_date");
SqlValue.append(",'" + sqlField + "'");
}
sqlField = doc.getItemValueString("shenghyj");
if (sqlField != null) {
SqlUrl.append(",niban_yijian");
SqlValue.append(",'" + sqlField + "'");
}
sqlField = doc.getItemValueString("F_EndTime");
if (sqlField != null) {
SqlUrl.append(",banli_qixian");
SqlValue.append(",'" + sqlField + "'");
}
sqlField = doc.getItemValueString("lind");
if (sqlField != null) {
SqlUrl.append(",chengban_yj");
SqlValue.append(",'" + sqlField + "'");
}
sqlField = doc.getItemValueString("pisyj");
if (sqlField != null) {
SqlUrl.append(",piban_date");
SqlValue.append(",'" + sqlField + "'");
}
sqlField = doc.getItemValueString("lindps");
if (sqlField != null) {
SqlUrl.append(",piban_yijian");
SqlValue.append(",'" + sqlField + "'");
}
sqlField = doc.getItemValueString("banlyj");
if (sqlField != null) {
SqlUrl.append(",banli_jieguo");
SqlValue.append(",'" + sqlField + "'");
}
sqlField = doc.getItemValueString("banlr");
if (sqlField != null) {
SqlUrl.append(",banli_people");
SqlValue.append(",'" + sqlField + "'");
}
sqlField = doc.getItemValueString("banlsj");
if (sqlField != null) {
SqlUrl.append(",banli_date");
SqlValue.append(",'" + sqlField + "'");
}
sqlField = doc.getItemValueString("chengbyj");
if (sqlField != null) {
SqlUrl.append(",piban_people");
SqlValue.append(",'" + sqlField + "'");
}
sqlField = doc.getItemValueString("chengbr");
if (sqlField != null) {
SqlUrl.append(",chengban_people");
SqlValue.append(",'" + sqlField + "'");
}
sqlField = doc.getItemValueString("chengbsj");
if (sqlField != null) {
SqlUrl.append(",chengban_date");
SqlValue.append(",'" + sqlField + "'");
}
sqlField = doc.getItemValueString("temp"); //流水號(hào)
if (sqlField != null) {
SqlUrl.append(",shouwen_bianhao");
SqlValue.append(",'" + sqlField + "'");
}
sqlField=doc.getItemValueString("shihgd"); //文件是否歸檔
if(sqlField!=null){
SqlUrl.append(",document_state");
SqlValue.append(",'"+sqlField+"'");
}
sqlField=doc.getItemValueString("wenjzx"); //文件走向
if(sqlField!=null){
SqlUrl.append(",send_file");
SqlValue.append(",'"+sqlField+"'");
}
SqlUrl.append(")");
SqlValue.append(")");
String Va = SqlValue.toString();
SqlUrl.append(Va);
// Connect to data source
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
drv = new sun.jdbc.odbc.JdbcOdbcDriver();
String url = "jdbc:odbc:is_archive";
Properties props = new Properties();
props.put("user","isa");
props.put("password","gxmi");
Connection con = drv.connect(url,props);
if (con==null){
out.println("<h1>Con't Connect to DB!</h1>");
return;
}
Statement stmt = con.createStatement();
//Insert a record to the Fwdj table
Va = SqlUrl.toString();
Va =new String(Va.getBytes("gb2312"),"ISO-8859-1");
stmt.executeUpdate(Va);
out.println("<link rel='stylesheet' href='/oa.css'><br><br><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>");
out.println("<TR VALIGN=top><TD WIDTH=232><IMG SRC='/Lt_getfile.nsf/c01a1dee4878d8a648256b270024a88c/$Body/0.25E!OpenElement&FieldElemFormat=gif' WIDTH=208 HEIGHT=21></TD>");
out.println("<TD WIDTH=416 VALIGN=middle><DIV ALIGN=center><B><FONT SIZE=5 COLOR='0000FF'>操作反饋信息</FONT></B></DIV></TD></TR></TABLE>");
out.println("<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><TR VALIGN=top>");
out.println("<TD WIDTH=689><IMG SRC='/Lt_getfile.nsf/c01a1dee4878d8a648256b270024a88c/$Body/0.CFA!OpenElement&FieldElemFormat=jpg' WIDTH=688 HEIGHT=4></TD></TR>");
out.println("</TABLE><BR><br><br><br><br><P><BR><BR><BR><BR>");
out.println("<table border=0 bgColor=#0099cc borderColorLight=#000000 cellPadding=1 cellSpacing=2 align='center'><tr><td bgcolor=#EFEFEF>文件發(fā)送給下一辦理人"+doc.getItemValue("sendtobak")+"辦理!</td></tr></table>");
} catch (Exception e) {
out.println(e.getMessage());
e.printStackTrace();
}
}
public static String uniqueID()
{
StringBuffer sb=new StringBuffer(20);
java.text.SimpleDateFormat formatter=new java.text.SimpleDateFormat("yyyy/MM/dd");
java.util.Date currentTime=new java.util.Date();
String sid=formatter.format(currentTime);
return sid;
}
public static String replaceAll(String operStr,String oldStr ,String replaceStr){
int fromIndex=0;
int index=0;
int oldStrLen=oldStr.length();
int replaceStrLen=replaceStr.length();
while((index=operStr.indexOf(oldStr,fromIndex))!=-1){
//新的位置起點(diǎn)
//fromIndex+replaceStrLen-oldStrLen+1
fromIndex=index + replaceStrLen;
operStr=operStr.substring(0,index)+replaceStr+
operStr.substring(index+oldStrLen,operStr.length());
}
return operStr;
}
}
在進(jìn)行系統(tǒng)設(shè)計(jì)的時(shí)候用戶要求對(duì)各文件能夠?qū)崿F(xiàn)組合條件的查詢和統(tǒng)計(jì),開發(fā)之初我選擇了notes自身提供的綜合查詢表單$$Search Form來實(shí)現(xiàn),但在用戶使用了一段時(shí)間發(fā)現(xiàn),采用$$Search Form來進(jìn)行組合條件查詢時(shí)常常會(huì)搜索到許多并不滿足條件的文檔或者搜索到的文檔根本就不知道是什么,為了解決這個(gè)問題,我決定寫代碼來實(shí)現(xiàn)組合條件查詢,下面就來講講實(shí)現(xiàn)的過程。 首先建立一個(gè)表單(Fsearch),主要用來現(xiàn)實(shí)和選擇查詢條件,表單的域元素如下表所示:
編號(hào)
域名
含義
類型
說明
01
SaveOptions
防止使用該表單創(chuàng)建文檔
文本域
該域是系統(tǒng)域當(dāng)值為”0”的時(shí)候當(dāng)前表單不會(huì)創(chuàng)建文檔,因?yàn)檫@里使用該表單僅僅是為了選擇查詢條件,不需要?jiǎng)?chuàng)建文檔,所以該域的值為“0”
02
biaoti
發(fā)文標(biāo)題
文本域
03
zhutici
主題詞
文本域
04
laiwenhao
發(fā)文號(hào)
文本域
05
nigaoren
擬稿人
文本域
06
danwei
擬稿人單位
文本域
07
syear
文檔所屬年度
文本域
08
smonth
文檔所屬月份
文本域
在表單上按照用戶要求和使用習(xí)慣利用表格布局好上述元素后,在表單上創(chuàng)建一個(gè)熱點(diǎn)按鈕“現(xiàn)在查找“,執(zhí)行@Command([ToolsRunMacro];"(wFaWenSearch)") 的公式命令,其中wFaWenSearch 是一個(gè)共享代理,代碼如下:Sub Initialize ‘//定義變量 Dim session As New NotesSession Dim cDoc As NotesDocument Dim db As NotesDatabase Dim sResult , Set sResultemp As NotesDocumentCollection Dim sql As String Set db=session.currentDatabase ‘//獲得當(dāng)前數(shù)據(jù)庫 Set cDoc=session.DocumentContext() ‘//獲得當(dāng)前文檔,即用戶打開的選擇條件的表單Fsearch Set view=db.getView("($UNID)") ‘//獲得($UNID)視圖,該視圖里現(xiàn)實(shí)所有文件 ‘//============獲取查詢條件=========// sYear=cDoc.syear(0) sMonth=cDoc.smonth(0) biaoti=cDoc.biaoti(0) zhutici=cDoc.zhutici(0) laiwenhao=cDoc.laiwenhao(0) danwei=cDoc.danwei(0) nigaoren=cDoc.nigaoren(0) ‘//================END================//‘//=====組合查詢條件======//sql="form=""fwmain"""+"&(@Contains(biaoti;"""+biaoti+""")"+"|@Contains(zhutici;"""+zhutici''>|@Contains(zhutici;"""+zhutici+""")"+_"|@Contains(t1+""[""+@text(t2)+""]""+@text(t3''>|@Contains(t1+""[""+@text(t2)+""]""+@text(t3)+ ""號(hào)""+;"""+laiwenhao+""")"+"|@contains(danwei">|@contains(danwei; """+danwei+""")"+_"|@Contains(nigaoren;"""+nigaoren+""")"+"|@Contains(sYear;"""+sYear''>|@Contains(nigaoren;"""+nigaoren+""")"+"|@Contains(sYear;"""+sYear+""")"+"| @Contains(sMonth;"""+sMonth+"""))"Set sResultemp= db.search(sql,Nothing,0) ‘//在數(shù)據(jù)庫中搜索滿足上述條件的所有文檔,獲得該文檔集;但是由于使用search語法會(huì)把當(dāng)前操’//作者沒有閱讀權(quán)限的文檔也搜索到,所以先把搜索到的文檔集賦予臨時(shí)變量sResultemp 再進(jìn)行處理 Set sResult=db.search("@Contains(sYear;''1'')",Nothing,0) ‘//初始化一個(gè)文檔集sResul,這文檔集中沒有文件的‘//========下面這循環(huán)主要是利用視圖對(duì)文檔讀者權(quán)限的限制功能把sResultemp====//‘//========這個(gè)文檔集中當(dāng)前用戶有閱讀權(quán)限的文檔添加到文檔集sResul中去=====// For i=1 To sResultemp.count Set sDoc=sResultemp.getNthDocument(i) key=sDoc.bh(0) Set Sview=db.getView("default") Set sDoc=Sview.Getdocumentbykey(key,True) If Not sDoc Is Nothing Then Set sDoctmp=sResult.Getdocument(sDoc) If sDoctmp Is Nothing Then Call sResult.Adddocument(sDoc) End If End If Next If sResult.count=0 Then Print "沒有找到您要查找的文件" Exit Sub End If ''//=========創(chuàng)建網(wǎng)頁來顯示查詢結(jié)果=======// Print "<html>" Print "<head>" Print "<link rel=stylesheet type=text/css href=ViewCss.css>" Print "</script>" Print "</head>"Print "<body>" Print "<table width=100%>" Print "<tr>" Print "<td colspan=6 align=right style=border-style:solid;border-width:0 0 2px;border-color:#669933>查找到 "+Cstr(jjj)+" 份文件 <br>" Print "</td>" Print "</tr>" Print "<tr>" Print "<td width=5% class=td1></td>" Print "<td width=10% class=td1>年度</td>" Print "<td width=10% class=td1>月份</td>" Print "<td width=40% class=td1>標(biāo)題</td>" Print "<td width=20% class=td1>主辦部門</td>" Print "<td width=15% class=td1>擬稿人</td>" Print "</tr>" For i=1 To sResult.count Set sDoc=sResult.getNthDocument(i) Set sDoc=view.getDocumentByKey(sDoc.bh(0),True) If Not sDoc Is Nothing Then Print "<tr>" Print "<td class=tdx><a href=/"+sDoc.DBPath(0)+"/merit_gwgl.nsf/($UNID)/"+sDoc.UniversalID+"?opendocument target=_blank><img src=01.gif border=0 ></a></td>" Print "<td class=tdx>"+sDoc.sYear(0)+"</td>" Print "<td class=tdx>"+sDoc.sMonth(0)+"</td>" Print "<td class=tdx>"+sDoc.biaoti(0)+"</td>" Print "<td class=tdx>"+sDoc.danwei(0)+"</td>" Print "<td class=tdx>"+sDoc.nigaoren(0)+"</td>" Print "</tr>" End If Next Print "</table>" Print "</body>" Print "</html>" End Sub
<input type="checkbox" name="%%Detach" value="IBM咨詢.txt"><a href="附件路徑">IBM咨詢.txt</a></td></tr>
選中以后,保存文檔,附件就會(huì)被系統(tǒng)自動(dòng)刪除
江川之子 22:04:47 使用什么方法定位嵌入的embeddedobject呢 ,嵌入到文檔還是rtf域
CoolStar~_~ 22:04:55 文檔
江川之子 22:05:24 只能用getembedobject
江川之子 22:05:44 如果是rtf中的就可以用ref。emdedobjects
主業(yè)務(wù)數(shù)據(jù)表組,日志數(shù)據(jù)表組,組織結(jié)構(gòu)權(quán)限組表,輔助數(shù)據(jù)表組,業(yè)務(wù)控制數(shù)據(jù)表組,
尤其對(duì)于oa,組織結(jié)構(gòu)最重要。對(duì)于一般的業(yè)務(wù),業(yè)務(wù)控制數(shù)據(jù)最重要,這樣可以讓你的業(yè)務(wù)變的很靈活。
Sub InitAttachment
On Error Goto ErrorHandle
Dim temDoc As notesDocument
Dim temDoc1 As NotesDocument
Dim docAttachment As NotesDocument
Dim strQuery As String
Dim strUNID As String
Dim strFormula As String
Dim strList As String
Dim vPath As Variant
strQuery = note.Query_String_Decoded(0)
If Instr(strQuery,"&UNID=") > 0 Then
strUNID = Mid(strQuery,Cint(Instr(strQuery,"&UNID=")) + 6,32)
Set temDoc = db.GetDocumentByUNID(strUNID)
If Not (temDoc Is Nothing) Then
Set docAttachment = db.CreateDocument
docAttachment.Form = "fmAttachment"
docAttachment.Status = "0"
docAttachment.CourseInfoUnid = temDoc.UniversalID
If temDoc.HasEmbedded Then
Set temDoc1 = db.CreateDocument
Call temDoc.CopyAllItems (temDoc1)
Forall item In temDoc1.Items
If Not (Ucase(item.Name) = "$FILE") Then
temDoc1.RemoveItem (item.Name)
End If
End Forall
Call temDoc1.CopyAllItems(docAttachment)
End If
End If
End If
Call docAttachment.Save(True,False)
docAttachment.CurUnid = docAttachment.UniversalID
Call docAttachment.Save(True,False)
vPath = Evaluate(|@ReplaceSubstring(@Subset(@DbName;-1); " " : "\\"; "+" : "/")|)
Print |<script language="javascript"> |
Print |<!-- |
Print |window.location.href = "/| & vPath(0) & _
|/0/| & docAttachment.UniversalID & |?editdocument";|
Print |--> |
Print |</script> |
Exit Sub
'Domino Control Platform Error Info
ErrorHandle:
Messagebox db.FilePath & "_LibEduCommand.InitAttachment:" & Error$ & " at line number " & Cstr(Erl)
'Resume Next
End Sub
Sub SendMailNotification( docMain As Notesdocument, strSendto As String ,strTempletNum As String)
On Error Goto ErrorHandle
Dim docMail As NotesDocument
Dim rti As NotesRichTextItem
Dim body As NotesMIMEEntity
Dim child As NotesMIMEEntity
Dim stream As NotesStream
Dim strTmp As String
Dim strReplace As String
Dim bSuccess As Boolean
Dim strHtml As String
s.ConvertMIME = False
Set stream = s.CreateStream
Set docMail = New NotesDocument(docMain.ParentDatabase)
Call docMail.ReplaceItemValue("Form","Memo")
Call docMail.ReplaceItemValue("Principal","Reporter Notification")
Call docMail.ReplaceItemValue("ReplyTo","")
Set body = docMail.CreateMIMEEntity("Body")
Set child = body.CreateChildEntity
Call stream.WriteText(MailText(docMain,strTempletNum))
Call docMail.ReplaceItemValue( "Subject",MailSubject(docMain,strTempletNum))
strHtml = |<br><div style="font-size:15px; "><b><a href="|&ProfileDoc.DBHome(0) & ProfileDoc.DBPath(0) & |/0/| & docMain.UniversalID &|?opendocument" target="_blank">請(qǐng)點(diǎn)擊打開文檔</a></b></div>|
stream.WriteText(strHtml)
Call docMail.ReplaceItemValue("BlindCopyTo", strSendto)
Call child.SetContentFromText(stream, "text/html;charset=GB2312", ENC_NONE)
Call stream.Truncate
Call docMail.Send(False)
s.ConvertMIME = True
Call docMail.Remove(True)
Exit Sub
ErrorHandle:
'iSuccess = False
Messagebox db.FilePath & "_LSMailCommand.SendNotification:" & Error$ & " at line number " & Cstr(Erl)
Exit Sub
End Sub
'Print |正在統(tǒng)計(jì),請(qǐng)稍候...|
Print |<script language="javascript"> |
Print |<!--
var oXL
var oBook
var oSheet1
var oXL = new ActiveXObject("Excel.Application");
oBook = oXL.Workbooks.Add();
oSheet1 = oBook.ActiveSheet;
oSheet1.Name = "IP-ASIC-Simulation";
oXL.sheets(oSheet1.Name).Select;
oXL.Range("A1:G1").Select;
oXL.Selection.RowHeight = 28.50;
oXL.Selection.HorizontalAlignment = 3;
oXL.Selection.VerticalAlignment = 3 ;
oXL.Selection.Font.Name = "宋體";
oXL.Selection.Font.FontStyle = "加粗";
oXL.Selection.Font.Size = 10;
oXL.Selection.Interior.ColorIndex = 19;
oXL.Selection.Borders.LineStyle = 1;
oSheet1.Cells(1,1).Value = "Customer's Project";
oSheet1.Cells(1,2).Value = "SH Project";
oSheet1.Cells(1,3).Value = "GID";
oSheet1.Cells(1,4).Value = "RD Users";
oSheet1.Cells(1,5).Value = "Layout Users";
oSheet1.Cells(1,6).Value = "Created Time";
oSheet1.Cells(1,7).Value = "Update Time";
oXL.Selection.Columns.AutoFit;
oXL.Selection.Rows.AutoFit;
|
i = 2
While Not (doc Is Nothing)
Print |oSheet1.Cells(| & Cstr(i) & |,1).Value = "| & Cstr(doc.Plan_Code_Sunplus(0)) & |";|
Print |oSheet1.Cells(| & Cstr(i) & |,2).Value = "| & Cstr(doc.Plan_Code_Sh(0)) & |";|
Print |oSheet1.Cells(| & Cstr(i) & |,3).Value = "| & Cstr(ProfileDoc.GID(0)+i-2) & |";|
'RDUser和LayoutUser
For j=1 To doc.num(0)
strItemName = "LoginName" & j
Set item = doc.GetFirstItem(strItemName)
strUserList = strUserList + item.Text+","
Next
Print |oSheet1.Cells(| & Cstr(i) & |,4).Value = "| & strUserList & |";|
Print |oSheet1.Cells(| & Cstr(i) & |,5).Value = "| & strUserList & |";|
Print |oSheet1.Cells(| & Cstr(i) & |,6).Value = "| & Cstr(doc.Created) & |";|
Print |oSheet1.Cells(| & Cstr(i) & |,7).Value = "| & Cstr(doc.ChangeDate(0)) & |";|
i = i+1
Print |
oXL.sheets(oSheet1.Name).Select;
oXL.Range(oSheet1.Cells(2,1),oSheet1.Cells(| & Cstr(i) & |-1,7)).Select;
oXL.Selection.Font.Name = "宋體";
oXL.Selection.Font.Size = 10;
oXL.Selection.Borders.LineStyle = 1;
oXL.ReferenceStyle = 1;
oXL.Range("A1").Select;
|
Set doc = vw.GetNextDocument(doc)
Wend
Print |oXL.Visible = true; |
Print |window.history.go(-1); |
'Print |window.close(); |
Print |--> |
Print |</script> |
基本原理:函件收集針對(duì)異域domino服務(wù)器的notes數(shù)據(jù)庫進(jìn)行信息的傳遞。
啟動(dòng)administrator端,選擇"People&Group"的標(biāo)簽;
展開"Mail-In Database and Resources",添加“函件收集數(shù)據(jù)庫”;
以新聞數(shù)據(jù)庫為例:
函件收集數(shù)據(jù)庫名稱:dccnews(隨意)
Internet地址:dccnews@ibm.com
網(wǎng)絡(luò)域:ibm
服務(wù)器:mingle/ibm
文件名:oa/dccnews.nsf
說明:dccnews@ibm.com為郵件的通信地址,不需要單獨(dú)為此在names.nsf中注冊。只需要將其在外發(fā)的郵件服務(wù)器中設(shè)置,這樣進(jìn)來的郵件可以識(shí)別即可。我們可以通過創(chuàng)建類型為“郵件進(jìn)入時(shí)”的代理即可解析和接收郵件的信息。
$Conflict
如果文檔中有此域產(chǎn)生,則標(biāo)志此域?yàn)闆_突文檔。
$$QuerySaveAgent
功能:等價(jià)于表單中的WebQuerySave事件。