welcome to 's blog...


公告

我的分类(专题)

日志更新

最新评论

留言板

链接

搜索


Blog信息




web化的簽核系統(snowman)
aku1 发表于 2006-10-10 15:37:16

Web 的程式,基本上也分前端與後端,後端如果是用Notes 的話,就是在Lotus agent 和 action 寫程式了。那前端,無論後端是用 jsp/asp/php/lotus 前端都只有一種語言,就就叫javascript 基本上,可以將web程式想成,下載至Browser 然後Browser去執行裏面的javascript和計算出網頁的內容外觀,所以一定要學會javascript?

除非你想讓server 忙死,而且貴公司有無限的頻寬的話,那不學也可以!!

在key in 每一個字時,都將它傳回server,讓server計算 ,然後再回傳新網頁,user每按一個字就閃一下,我想誰都受不了,所以一定要學javascript

我先不說要如何做dialogbox ,簽核把資料填寫完,至少要送簽吧,在notes裏,你可能在Action中寫上

@if( aaa="";@prompt([yesno]......

非常抱歉,@prompt不支援 Web ,那要如何寫?
先將Action的內容分為兩部份,檢查及處理
一、檢查警告工作,讓javascript來做 (自行學Javascript)
二、處理部份使用@formula (因為lotusscript 不會被執行)


TMsg:=User;
@SetField("status";"管理處會簽");
@SetField("AuthorList";Send2);
@SetField("FORM";"Apply2");
@MailSend(@Unique(Send2);
"";""; "外派申請------"+" 請處理";TMsg; ""; [IncludeDoclink]);
@PostedCommand([FileSave]);@Command([FileCloseWindow])

只要不使用不支援Web的@formula指令,應該都能正確執行,而使用lotusscript 的動作會被隱藏

當@formula 執行完會收到網頁如下

>>已處理套表


可利用如下重導
@Command([OpenPage];"首頁");

或是在 $$Return 中填入html 內容,Lotus notes 將會將內容回傳

上面的方法,說白點,就是Browser 做完local的javascript 運算後,將資料整個回傳給server,server 去執行Action的動作

除了觸發action 還有沒有web的特殊事件?
有,和觸發action很像,只不過這次程式是寫在 WebQuerySave裏去指定由那一支代理程式接手
那上面還有一個WebQueryOpen ? 當然是你open文件時會觸發的事件,也可以指定一支代理程式來接手

所以只要文件在Web環境中, 發生Open 及Save事件時,這個地方的代理程式,都會被執行,所以若你在action中改變欄位值,然後call doc.save(),再這裏又改變一次,那是以最後為主啦

原程式 @Command([ToolsRunMacro]; "<您的代理程式在此處>") 你也可以改成 @setField("Status";"哈哈笑");

直接使用@Formula,還是能執行的....

那麼lotusscript 不就都不能用在Web上?
不能直接寫在Action 上,可以寫在Agent上啊,再利用上面的,不就可以呼叫到了

Agent 內容

Dim session As NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument

Sub Initialize
Set session=New NotesSession
Set db=session.CurrentDatabase
Set doc=session.DocumentContext
Call doc.ReplaceItemValue("Subject","改改改")
Call doc.Save(True,False)
End Sub

畫面會回到原來編輯中,但是資料改了,文件也存好了!!
那怎麼重導至我們要的頁面

1.使用 Print
Sub Initialize
Set session=New NotesSession
Set db=session.CurrentDatabase
Set doc=session.DocumentContext
Call doc.ReplaceItemValue("Subject","TTTTT")
Call doc.Save(True,False)
Print |<h3>謝謝你!!</h3>|

End Sub

Print 的內容為要顯示的html內容

2.不使用任何的 Print ,而且有$$RETURN 的欄位,這就不用說啦,依上

這下子,最重要的送簽按鈕就打完收工了,至於怎麼要樣做DialogBox for Web 或是 人員撰擇器 for Web....我已經都做出來了

阅读全文 | 回复(0) | 引用通告 | 编辑


发表评论:

    昵称:
    密码: (游客无须输入密码)
    主页:
    标题:



Powered by Oblog.