﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-承接MOSS各种工作流开发 联系人:王先生.电话:13691349686 QQ:252385878 MSN:wanghao-3@hotmail.com</title><link>http://www.cnblogs.com/wanghao-3/</link><description>寻找网络安全产品代理商（主要产品有：主机审计与监控系统，移动介质管理系统，文件集中管理安全存储系统，硬盘锁等）主要针对内网安全和数据防泄密 联系人：张小姐 电话：13522877350 QQ：419919940</description><language>zh-cn</language><lastBuildDate>Sat, 26 Jul 2008 03:54:57 GMT</lastBuildDate><pubDate>Sat, 26 Jul 2008 03:54:57 GMT</pubDate><ttl>60</ttl><item><title>K2 实现流程节点动态配置</title><link>http://www.cnblogs.com/wanghao-3/archive/2008/07/24/1250845.html</link><dc:creator>A   A</dc:creator><author>A   A</author><pubDate>Thu, 24 Jul 2008 12:38:00 GMT</pubDate><guid>http://www.cnblogs.com/wanghao-3/archive/2008/07/24/1250845.html</guid><wfw:comment>http://www.cnblogs.com/wanghao-3/comments/1250845.html</wfw:comment><comments>http://www.cnblogs.com/wanghao-3/archive/2008/07/24/1250845.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/wanghao-3/comments/commentRss/1250845.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/wanghao-3/services/trackbacks/1250845.html</trackback:ping><description><![CDATA[<p><font face="Verdana">以前本blog有讲关于 K2 blackpearl 结合MOSS表单库实现请假流程 <br />
K2.net 2003&nbsp; </font></p>
<p><font face="Verdana">我接触K2是首先接触 k2 blcakpearl 开发过基于MOSS的流程。感觉K2 blcakpearl 非常强大，为用户提供过<br />
很多向导，很多东西都需要配置 配置就OK，或者根据他自己生成的代码修改修就OK ，K2 blcakpearl&nbsp; 还有一个更大的优点就是K2 blcakpearl&nbsp; 底层是基于WF，所以跟MS接触的更紧密。由于他都是提供很多向导 感觉操作界面没有K2。net 简洁 。让一般开发者上手不是很容易。仍然给予WF ，WCF ，WPF 但是还是有很多不够灵活的地方 。<br />
最近 又用K2。net 开发过项目。感觉k2.net 很容易上首。，也非常简单。扩展性也非常强悍。。</font></p>
<p><font face="Verdana">这个是最近实现的一个流程：<br />
流程很简单。。这个流程的重点是，用户可以在数据库灵活的配置节点。很容易禁用节点。启用节点</font></p>
<p><font face="Verdana">此流程的实现原理： 用户提交流程-〉level Activity ，来判断当前的申请人的级别来走流程。<br />
走流程的时候，来判弹审批节点是否禁用，如果禁用，在走向下一个流程节点 ，<br />
下个节点 如果没有被禁用 然后审批。审批后&nbsp; 流程再次流转到 level Activity 再次判断 流程的下级是否禁用。如果禁用 ，再次走下一级。。。来回循环。。就很容易解决流程节点动态问题<br />
流程图如下:</font></p>
<p><img height="584" alt="" src="http://www.cnblogs.com/images/cnblogs_com/wanghao-3/bpm1.JPG" width="1184" border="0" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><img height="563" alt="" src="http://www.cnblogs.com/images/cnblogs_com/wanghao-3/bpm2.JPG" width="1161" border="0" /></p>
<p>&nbsp;</p>
<p>希望给大家一些帮助 ...</p>
<img src ="http://www.cnblogs.com/wanghao-3/aggbug/1250845.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41313/" target="_blank">[新闻]微软推新型搜索技术"BrowseRank"挑战谷歌</a>]]></description></item><item><title>用友软件工程公司招聘moss</title><link>http://www.cnblogs.com/wanghao-3/archive/2008/06/10/1217056.html</link><dc:creator>A   A</dc:creator><author>A   A</author><pubDate>Tue, 10 Jun 2008 15:36:00 GMT</pubDate><guid>http://www.cnblogs.com/wanghao-3/archive/2008/06/10/1217056.html</guid><wfw:comment>http://www.cnblogs.com/wanghao-3/comments/1217056.html</wfw:comment><comments>http://www.cnblogs.com/wanghao-3/archive/2008/06/10/1217056.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.cnblogs.com/wanghao-3/comments/commentRss/1217056.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/wanghao-3/services/trackbacks/1217056.html</trackback:ping><description><![CDATA[<p><br />
<br />
<br />
我朋友委托我帮忙招聘一些moss开发的工程师 ！！<br />
待遇优厚。。。<br />
要求：3年asp.net开发经验 1年MOSS经验<br />
工资比一般公司待遇要高，目前公司急需MOSS 人才，会moss 开发就OK。。(有几个moss的项目)<br />
有大项目，项目奖金丰厚。。<br />
<br />
地址： 北京<br />
有兴趣可以帮简历： yanglei2@use.com.cn&nbsp; 或者 hovic.wang@gmail.com<br />
<br />
<br />
<br />
<br />
</p>
<img src ="http://www.cnblogs.com/wanghao-3/aggbug/1217056.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41312/" target="_blank">[新闻]2008年7月26日IT博客精选</a>]]></description></item><item><title>列表查询WebPart</title><link>http://www.cnblogs.com/wanghao-3/archive/2008/05/15/1198570.html</link><dc:creator>A   A</dc:creator><author>A   A</author><pubDate>Thu, 15 May 2008 08:43:00 GMT</pubDate><guid>http://www.cnblogs.com/wanghao-3/archive/2008/05/15/1198570.html</guid><wfw:comment>http://www.cnblogs.com/wanghao-3/comments/1198570.html</wfw:comment><comments>http://www.cnblogs.com/wanghao-3/archive/2008/05/15/1198570.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/wanghao-3/comments/commentRss/1198570.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/wanghao-3/services/trackbacks/1198570.html</trackback:ping><description><![CDATA[<p>SmartListSearchWebPart<br />
简单列表查询WebPart.本代码只是一个简单的Demo,代码没有实际的价值,但是很有学习价值.<br />
在项目中可以得到很好的应用!<br />
<br />
<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/wanghao-3/AASearch1.jpg" border="0" /><br />
输入key<br />
<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/wanghao-3/AASearch2.jpg" border="0" /><br />
<br />
<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/wanghao-3/AASearch3.jpg" border="0" /><br />
<br />
<br />
Code :<br />
</p>
<p><font face="Verdana">using System;<br />
using System.Runtime.InteropServices;<br />
using System.Web.UI;<br />
using System.Web.UI.WebControls;<br />
using System.Web.UI.WebControls.WebParts;<br />
using System.Xml.Serialization;<br />
using System.Xml;</font></p>
<p><font face="Verdana">using Microsoft.SharePoint;<br />
using Microsoft.SharePoint.WebControls;<br />
using Microsoft.SharePoint.WebPartPages;</font></p>
<p><font face="Verdana">namespace SmartListSearchWebPart<br />
{<br />
&nbsp;&nbsp;&nbsp; [Guid("34903418-36da-45cb-ae81-27cd82b628dd")]<br />
&nbsp;&nbsp;&nbsp; public class SmartListSearchWebPart : System.Web.UI.WebControls.WebParts.WebPart<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public SmartListSearchWebPart()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.ExportMode = WebPartExportMode.All;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private Button btnSearch;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private TextBox tbKey;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// create child controls<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; protected override void CreateChildControls()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; btnSearch = new Button();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; btnSearch.Text = "查询";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; btnSearch.Click += new EventHandler(btnSearch_Click);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.Controls.Add(btnSearch);</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tbKey = new TextBox();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.Controls.Add(tbKey);</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; base.CreateChildControls();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private SPList List<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return SPContext.Current.List;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// search<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;param name="sender"&gt;&lt;/param&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;param name="e"&gt;&lt;/param&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void btnSearch_Click(object sender, EventArgs e)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (this.tbKey.Text != "")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string cmal = string.Format("&lt;Where&gt;&lt;Contains&gt;&lt;FieldRef Name='Title' /&gt;&lt;Value Type='Text'&gt;{0}&lt;/Value&gt;&lt;/Contains&gt;&lt;/Where&gt;", this.tbKey.Text.ToString());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.SetCurrentListViewSchemaQuery(cmal);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// set current list view schema query <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;param name="cmal"&gt;&lt;/param&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private void SetCurrentListViewSchemaQuery(string cmal)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!string.IsNullOrEmpty(cmal))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string str = "{" +this.List.ID.ToString() +"}";</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach (System.Web.UI.WebControls.WebParts.WebPart webPart in base.Zone.WebParts)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (webPart is ListViewWebPart)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ListViewWebPart listViewWebPart = (ListViewWebPart)webPart;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (string.Compare(listViewWebPart.ListName, str, true) != 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; continue;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (string.IsNullOrEmpty(cmal))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; listViewWebPart.ListViewXml = this.List.Views[new Guid(listViewWebPart.ViewGuid)].HtmlSchemaXml;</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlDocument xmlDocument = new XmlDocument();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlDocument.LoadXml(listViewWebPart.ListViewXml);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.ChangeSchemaXmlCaml(xmlDocument, cmal);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; listViewWebPart.ListViewXml = xmlDocument.InnerXml;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// move where <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;param name="q"&gt;&lt;/param&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;returns&gt;&lt;/returns&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private string GetInnerQuery(string q)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlDocument docuemnt = new XmlDocument();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; docuemnt.LoadXml(q);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return docuemnt.DocumentElement.InnerXml;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// change schema xml query <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;param name="xmlDocument"&gt;&lt;/param&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;param name="query"&gt;&lt;/param&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private void ChangeSchemaXmlCaml(XmlDocument xmlDocument,string query)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!string.IsNullOrEmpty(query))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string innerXml = this.GetInnerQuery(query);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (innerXml != "")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlNode node = xmlDocument.DocumentElement.SelectSingleNode("Query");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlNode oldChild = node.SelectSingleNode("Where");</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (oldChild != null)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; node.RemoveChild(oldChild);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlNode newChild = xmlDocument.CreateElement("Where");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newChild.InnerXml = innerXml;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; node.AppendChild(newChild);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlDocument.DocumentElement.SelectSingleNode("ViewEmpty").InnerXml = "&lt;HTML&gt;&lt;![CDATA[&lt;font color='red'&gt;&lt;b&gt;AA Say:未找到符合查询条件的记录。&lt;/b&gt;&lt;/font&gt;]]&gt;&lt;/HTML&gt;";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// render<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;param name="writer"&gt;&lt;/param&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; protected override void Render(HtmlTextWriter writer)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.Write("&lt;table&gt;&lt;tr&gt;&lt;td&gt;");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.Write("关键字：");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tbKey.RenderControl(writer);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; btnSearch.RenderControl(writer);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.Write("&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
}<br />
</font></p>
<p>这个webPart 核心就是修改它的Scheam就OK<br />
listViewWebPart.ListViewXml = xmlDocument.InnerXml;（主要代码）<br />
<br />
<br />
jianyi 的文章对我很大帮助。。。希望更多的朋友向建议学习。分享<br />
<br />
<br />
<br />
<br />
<br />
</p>
<img src ="http://www.cnblogs.com/wanghao-3/aggbug/1198570.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41311/" target="_blank">[新闻]微软每年向Apache捐10万美元支持开源软件</a>]]></description></item><item><title>Feature Action List Settings</title><link>http://www.cnblogs.com/wanghao-3/archive/2008/05/09/1190190.html</link><dc:creator>A   A</dc:creator><author>A   A</author><pubDate>Fri, 09 May 2008 08:29:00 GMT</pubDate><guid>http://www.cnblogs.com/wanghao-3/archive/2008/05/09/1190190.html</guid><wfw:comment>http://www.cnblogs.com/wanghao-3/comments/1190190.html</wfw:comment><comments>http://www.cnblogs.com/wanghao-3/archive/2008/05/09/1190190.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/wanghao-3/comments/commentRss/1190190.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/wanghao-3/services/trackbacks/1190190.html</trackback:ping><description><![CDATA[<br />
今天很无赖。。很痛苦。。。很郁闷。 。。。。<br />
<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/wanghao-3/ActionList.JPG" border="0" /><br />
<br />
首先 code .cs<br />
<br />
<p><font face="Verdana">using System;<br />
using System.Collections.Generic;<br />
using System.ComponentModel;<br />
using System.Text;<br />
using System.Web;<br />
using System.Web.UI;<br />
using System.Web.UI.WebControls;<br />
using Microsoft.SharePoint;<br />
using Microsoft.SharePoint.WebControls;<br />
namespace ActionDemo<br />
{<br />
&nbsp;&nbsp;&nbsp; [DefaultProperty("Text")]<br />
&nbsp;&nbsp;&nbsp; [ToolboxData("&lt;{0}:ListSettingsMenu runat=server&gt;&lt;/{0}:ListSettingsMenu&gt;")]<br />
&nbsp;&nbsp;&nbsp; public class ListSettingsMenu : WebControl<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [Bindable(true)]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [Category("Appearance")]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [DefaultValue("")]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [Localizable(true)]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string Text<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String s = (String)ViewState["Text"];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ((s == null) ? String.Empty : s);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ViewState["Text"] = value;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></p>
<font face="Verdana">
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; protected override void CreateChildControls()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //base.CreateChildControls();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SubMenuTemplate listSettings = new SubMenuTemplate();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; listSettings.Text = "List Settings";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; listSettings.Description = "Manage settings for lists on this site";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; listSettings.ImageUrl = "/_layouts/images/lg_ICASCX.gif";</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach (SPList list in SPContext.Current.Web.Lists)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!list.Hidden)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MenuItemTemplate listItem = new MenuItemTemplate();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; listItem.Text = list.Title;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; listItem.Description = string.Format(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Manage settings for {0}", list.Title);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; listItem.ImageUrl = list.ImageUrl;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string url = string.Format(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "{0}/_layouts/listedit.aspx?List={{{1}}}",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SPContext.Current.Web.Url, list.ID.ToString());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; listItem.ClientOnClickNavigateUrl = url;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; listSettings.Controls.Add(listItem);</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.Controls.Add(listSettings);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; protected override void RenderContents(HtmlTextWriter output)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; output.Write(Text);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
}<br />
</font></p>
<br />
Feature<br />
feature.xml<br />
<p><font face="Verdana">&lt;Feature xmlns="http://schemas.microsoft.com/sharepoint/"</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Id="{abeaae41-f8bc-4d60-b793-1ab65e633009}"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Title="AA is great "<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Description="default Site Actions menu of WSS site by adding extra menu options."<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Scope="Site"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br />
&nbsp;&lt;ElementManifests&gt;<br />
&nbsp;&nbsp;&lt;ElementManifest Location="manifest.xml"/&gt;<br />
&nbsp;&lt;/ElementManifests&gt;</font></p>
<p><font face="Verdana">&lt;/Feature&gt;</font></p>
manifest.xml<br />
<p><font face="Verdana">&lt;Elements xmlns="http://schemas.microsoft.com/sharepoint/"&gt;</font></p>
<p><font face="Verdana">&nbsp;&lt;CustomAction Id="{99777c4a-55d9-459b-aefe-e38b0d610ee1}"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Location="Microsoft.SharePoint.StandardMenu"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GroupId="SiteActions"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ControlAssembly="ActionDemo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=bf2af071df56a875"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ControlClass="ActionDemo.ListSettingsMenu"<br />
&nbsp;&nbsp;&nbsp; &gt;<br />
&nbsp;&lt;/CustomAction&gt;</font></p>
<p><font face="Verdana">&lt;/Elements&gt;</font></p>
<br />
Dll放在 GAC 或者BIN<br />
<br />
然后 二个xml 文件放在 <br />
Feature&nbsp;&nbsp;下面，自己建立一个文件夹<br />
<br />
在 站点的Web.Config 文件里面注册 这个dll<br />
这个不用我写吧。。一般的WebPart 都需要。。<br />
<br />
然后安装 <br />
<br />
<p><font face="Verdana"></font>&nbsp;</p>
<p><font face="Verdana">@SET TEMPLATEDIR="C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\"<br />
<br />
@SET STSADM="C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN\stsadm"</font></p>
<p><font face="Verdana">xcopy /e /y TEMPLATE\* %TEMPLATEDIR%\Template<br />
</font></p>
<p><font face="Verdana">@ECHO ON</font></p>
<p><font face="Verdana">REM %STSADM% -o installfeature -name MyCustomListSettings -force<br />
REM %STSADM% -o activatefeature -name MyCustomListSettings -force -url http://server:8000/</font></p>
<p><font face="Verdana">REM IISRESET /timeout:0<br />
<br />
<br />
CustomAction 可以设置 <font face="Verdana">Microsoft.SharePoint.StandardMenu</font> <br />
<br />
当然别的都可以设置。。。发挥你的想象去吧。/。。。<br />
<br />
<br />
代码没有任何价值。。只是一种方式。。。<br />
<br />
<br />
今天特烦。。。。<br />
<br />
<br />
<br />
<br />
</font></p>
<br />
<br />
<br />
<br />
<img src ="http://www.cnblogs.com/wanghao-3/aggbug/1190190.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41310/" target="_blank">[新闻]AOL将关闭3个网站以降低成本 集中发力广告</a>]]></description></item><item><title>SPPropertyBag Type</title><link>http://www.cnblogs.com/wanghao-3/archive/2008/05/09/1189948.html</link><dc:creator>A   A</dc:creator><author>A   A</author><pubDate>Fri, 09 May 2008 06:20:00 GMT</pubDate><guid>http://www.cnblogs.com/wanghao-3/archive/2008/05/09/1189948.html</guid><wfw:comment>http://www.cnblogs.com/wanghao-3/comments/1189948.html</wfw:comment><comments>http://www.cnblogs.com/wanghao-3/archive/2008/05/09/1189948.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/wanghao-3/comments/commentRss/1189948.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/wanghao-3/services/trackbacks/1189948.html</trackback:ping><description><![CDATA[<p><br />
<br />
我们在使用一个site 保存信息的时候，可以使用 SPPropetryBag来很方便的存储!<br />
Code:<br />
&nbsp;SPWeb spWeb = <span style="color: #000000">(</span><span style="color: #008000">new</span> SPSite<span style="color: #000000">(</span><span style="color: #808080">"http://AA.local"</span><span style="color: #000000">)</span><span style="color: #000000">)</span>.<span style="color: #0000ff">OpenWeb</span><span style="color: #000000">(</span><span style="color: #000000">)</span>;<br />
SPPropertyBag spProperties = spWeb.<span style="color: #0000ff">Properties</span>;<br />
&nbsp;<br />
<span style="color: #0600ff">foreach</span> <span style="color: #000000">(</span>DictionaryEntry entry <span style="color: #0600ff">in</span> spProperties<span style="color: #000000">)</span><br />
&nbsp; Console.<span style="color: #0000ff">WriteLine</span><span style="color: #000000">(</span><span style="color: #808080">"&nbsp;&nbsp; {0,-25} {1}"</span>, entry.<span style="color: #0000ff">Key</span>, entry.<span style="color: #0000ff">Value</span><span style="color: #000000">)</span>;<br />
<br />
我们还可以增加一个新的key and value <br />
<br />
Code:</p>
<pre class="csharp"><span style="color: #0600ff">private</span> <span style="color: #0600ff">void</span> SetValue<span style="color: #000000">(</span><span style="color: #ff0000">String</span> key, <span style="color: #ff0000">String</span> value, <span style="color: #ff0000">String</span> siteUrl<span style="color: #000000">)</span> <span style="color: #000000">{</span>
SPWeb spWeb = <span style="color: #000000">(</span><span style="color: #008000">new</span> SPSite<span style="color: #000000">(</span><span style="color: #808080">"http://AA.local"</span><span style="color: #000000">)</span><span style="color: #000000">)</span>.<span style="color: #0000ff">OpenWeb</span><span style="color: #000000">(</span><span style="color: #000000">)</span>;
SPPropertyBag spProperties = spWeb.<span style="color: #0000ff">Properties</span>;
&nbsp;
<span style="color: #0600ff">if</span> <span style="color: #000000">(</span>spProperties.<span style="color: #0000ff">ContainsKey</span><span style="color: #000000">(</span>key<span style="color: #000000">)</span><span style="color: #000000">)</span> <span style="color: #000000">{</span>
spProperties<span style="color: #000000">[</span>key<span style="color: #000000">]</span> = Value;
<span style="color: #000000">}</span> <span style="color: #0600ff">else</span> <span style="color: #000000">{</span>
spProperties.<span style="color: #0000ff">Add</span><span style="color: #000000">(</span>Key, Value<span style="color: #000000">)</span>;
<span style="color: #000000">}</span>
&nbsp;
spProperties.<span style="color: #0000ff">Update</span><span style="color: #000000">(</span><span style="color: #000000">)</span>;
<span style="color: #000000">}<br />
<br />
<br />
</span></pre>
<img src ="http://www.cnblogs.com/wanghao-3/aggbug/1189948.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41310/" target="_blank">[新闻]AOL将关闭3个网站以降低成本 集中发力广告</a>]]></description></item><item><title>InfoPath 获取重复表的Value</title><link>http://www.cnblogs.com/wanghao-3/archive/2008/05/07/1186904.html</link><dc:creator>A   A</dc:creator><author>A   A</author><pubDate>Wed, 07 May 2008 06:55:00 GMT</pubDate><guid>http://www.cnblogs.com/wanghao-3/archive/2008/05/07/1186904.html</guid><wfw:comment>http://www.cnblogs.com/wanghao-3/comments/1186904.html</wfw:comment><comments>http://www.cnblogs.com/wanghao-3/archive/2008/05/07/1186904.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnblogs.com/wanghao-3/comments/commentRss/1186904.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/wanghao-3/services/trackbacks/1186904.html</trackback:ping><description><![CDATA[　　　　看到很多人需要，所以我写下来。。<br />
　　　在以下示例中，将使用 <span class="linkTerms"><a id="ctl00_rs1_mainContentContainer_ctl33" onclick="javascript:Track('ctl00_rs1_mainContentContainer_cpe168877_c|ctl00_rs1_mainContentContainer_ctl33',this);" href="http://msdn.microsoft.com/zh-cn/library/aa945763(VS.80).aspx">SelectNodes(XPathNavigator,XPathNavigator,String)</a></span> 方法选择绑定到 <strong>group2</strong> 的&#8220;重复表&#8221;控件的第一行中的节点。然后使用 <strong>GetContextNodes</strong> 方法基于当前所选项和指定节点返回上下文节点的集合。最后，代码将遍历上下文节点的集合，并显示每个节点的名称、内部 XML 和值。<br />
<br />
<p><font face="Verdana">// Create XPathNavigator and specify XPath for nodes.<br />
XPathNavigator repeatingTableRow1 =&nbsp;MainDataSource.CreateNavigator().SelectSingleNode(<br />
&nbsp;&nbsp; "/my:myFields/my:group1/my:group2[1]", NamespaceManager);</font></p>
<p><font face="Verdana">// Select nodes in specified XPathNavigator.<br />
CurrentView.SelectNodes(repeatingTableRow1,repeatingTableRow1,"CTRL5");</font></p>
<p><font face="Verdana">// Get context nodes in selection.<br />
XPathNodeIterator contextNodes =&nbsp;CurrentView.GetContextNodes(repeatingTableRow1,"CTRL5");</font></p>
<p><font face="Verdana">// Loop through collection and display information.<br />
foreach (XPathNavigator contextNode in contextNodes)<br />
{<br />
&nbsp;&nbsp; MessageBox.Show(contextNode.Name);<br />
&nbsp;&nbsp; MessageBox.Show(contextNode.InnerXml);<br />
&nbsp;&nbsp; MessageBox.Show(contextNode.Value);<br />
}<br />
<br />
很简单就获取到重复表的Value..<br />
希望对各位有帮助。。。<br />
<br />
本文代码　。。来之ＭＳＤＮ。。　。<br />
</font></p>
<img src ="http://www.cnblogs.com/wanghao-3/aggbug/1186904.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41309/" target="_blank">[新闻]谷歌网页索引数量突破1万亿个</a>]]></description></item><item><title>MOSS WebPart and Link</title><link>http://www.cnblogs.com/wanghao-3/archive/2008/04/14/1153468.html</link><dc:creator>A   A</dc:creator><author>A   A</author><pubDate>Mon, 14 Apr 2008 15:01:00 GMT</pubDate><guid>http://www.cnblogs.com/wanghao-3/archive/2008/04/14/1153468.html</guid><wfw:comment>http://www.cnblogs.com/wanghao-3/comments/1153468.html</wfw:comment><comments>http://www.cnblogs.com/wanghao-3/archive/2008/04/14/1153468.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/wanghao-3/comments/commentRss/1153468.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/wanghao-3/services/trackbacks/1153468.html</trackback:ping><description><![CDATA[摘要: ActiveX Scripting Web Part (Simon Mourier) AD Management Web Part (Fabian) Alert Manager, Subweb Viewer Web Parts (Mart Muller) Avail Lists &amp; Libraries (Sig Weber) Blogparts (Steen Molberg) Breadc&nbsp;&nbsp;<a href='http://www.cnblogs.com/wanghao-3/archive/2008/04/14/1153468.html'>阅读全文</a><img src ="http://www.cnblogs.com/wanghao-3/aggbug/1153468.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41308/" target="_blank">[新闻]预装 Ubuntu 8.04 的 Dell 笔记本发售</a>]]></description></item><item><title>MOSS 文章置顶</title><link>http://www.cnblogs.com/wanghao-3/archive/2008/04/13/1151703.html</link><dc:creator>A   A</dc:creator><author>A   A</author><pubDate>Sun, 13 Apr 2008 14:28:00 GMT</pubDate><guid>http://www.cnblogs.com/wanghao-3/archive/2008/04/13/1151703.html</guid><wfw:comment>http://www.cnblogs.com/wanghao-3/comments/1151703.html</wfw:comment><comments>http://www.cnblogs.com/wanghao-3/archive/2008/04/13/1151703.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/wanghao-3/comments/commentRss/1151703.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/wanghao-3/services/trackbacks/1151703.html</trackback:ping><description><![CDATA[<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl00_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2008/04/08/1141929.html">记录中心配置</a> </div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl01_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2008/04/02/1134235.html">MOSS审批工作流实现动态会签</a> </div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl02_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2008/03/03/1088505.html">ＭＯＳＳ精英峰会2008暨群友见面会　MOSS应用开发商参观门票(企业票)预订 </a></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl03_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2008/01/13/1036626.html">K2 blackpearl 结合MOSS表单库实现请假流程</a>&nbsp;&nbsp;</div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl04_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2008/01/11/1034982.html">用户权限管理模块</a> </div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl05_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/12/31/1021780.html">MOSS自动备份 </a></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl06_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/12/23/1011802.html">ajax实现google效果</a> </div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl07_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/12/16/996925.html">Excel Services 中UDF的简单使用</a>&nbsp;&nbsp;</div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl08_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/12/16/996837.html">Excel Services 的 web Services 接口应用</a> </div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl09_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/12/16/996799.html">Excel Service 简单使用方法</a>&nbsp;&nbsp;&nbsp;</div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl10_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/12/16/996373.html">Excel Service +DCL +连接外部数据</a> </div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl11_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/12/15/996332.html">MOSS Excel 2007 简单运用</a> </div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl12_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/12/15/996299.html">代码遍历列表的方法(支持文件夹的列表的项目遍历)&nbsp;</a>&nbsp;&nbsp;</div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl13_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/12/15/996220.html">Featrue 定制ApplicationPages页面</a> </div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl14_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/12/07/986858.html">SharePoint Css样式修改</a> </div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl15_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/11/29/976761.html">Wss搜索</a> </div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl16_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/11/25/971480.html">MOSS 搜索</a></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl17_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/11/05/949535.html">ShartPoint v3中的列表Field属性的巧妙运用</a></div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl18_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/10/30/942799.html">网站备份与还原(级品)</a> </div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl19_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/10/19/930069.html">状态机,你准备好拉?</a> </div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl20_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/10/17/928269.html">HelpDesk工作流多级,多任务流程(包含源代码和InfoPath模板)</a> </div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl21_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/09/27/908072.html">实现无人值守流程审批管理&nbsp;</a>&nbsp;</div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl22_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/09/27/907936.html">关于Sharepoint ad用户管理(源代码)</a>&nbsp;&nbsp;</div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl23_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/09/14/893536.html">workflow客户帮助中心审批流程Demo</a>&nbsp;&nbsp;&nbsp;</div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl24_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/09/06/884201.html">WFDemo 开发篇</a>&nbsp;&nbsp;&nbsp;</div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl25_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/09/06/884188.html">State Machine Workflow 入门篇</a>&nbsp;&nbsp;</div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl26_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/09/04/881667.html">经典正则表达式&nbsp;</a>&nbsp;&nbsp;</div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl27_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/09/04/881335.html">项目文章</a>&nbsp;&nbsp;</div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl28_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/09/04/881332.html">网站项目建设流程概述</a>&nbsp;&nbsp;&nbsp;</div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl29_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/08/14/854872.html">Win认证+匿明访问+模式验证</a> </div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl30_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/08/13/853207.html">让用户控件包装器&#8220;见鬼&#8221;去。</a>&nbsp;&nbsp;&nbsp;</div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl31_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/08/06/844522.html">OA实用的套壳工具（精品）</a> </div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl32_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/07/30/836579.html">了解k2 或者 moss工作流 开发的同行们 进</a> </div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl33_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/07/25/831004.html">SharePoint安全...SPSecurity委托，一个值得我们去思考的问题</a>&nbsp;&nbsp;&nbsp;</div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl34_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/07/13/817182.html">Moss年度隆重巨献（核心代码）</a> </div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl35_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/07/12/815563.html">MOSS 解决方案包WSP(源码发布)</a> </div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl36_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/07/05/806726.html">MOSS 直接动态安装webPart到页面</a> </div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl37_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/07/04/805306.html">MOSS 自定义应用页面得到ListId和ItemId </a></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl38_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/07/03/803950.html">MOSS 对象模型的简单开发ＤＥＭＯ</a>&nbsp;&nbsp;</div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl39_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/06/28/799238.html">MOSS 工作流开发入门学习！</a>&nbsp;&nbsp;&nbsp;</div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl40_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/06/26/795844.html">MOSS工作流开发+Email提醒</a> </div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl41_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/06/22/793111.html">MOSS创建自定义字段类型</a>&nbsp;&nbsp;</div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl42_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/06/21/791425.html">MOSS，AJAX运用</a> </div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl43_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/06/20/789995.html">MOSS关于EventHander编程 </a></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl44_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/06/19/788547.html">MOSS编写连接的WebPart</a> </div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl45_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/06/18/787076.html">MOSS自定义工具栏</a>&nbsp;</div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl46_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/06/15/784299.html">MOSS关于OM遍历列表所有信息</a> </div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl47_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/06/14/783129.html">MOSS 关于SPQuery 和SPSiteDataQuery的区别好用法！</a> </div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl48_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/06/13/781333.html">MOSS07权限分配问题！</a> </div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl49_TitleUrl" href="http://www.cnblogs.com/wanghao-3/archive/2007/06/12/780374.html">SharePoint SPQuery类简单测试</a> </div>
</div>
<img src ="http://www.cnblogs.com/wanghao-3/aggbug/1151703.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41307/" target="_blank">[新闻]金山:360的免费杀毒只能是短期行为</a>]]></description></item><item><title>记录中心配置</title><link>http://www.cnblogs.com/wanghao-3/archive/2008/04/08/1141929.html</link><dc:creator>A   A</dc:creator><author>A   A</author><pubDate>Tue, 08 Apr 2008 03:27:00 GMT</pubDate><guid>http://www.cnblogs.com/wanghao-3/archive/2008/04/08/1141929.html</guid><wfw:comment>http://www.cnblogs.com/wanghao-3/comments/1141929.html</wfw:comment><comments>http://www.cnblogs.com/wanghao-3/archive/2008/04/08/1141929.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/wanghao-3/comments/commentRss/1141929.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/wanghao-3/services/trackbacks/1141929.html</trackback:ping><description><![CDATA[<p>在"文档中心"里面点击某个需要归档的文档，选择下拉菜单里的&#8220;发送到&#8221;，再选择&#8220;记录中心&#8221;，这个文档就会归档到记录中心里对应的文档库里了。</p>
<p><strong>配置步骤：</strong></p>
<p>0. 创建需要分类归档的内容类型</p>
<p>在根网站上点击&#8220;网站操作&#8221;，选择&#8220;网站设置&#8221;--&gt;&#8220;修改所有网站设置&#8221;进入网站内容类型库，创建一个名为&#8220;Contract&#8221;的，继承自&#8220;文档&#8221;的自定义内容类型。</p>
<p>1. 创建&#8220;记录中心&#8221;网站</p>
<p>在根网站上点击&#8220;网站操作&#8221;，选择&#8220;创建网站&#8221;。</p>
<p>在创建网站界面里选择&#8220;记录中心&#8221;模板。</p>
<p>假设此网站的URL为<a href="http://moss/records">http://moss/records</a></p>
<p>2. 在&#8220;记录中心&#8221;网站里创建保存归档Contract的文档库</p>
<p>进入记录中心网站，&#8220;网站操作&#8221;--&gt;&#8220;创建&#8221;--&gt;&#8220;文档库&#8221;，选择此文档库名称为&#8220;Contracts&#8221;</p>
<p>3. 添加路由信息</p>
<p>在记录中心网站中，进入&#8220;记录路由&#8221;列表（应该叫这个吧，手头没有中文版。。。），点击&#8220;新建&#8221;，标题填&#8220;Contracts&#8221;，位置也填&#8220;Contracts&#8221;,Aliases（别名？）填&#8220;Contract&#8221;(即那个内容类型的标题)</p>
<p><a href="http://blog.joycode.com/images/blog.joycode.com/choral/WindowsLiveWriter/SharePoint101_11256/image_2.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="545" alt="image" src="http://blog.joycode.com/images/blog.joycode.com/choral/WindowsLiveWriter/SharePoint101_11256/image_thumb.png" width="650" border="0" /></a></p>
<p>4. 设置记录中心关联</p>
<p>进入SharePoint管理中心--&gt;&#8220;Web应用程序&#8221;--&gt;&#8220;记录中心&#8221;</p>
<p>选择&#8220;连接到一个记录中心&#8221;，URL里填：<a title="http://moss/records/_vti_bin/officialfile.asmx" href="http://moss/records/_vti_bin/officialfile.asmx">http://moss/records/_vti_bin/officialfile.asmx</a>&nbsp;</p>
<p><a href="http://blog.joycode.com/images/blog.joycode.com/choral/WindowsLiveWriter/SharePoint101_11256/image_4.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="221" alt="image" src="http://blog.joycode.com/images/blog.joycode.com/choral/WindowsLiveWriter/SharePoint101_11256/image_thumb_1.png" width="244" border="0" /></a> </p>
<p>5. 使用&#8220;发送到&#8221;功能进行试用</p>
<p>在文档中心里，创建一个&#8220;Contract&#8221;类型的文档，点击之，在下拉选单中，可找到&#8220;发送到--&gt;记录中心&#8221;</p>
<p><a href="http://blog.joycode.com/images/blog.joycode.com/choral/WindowsLiveWriter/SharePoint101_11256/image_6.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="423" alt="image" src="http://blog.joycode.com/images/blog.joycode.com/choral/WindowsLiveWriter/SharePoint101_11256/image_thumb_2.png" width="466" border="0" /></a> </p>
<p>操作成功后，记录中心的&#8220;Contracts&#8221;文档库就会多出这条记录：</p>
<p><a href="http://blog.joycode.com/images/blog.joycode.com/choral/WindowsLiveWriter/SharePoint101_11256/image_8.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="160" alt="image" src="http://blog.joycode.com/images/blog.joycode.com/choral/WindowsLiveWriter/SharePoint101_11256/image_thumb_3.png" width="725" border="0" /></a><br />
<br />
感觉很不错，所以留下做备份<br />
<br />
<font face="Verdana"><a href="http://blog.joycode.com/choral/archive/2008/03/13/114965.aspx">http://blog.joycode.com/choral/archive/2008/03/13/114965.aspx</a></font> 原作者 </p>
<img src ="http://www.cnblogs.com/wanghao-3/aggbug/1141929.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41306/" target="_blank">[新闻]江民科技回应杀毒软件免费说 没病不能乱吃药</a>]]></description></item><item><title>MOSS审批工作流实现动态会签</title><link>http://www.cnblogs.com/wanghao-3/archive/2008/04/02/1134235.html</link><dc:creator>A   A</dc:creator><author>A   A</author><pubDate>Wed, 02 Apr 2008 03:31:00 GMT</pubDate><guid>http://www.cnblogs.com/wanghao-3/archive/2008/04/02/1134235.html</guid><wfw:comment>http://www.cnblogs.com/wanghao-3/comments/1134235.html</wfw:comment><comments>http://www.cnblogs.com/wanghao-3/archive/2008/04/02/1134235.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/wanghao-3/comments/commentRss/1134235.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/wanghao-3/services/trackbacks/1134235.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 好久没有更新我的 Blog啦 。。可能是由于我最近比较忙，也可能是我的访问量太少，写的没有啥动力哦。。。如果大家想看到更多的好文章，请大家多多来骚扰！！！<br />
<br />
言归正传：<br />
应用场景：<br />
<p><font style="background-color: #efefef">（5.4 文件批准&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
5.4.1 管理体系手册由总经理批准。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
5.4.2 程序文件由相关部门经理会签，总经理或管理者代表批准。&nbsp;&nbsp;&nbsp; <br />
5.4.3 作业文件由起草部门经理批准。当涉及到其它部门时需要由相关部门会签。） </font></p>
<br />
<p><font style="background-color: #efefef">如果同一个文件作者主管多种产品或编写多种文件则会有多种审批流程，没有固定的标准。 <br />
<br />
问题1 <br />
5.4.2 (关于部门经理可以在流程页面初始化的时候,在外面输入几个人会签,我会根据当前会签人数,但是我的流程设计会签渠道的时候，我都设计死拉,如果想要灵活的,<br />
需要动态创建activity，根据人数来画会签渠道)&nbsp;&nbsp;难度是不是很大哦。..<br />
<br />
大家看看上面需求.MOSS+InfoPath+WF.你解决??<br />
关键是会签是动态的。不知道几个人一起会签 ?<br />
<br />
<br />
上面有一点就是需要动态会签，不知道有几个人审批，<br />
经过朋友提点 。。需要用到WF 的复制组件，就可以解决这个问题。。。<br />
不过首先我们还需要自己建立一个Activity,然后用复制组件 复制这个 Activity就可以啦 。。。<br />
Activity ：<br />
<img height="314" alt="" src="http://www.cnblogs.com/images/cnblogs_com/wanghao-3/Activity1.jpg" width="147" border="0" /><br />
WORKFLOW：<br />
<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/wanghao-3/Activity2.jpg" border="0" /><br />
仔细观察我这个Workflow界面，这个里面只放一个<font face="Verdana">replicatorActivity</font>，然后在 这个里面放一个Activity<br />
这样就可以用复制组件实现 <br />
Code：<br />
<br />
Activity ：Code<br />
</p>
<p><font face="Verdana">using System;<br />
using System.ComponentModel;<br />
using System.ComponentModel.Design;<br />
using System.Collections;<br />
using System.Drawing;<br />
using System.Workflow.ComponentModel;<br />
using System.Workflow.ComponentModel.Design;<br />
using System.Workflow.ComponentModel.Compiler;<br />
using System.Workflow.ComponentModel.Serialization;<br />
using System.Workflow.Runtime;<br />
using System.Workflow.Activities;<br />
using System.Workflow.Activities.Rules;<br />
using Microsoft.SharePoint;<br />
using Microsoft.SharePoint.Workflow;</font></p>
<p><font face="Verdana">namespace ManageHandBook<br />
{<br />
&nbsp;public partial class ReTasksActivity: SequenceActivity<br />
&nbsp;{<br />
&nbsp;&nbsp;public ReTasksActivity()<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;InitializeComponent();<br />
&nbsp;&nbsp;}</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private static DependencyProperty InstanceDataProperty = DependencyProperty.Register("InstanceData", typeof(SPWorkflowTaskProperties), typeof(ReTasksActivity));</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [BrowsableAttribute(true)]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public SPWorkflowTaskProperties InstanceData<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ((SPWorkflowTaskProperties)(base.GetValue(ReTasksActivity.InstanceDataProperty)));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; base.SetValue(ReTasksActivity.InstanceDataProperty, value);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private string comment;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string Comment<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set { comment = value; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get { return comment; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></p>
<p><font face="Verdana"></font>&nbsp;</p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public Guid taskId1 = default(System.Guid);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public Microsoft.SharePoint.Workflow.SPWorkflowTaskProperties taskProperties1 = new Microsoft.SharePoint.Workflow.SPWorkflowTaskProperties();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public Microsoft.SharePoint.Workflow.SPWorkflowTaskProperties afterProperties1 = new Microsoft.SharePoint.Workflow.SPWorkflowTaskProperties();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public Microsoft.SharePoint.Workflow.SPWorkflowTaskProperties beforeProperties1 = new Microsoft.SharePoint.Workflow.SPWorkflowTaskProperties();</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private void createTask1_MethodInvoking(object sender, EventArgs e)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; taskId1 = Guid.NewGuid();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; taskProperties1.TaskType = 0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; taskProperties1.ExtendedProperties["afterComments"] = comment;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private void onTaskChanged1_Invoked(object sender, ExternalDataEventArgs e)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; comment = onTaskChanged1.AfterProperties.ExtendedProperties["comments"].ToString();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;}<br />
}<br />
</font></p>
<p><br />
这个是 Activity里面的代码 很简单吧。。主要用 SPWorkflowTaskProperties&nbsp;&nbsp; 动态创建任务。。<br />
<br />
Workflow.cs<br />
</p>
<p><font face="Verdana">using System;<br />
using System.ComponentModel;<br />
using System.ComponentModel.Design;<br />
using System.Collections;<br />
using System.Drawing;<br />
using System.Workflow.ComponentModel.Compiler;<br />
using System.Workflow.ComponentModel.Serialization;<br />
using System.Workflow.ComponentModel;<br />
using System.Workflow.ComponentModel.Design;<br />
using System.Workflow.Runtime;<br />
using System.Workflow.Activities;<br />
using System.Workflow.Activities.Rules;<br />
using Microsoft.SharePoint;<br />
using Microsoft.SharePoint.Workflow;<br />
using System.Xml;<br />
using System.Xml.Serialization;<br />
namespace ManageHandBook<br />
{<br />
&nbsp;public sealed partial class Workflow1: SequentialWorkflowActivity<br />
&nbsp;{<br />
&nbsp;&nbsp;public Workflow1()<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;InitializeComponent();<br />
&nbsp;&nbsp;}</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private void rePlicatorActivity_ChildCompleted(object sender, ReplicatorChildEventArgs e)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ReTasksActivity activity = e.Activity as ReTasksActivity;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; comments = string.Format("{0}Approved {1}:{2}\n", comments, workflowProperties1.Web.AllUsers[activity.taskProperties1.AssignedTo].Name, activity.Comment);<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private void rePlicatorActivity_ChildInitialized(object sender, ReplicatorChildEventArgs e)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ReTasksActivity activity = e.Activity as ReTasksActivity;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; activity.taskProperties1 = e.InstanceData as SPWorkflowTaskProperties;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; activity.Comment = comments;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public Guid workflowId = default(System.Guid);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties workflowProperties1 = new Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties();</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private string comments = string.Empty;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private Person[] allPerson = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private void onWorkflowActivated1_Invoked(object sender, ExternalDataEventArgs e)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; workflowId = workflowProperties1.WorkflowId;</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //反序列化workflowProperties.InitiationData以得到初始窗体的实例<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlSerializer xs = new XmlSerializer(typeof(Inits));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlTextReader xtr = new XmlTextReader(new System.IO.StringReader(workflowProperties1.InitiationData));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Inits init = (Inits)xs.Deserialize(xtr);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; allPerson = init.Contact;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ArrayList Initlist = new ArrayList();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; allPerson.Length; i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SPWorkflowTaskProperties taskProperty = new SPWorkflowTaskProperties();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; taskProperty.AssignedTo = allPerson[i].AccountId;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; taskProperty.TaskType = 0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; taskProperty.Title = string.Format("请审批 {0}", workflowProperties1.Item.DisplayName);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Initlist.Add(taskProperty);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; replicatorActivity.InitialChildData = Initlist;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }</font></p>
<p><font face="Verdana">}<br />
</font></p>
<p>Workflow&nbsp;的代码更简单 。。。<br />
复制组件的2个方法 更重要的哦。。<br />
&nbsp; private void rePlicatorActivity_ChildCompleted(object sender, ReplicatorChildEventArgs e)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ReTasksActivity activity = e.Activity as ReTasksActivity;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; comments = string.Format("{0}Approved {1}:{2}\n", comments, workflowProperties1.Web.AllUsers[activity.taskProperties1.AssignedTo].Name, activity.Comment);<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } </p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private void rePlicatorActivity_ChildInitialized(object sender, ReplicatorChildEventArgs e)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ReTasksActivity activity = e.Activity as ReTasksActivity;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; activity.taskProperties1 = e.InstanceData as SPWorkflowTaskProperties;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; activity.Comment = comments;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></p>
<p>看起来 代码很简单。却能实现很复杂的流程。动态会签当然不是问题。。<br />
如果大家仿照 扩展 扩展。。确实可以实现很多应用。。<br />
<br />
<a href="/Files/wanghao-3/ManageHandBook.rar">/Files/wanghao-3/ManageHandBook.rar</a><br />
</font></p>
<img src ="http://www.cnblogs.com/wanghao-3/aggbug/1134235.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41305/" target="_blank">[新闻]WCG2008中国区总决赛打响</a>]]></description></item></channel></rss>