#副標=Web Part程開發系列(6) #大標=文件工作流程自動化 #眉標=Web Part #作者=文/林賢達 --------------------box程式1-------------------- public void OnEvent(SPListEvent evt) { //將目前使用者的身分換成管理者 WindowsImpersonationContext wic = CreateIdentity("administrator", "hhh","P@ssword").Impersonate(); SPWeb w = evt.Site.OpenWeb(); SPFile f=w.GetFile(evt.UrlAfter); SPListItem i=f.Item; SPModerationStatusType s; s=i.ModerationInformation.Status; if (evt.Type == SPListEventType.Insert)   { //新增文件時,E-Mail通知審核小組 SendMailToExamine(w,f); } else if (evt.Type ==   SPListEventType.Update) { //變更文件狀態 if (s == SPModerationStatusType.Approved) { //若為核准,則將文件移到共享文件庫 AddDocToShareLib(w,i,f); } else if (s == SPModerationStatusType.Denied) { //若為拒絕,則刪除文件 DeleteDocFromQueueLib(w,i); } } wic.Undo(); } ----------------end----------------- ------------------box 程式2-------------------    private void SendMailToExamine(    SPWeb w,SPFile i) { SPRole r=w.Roles["VetTeam"]; foreach (SPUser u in r.Users) { SPUtility.SendEmail(w,true,true, u.Email,f.Title,"文件審查"); } } --------------end------------- ------------------------------box 程式3------------------------------------    private void AddDocToShareLib(   SPWeb w,SPFile f)    { SPList sr=w.Lists["Showroom"]; SPFolder fd=sr.RootFolder; fd.Files.Add(f.Url,f.OpenBinary());      SPUtility.SendEmail(web,true,true,     f.Author.Email,     f.Title," 文件核准");    } ------------------end-------------- ----------------------------box 程式4---------------------    private void DeleteDocFromQueueLib(    SPWeb w,SPFile f)   { SPFolder fd=f.ParentFolder; fd.Files.Delete(f.Url);   SPUtility.SendEmail(web,true,true,   f.Author.Email,   f.Title,"文件退回"); } ------------------------------------end--------------------------