2017-03-13 5 views
1

Dans une Entité/Table Lightswitch j'ai un champ calculé appelé "DisplayName" que j'utilise comme la propriété Summary pour cette entité. La propriété/champ calculé contient le prénom, le nom, la date de naissance et le numéro de téléphone principal. Comme ceci:Comment supprimer l'heure de la propriété summary pour l'entité dans un client de bureau Lightswitch?

partial void DisplayName_Compute(ref string result) { // Set result to the desired field value result = FirstName + " " + LastName + " " + DOB+" "+PrimaryPhone;

En C#. Le DOB, pour la date de naissance, a le type de données "Date" dans l'Entité/Table. Dans la colonne Liste d'un écran ListDetail dans l'application client de bureau, affichez l'enregistrement sous la forme:

John Doe 01/17/1980 12:00:00 A.M. 555-555-5555 Je voudrais dépouiller le temps d'arrêt pour qu'il ressemble à ceci:

John Doe 17/01/1980 555-555-5555

+0

Pourquoi n'utilisez-vous pas String.Format avec la culture de chaîne de format que vous voulez? –

Répondre

0

Cela devrait, espérons travailler pour votre scénario :)

partial void DisplayName_Compute(ref string result) 

     { 
      //CREATE A DATETIME PARAMETER 
      DateTime theDate = Convert.ToDateTime(entity.DOB); 

      // Set result to the desired field value 
      result = FirstName + " " + LastName + " " + theDate.Date + " " + PrimaryPhone; 
     } 

en variante cette volonté:

DisplayName_Compute vide partiel (résultat de la chaîne ref)

 { 
      //CREATE A DATETIME PARAMETER 
      DateTime theDate = Convert.ToDateTime(entity.DOB); 

      // Set result to the desired field value 
      result = FirstName + " " + LastName + " " + theDate.ToString("dd.MM.yy") + " " + PrimaryPhone; 
     } 
+0

Lightswitch ne vous permet pas d'utiliser entity.DOB.Date, ce qui explique pourquoi la variable a été créée – Crezzer7

+0

N'a pas dit quelque chose à propos de '.Date'. J'ai dit que 'Convert.ToDateTime()' ne supprimera pas l'élément time. Ceci est équivalent au code original. De plus, vous n'avez pas besoin d'utiliser '.Date' pour mettre en forme une chaîne DateTime. Il suffit d'utiliser la chaîne de format approprié –

+0

@ Crezzer7 Excellent travail. Fonctionne bien. Je vous remercie. – Mark

-1

Utilisez String.Format pour générer une chaîne à partir de plusieurs paramètres, en utilisant le format de votre choix. Dans ce cas, il s'agit de:

var result=String.Format("{0} {1} {2:d} {3}",FirstName,LastName,DOB,PrimaryPhone"); 

Ceci retournera la date formatée en utilisant le format de date courte approprié pour la culture du client. Si vous voulez coder en dur cela au format américain, vous pouvez passer la culture appropriée:

var result=String.Format(CultureInfo.GetCultureInfo("en-US"), 
         "{0} {1} {2:d} {3}",FirstName,LastName,DOB,PrimaryPhone"); 
+0

Et la raison de la downvote est ...? Étant donné que String.Format est disponible partout, c'est la bonne façon de formater les chaînes * et * produit la sortie correcte? –

+0

Panagiotis Kanavos, j'apprécie votre temps de travail à ce sujet. La raison pour laquelle j'ai utilisé la solution de Crezzar7 est que je connais très peu ce codage et, à première vue, j'ai immédiatement compris la réponse de Crezzar7 et j'ai pu l'implémenter. Je passais des heures et des heures au cours des deux dernières semaines à chercher ce forum et d'autres à la recherche d'une solution. Le vôtre peut être le meilleur moyen mais je n'ai aucun moyen de le savoir. À la fin, j'ai utilisé ("MM/jj/aaaa" au lieu de ("jj.MM.yy"). – Mark

+0

String.Format est une fonction assez basique.En outre, le codage en dur du format causera des problèmes si votre application est utilisée par quelqu'un avec un environnement différent –