3

SharePoint 2007 ポータルに統合されるフォームを InfoPath 内に作成しています。このフォーム内には、ユーザーが個人の名前を入力できるテキストフィールドがあります。

この Person が存在するかどうかを確認するにはどうすればよいですか?

ユーザーを検証する代わりに、ドロップダウン リストにポータルのすべてのユーザー名を入力する方法はありますか? (Active Directory のユーザーが原因)

4

6 に答える 6

1

Contact Selector (ActiveX コントロール) を見てみましたか。これは、InfoPath でコントロールとして追加する方法を説明しているMSDN の記事であり、これを機能させる方法について説明しています。

私は InfoPath プロジェクトの大部分でこれを使用しており、ブラウザー対応のフォームでも問題なく動作します。

于 2008-12-23T10:00:56.767 に答える
1

私はこれを具体的に行っていないので、もっと良い方法があるかもしれませんが、大量のデータを SharePoint から InfoPath フォーム (SharePoint フォーム ライブラリに展開され、MOSS Enterprise を使用して SharePoint Forms Service を介してアクセス可能) に引き出してきました。 ) また、SharePoint Web サービスを使用して別の方法を使用することもできます。非常にすばやく使用でき、個人 Web サービスはすぐそこにあります。

于 2008-11-11T12:51:30.367 に答える
0

私は個人の存在を検証しませんが、ログインとSharePointを使用して個人のフルネームを決定します。あなたはあなたの目的のためにこのコードを変更することができるはずです、それは以下にあります。それが機能するためには、 GetUsersFromSPと呼ばれるInfoPathドキュメントのデータ接続が必要です。次のように構成されます。


string ADName = System.Environment.UserName;
        IXMLDOMDocument3 UserQuery = (IXMLDOMDocument3)thisXDocument.GetDOM("GetUsersFromSP");
        UserQuery.setProperty("SelectionNamespaces",
            "xmlns:dfs=\"http://schemas.microsoft.com/office/infopath/2003/dataFormSolution\" " +
            "xmlns:tns=\"http://schemas.microsoft.com/sharepoint/soap/directory/\"");

        ((WebServiceAdapterObject)thisXDocument.DataAdapters["GetUsersFromSP"]).Query();

        IXMLDOMNode Users = UserQuery.selectSingleNode("//dfs:myFields/dfs:dataFields/tns:GetUserCollectionFromSiteResponse/tns:GetUserCollectionFromSiteResult/tns:GetUserCollectionFromSite/tns:Users");

        foreach (IXMLDOMNode current in Users.selectNodes("tns:User"))
        {
            string Login = current.attributes.getNamedItem("LoginName").text;

            Login = Login.ToUpper();
            if (Login.EndsWith(ADName.ToUpper()))
            {
                thisXDocument.DOM.selectSingleNode("my:root/my:config/my:User").text = current.attributes.getNamedItem("Name").text;
                break;
            }
        }
于 2009-01-06T00:08:36.240 に答える
0

このコントロールを使用してください: http://blogs.msdn.com/infopath/archive/2007/02/28/using-the-contact-selector-control.aspx

または、独自のバリデーターを作成する場合は、SharePoint プロファイル データベースにクエリを実行する必要があります。ADに直接クエリを実行するよりも、これをお勧めします。プロファイル データベースの操作に関するオンラインの記事はたくさんあります。

于 2009-02-10T02:38:19.513 に答える
0

ASP.NET アプリケーションで同様のことを行う場合、Sharepoint 検索を使用して、特定のユーザーの "People" スコープを検索しました。また、プロファイル情報全体を検索して、特定の役職または特定の部署の全員を引き戻すこともできます。

于 2008-12-22T14:00:20.903 に答える
0

このリンクを見てください。ドロップダウンに SharePoint ユーザーを入力する方法が説明されています。

http://blueinfopath.blogspot.com/2008/10/how-to-populate-list-with-sharepoint.html

検証したい - テキストボックスを作成する - ボタンを追加し、ValidateUser という名前を付ける - ...... への受信接続を作成する - ValidateUser への Att ルール - テキストボックスをセカンダリ データソースのフィールド AccountName に追加する -受信接続を実行します - フィルター Name="PreferredName" を使用してフィールド Value の値を取得します

これは Infopath Form Services で機能します。テストして、UserLogin をテキスト ボックスに入力し、[検証] ボタンをクリックします。

フレデリク

于 2009-03-13T09:25:11.697 に答える