1

私はSharePointを初めて使用し、リストの比較に関する一般的な質問があります。現在、絶えず変化するユーザー生成リストがあり、変化に関する定量的なデータを収集したいと思いました。毎日8:00に到着し、5:00にまた出発します。8:00と5:00の間にそのリストに含まれるアイテムの数と数を知り、結果を確認できるようにしたい。たとえば、リストには、完了する必要のある現在のプロジェクトが含まれています。8:00に到着したときに20、出発したときに3ある場合、プロジェクトの85%と17/20を完了したデータを表示できるようにしたいと思います。これは可能ですか?

*現在、SharePointDesignerまたはサーバーへのアクセス権がありません。アクセスが必要であり、私がそれを取得できると仮定すると、これにアプローチするための最良の方法は何でしょうか?

4

2 に答える 2

1

Timerjobはまともなオプションかもしれません。リストにヒットしてすべてのアイテムをクエリし、カウントしてから、誰かに電子メールをpingするか、SharePointのどこかに返される図をドロップするのは少しコーディングです。

さらに、タイマージョブのコーディング方法については、 http://www.andrewconnell.com/blog/articles/CreatingCustomSharePointTimerJobs.aspx ブログを読んでください。

実際にあなたが必要としているものを手に入れるために、私はあなたが何をする必要があるかについてあなたに話しますが、あなたが尋ねる前に最初に実際に試みる必要があるのであなたにコードを与えません。

spsiteオブジェクトを取得します(これには、リストを含むWebが含まれている必要があります)リストを含むWebオブジェクトを取得します。リストを取得する

SPList countLIst = <yourWeb>.lists["<listname or GUID>"]

リスト数を取得する

int numberOfItems = countList.items.count

どういうわけか表示または保存numberOfItems

SPContext.current.siteは、コンテキストが原因でタイマージョブ内では機能しないことに注意してください。

この拡張機能があなたの要求を満たすことを願っています

乾杯Truez

于 2012-06-27T14:58:32.707 に答える
1

これを行うための組み込みの方法は実際にはありません。しかし、SharePointのすべてのもので、物事を達成するための複数の方法があります。SP Designerまたはサーバー自体にアクセスできないため、おそらく最も抵抗の少ないパスは、SP Webサービスを使用してリストを照会し(たとえば、午前8時に)、アイテムの数を取得し、保存する(永続化する)ことです。 )どこかでアイテム数を数え、次にリストを再度クエリし(午後5時)、最初の日の数と照合して、合計を求めます。

でSPWebサービスを介してリストデータにアクセスできますhttp://server_name/_vti_bin/Lists.asmx。以下のコードのようなものを使用して、リスト数を取得します。保存された値は、テキストファイル、ローカルストレージ、メモリなど、どこにでも保持できます。

プロジェクトにWebサービス参照を追加する必要があることに注意してください。以下のコードでは、これはsp2010という名前ですが、もちろん、好きな名前を付けることができます。変数listItemCountは、リスト数を保持します。残りのコードの多くは、自明である必要があります。

            sp2010.Lists spList = new sp2010.Lists() { Credentials = new NetworkCredential("username", "password") };
            string listName = "YourListName"; 
            string listItemCount = string.Empty;

            XmlNode listXML = spList.GetListItems(listName, null, null, null, null, null, null);

            XmlDataDocument innerXml = new XmlDataDocument();
            innerXml.LoadXml(listXML.InnerXml);
            XmlNodeList rows = innerXml.GetElementsByTagName("rs:data");

            foreach (XmlNode attribute in rows)
                {
                    // listItemCount holds the count of your list
                    listItemCount = attribute.Attributes["ItemCount"].Value;
                }
于 2012-06-29T22:21:23.277 に答える