20 mars 2013

INFOPATH 2007 : Zone de texte multiligne

Un post sur un problème bien connu dans InfoPath Forms Services 2007 qui est l'utilisation des zone de texte multiligne. En saisie, cette zone comportera obligatoirement une barre de scroll lorsque votre texte va dépasser la taille attribuée au contrôle.
 
Le problème devient encore plus gênant lorsque vous souhaitez afficher ce champ en lecture dans une vue spécifique ou dans une vue d'impression du formulaire.
En effet:
  • Si vous utilisez une zone d'expression, vos retours à la ligne seront convertis en espace, ce qui n'est tout simplement pas acceptable.
  • Si vous laissez la zone de texte multiligne en lecture, vous risquez d'avoir des problèmes lors de l'impression du formulaire car le texte dans le champ zone de texte multiligne qui sera tronqué.
  • La solution de contournement habituelle reste de prévoir un encart assez grand afin d'accueillir les données saisies par l'utilisateur sans nécessiter de scroll.
 
 
Il existe malgré tout une astuce qui consiste à modifier la code xsl de la vue associée afin de définir les styles suivants sur votre zone de texte multiligne : "height : 100%; overflow-x : visible".
Par défaut le overflow-x est à none, ce qui bloque le bon fonctionnement.
Ainsi le contrôle affichera à présent la totalité du texte saisi précédemment par l'utilisateur (même sur la vue d'impression).
 
Pour réaliser la modification du fichier xsl, vous pouvez employer une des méthodes suivantes au choix :
  • Si vous avez du code managé dans le formulaire : Au travers de la solution Visual Studio, il faudra ouvrir le fichier xsl correspondant à votre vue et réaliser la modification ci-dessus,
  • Le cas échéant, il faudra réaliser une extraction du modèle de formulaire (Ouverture en mode conception puis Fichier / Extraire les fichiers). Il faudra ensuite modifier le fichier xsl nécessaire puis repackager le formulaire en ouvrant le fichier "manifest.xsf"
  •  en mode conception (clic droit sur le fichier puis "Concevoir").
 
Simple, mais efficace... Reste à savoir pourquoi cela n'est pas incorporé nativement dans l'interface!

16 mars 2013

SHAREPOINT 2013 : Drag and drop

Une des nouvelles fonctionnalités sympathique pour l'utilisateur dans SharePoint 2013 est l'utilisation du drag-and-drop.
 
Celui-ci s'applique aux éléments suivants:
  • Déplacement d'un fichier du poste client vers une bibliothèque SharePoint,
  • Déplacement de fichiers SharePoint dans un répertoire ou un ensemble documentaire,
  • Déplacement de fichiers SharePoint dans une autre bibliothèque.
En soit, cela est déjà très bien mais il existe actuellement quelques limitations  du drag-and-drop à appréhender :
  • Impossible de déplacer un répertoire
  • Impossible de déplacer un ensemble documentaire,
  • Impossible de déplacer des vidéos,
  • Impossible de déplacer un fichier vers une autre collection de sites.
  • Impossible de déplacer un item de liste.
 
Evidemment, cette nouvelle fonctionnalité offerte par l'utilisation du HTML5 nécessite de posséder l'un des prérequis suivant sur le poste client:
  • Dernière version de Firefox,
  • Dernière version de Chrome,
  • IE 10 en version desktop,
  • IE8 en mode desktop et Office 2013 installé sur le poste client,
  • IE9 en mode desktop et Office 2013 installé sur le poste client.
Le HTML5 n'étant pas supporté pleinement sur IE9 (et encore moins sur IE8), il sera ainsi nécessaire de disposer d'Office 2013 si vous ne possédez pas la dernière version du navigateur de MS.

8 mars 2013

Office 365 : Ajout champ géolocalisation

Dans un précédent post, j'avais traité de la possibilité de rajouter le nouveau type de champ "Geolocation" sur une ferme SharePoint 2013 On Premise en utilisant du PowerShell.
Suite à la demande grandissante, voici le code (utilisant le Client Object Model) à exécuter afin de réaliser cet ajout sur votre site SharePoint situé dans O365 (changer les informations de connexion : tenant, nom utilisateur, password) : 
 
Uri oUri = new Uri("https://tenant.sharepoint.com");
MsOnlineClaimsHelper claimsHelper = new MsOnlineClaimsHelper(oUri, "userid@tenant.onmicrosoft.com", "userpassword");
using (ClientContext context = new ClientContext(oUri))
   {
     context.ExecutingWebRequest += claimsHelper.clientContext_ExecutingWebRequest;
     List oList = context.Web.Lists.GetByTitle("MaListe");
     oList.Fields.AddFieldAsXml("", true, AddFieldOptions.AddToAllContentTypes);
     oList.Update();
     context.ExecuteQuery();
                    
    }

Remarque : A présent, il est possible d'administrer SharePoint Online dans O365 à laide de commandes PowerShell en utilisant les applets de commandes à cet effet :
http://technet.microsoft.com/fr-fr/library/fp161364.aspx
La liste des applets de commandes disponibles actuellement n'est pas très étoffée. A n'en pas douter, l'avenir de Office 365 passera par l'extension de ces méthodes afin de fournir un outil complet d'administration.