2010-11-17 12 views
2

Mon employeur passe son portail interne à SharePoint. L'une des fonctionnalités les plus utilisées du portail précédent était une «recherche de personnes» qui permettait des noms partiels. Par défaut, SharePoint 2007 effectue des recherches par mots clés qui ne correspondent qu'aux mots exacts donnés en tant que termes de recherche. Il peut effectuer des recherches en texte intégral, mais vous devez fournir le nom de la propriété, par ex. "Prénom: tom" (sans les guillemets bien sûr). Cela fonctionne pour une solution programmatique mais pas pour les utilisateurs finaux.Recherche de personnes dans SharePoint à l'aide de noms partiels

Y a-t-il un moyen dans SharePoint 2007 de permettre aux utilisateurs de rechercher des personnes utilisant des noms partiels?

Répondre

2

J'ai trouvé cette solution qui fonctionne assez bien pour nous.

Ajoutez un composant WebPart ContentEditor à la page cible et accédez au bouton de l'éditeur HTML. Ajoutez le code HTML suivant. Il crée deux champs de saisie (prénom/nom) et crée ensuite une requête avec les termes de recherche inclus dans les recherches de propriétés qui invoquent la recherche en texte intégral.

Remarque: vous devez remplacer la page de résultats de recherche par l'emplacement approprié pour votre configuration.

<script language="javascript"> 
//function to handle enter on keyboard 
function txtWildPeopleFinder_KeyDown(e) 
{ 
    if (e.keyCode == 13 || e.keyCode==10) 
    { 
    e.returnValue=false; 
    DoWildPeopleSearch(); 
    return false; 
    } 
    else 
    return true; 
} 
//escape apostrophes in search strings 
function escapestr(str) 
{ 
return str.replace("'","%22"); 
} 

//search function 
function DoWildPeopleSearch() 
{ 
var firstname = escapestr(document.all["firstname"].value); 
var lastname = escapestr(document.all["lastname"].value); 
var url; 

//search on last name 
if(firstname == "") 
{ 
url = "/searchcenter/Pages/peopleresults.aspx?k=LastName%3A" + lastname; 
window.location=url; 
return; 
} 

//search on first name 
if(lastname == "") 
{ 
url = "/searchcenter/Pages/peopleresults.aspx?k=FirstName%3A" + firstname; 
window.location=url; 
return; 
} 

//first and last 
url = "/searchcenter/Pages/peopleresults.aspx?k=lastname%3A" + lastname + "%20FirstName%3A" + firstname; 
window.location=url; 
return; 
} 
</script> 

<table cellpadding="2" cellspacing="0" border="0" width="100%" ID="Table3"> 
<tr> 
    <td width="80" nowrap> 
    First Name: 
    </td> 
    <td width="100%"> 
    <input size="20" maxlength="100" id="firstname" name="firstname" type="text" onkeydown="txtWildPeopleFinder_KeyDown(event)"> 
    </td> 
</tr> 
<tr> 
    <td width="80" nowrap> 
    Last Name: 
    </td> 
    <td> 
    <input size="20" maxlength="100" id="lastname" name="lastname" type="text" onkeydown="txtWildPeopleFinder_KeyDown(event)"> 
    </td> 
</tr> 
<tr> 
    <td> &nbsp; </td> 
    <td> 
    <input type="button" onclick="DoWildPeopleSearch()" value="Search"> 
    </td> 
</tr> 

</table>