2010-11-12 36 views
0

Je souhaite calculer la somme du champ (DateTime) dans Crystal Reports et pour chaque groupe.Crystal Reports, Somme du champ DateTime et groupe par utilisateur

Quand je clique droit dans le champ puis Insert-> Smmary, dans cette fenêtre je peux sélectionner le groupe et c'est ok. Aussi, je peux sélectionner Résumé (Minimum, Maximum, Compte ...) MAIS pas SUM, pourquoi?

+0

Et quel est votre résultat attendu en ajoutant say 7 juillet 2010 et 30 août 2009? – Arvo

+0

Merci pour la réponse, oh désolé, j'oublie de dire, le champ a ce complexion- xx: хх (heures-minutes), et par exemple 22:48 + 9: 03 = 31: 51 –

+0

Type de champ est une chaîne, peut-être besoin d'écrire formule, qui le convertit en nombres et calcule la somme? problème est que je ne sais pas les formules CR :( –

Répondre

2

La raison (comme l'implique Arvo) est qu'il n'y a aucun sens dans lequel les dates peuvent être ajoutées les unes aux autres.

Vous pouvez créer une formule de cristal pour calculer le nombre de secondes écoulées depuis minuit dans un champ datetime - cela ressemblerait à ceci:

Hour ({MyTable.MyDate}) * 3600 + 
Minute ({MyTable.MyDate}) * 60 + 
Second ({MyTable.MyDate}) 

(fonctions DateTime de cristal se trouvent dans l'arborescence des fonctions dans l'éditeur de formule dialogue, sous l'option Date et heure.)

Le champ de formule pourrait alors être sommé comme n'importe quel autre champ numérique - le résultat serait exprimé en secondes.

EDIT:

Si l'on suppose qu'il n'y a pas des caractères de remplissage à un élément, l1 de formule avec l'expression:

ToNumber (Left (DefaultReportPlugin_DetailedDailyReport_ReportData.I1, 2)) * 60 + 
ToNumber (Right (DefaultReportPlugin_DetailedDailyReport_ReportData.I1, 2)) 

pourrait convertir la chaîne en un nombre exprimé en minutes. (Les champs Left, Right et ToNumber peuvent être trouvés sous l'option Strings dans l'arborescence des fonctions de la boîte de dialogue Editeur de formules.)

Une somme de la formule (exprimée en minutes) peut être affichée en insérant l'élément de formule dans le rapport, en cliquant dessus avec le bouton droit de la souris et en sélectionnant l'option Insert > Summary... dans le menu déroulant.

+0

Merci !!! J'obtiens des données de chaîne comme DateTime puis Hours ou Minutes, MAIS je ne peux pas faire SUM, parce que SUM fuction veut fild comme argument: Et DateTime ne donne que la dernière ligne, et je ne peux pas claquer SUM: (((Heure (DateTime ({DefaultReportPlugin_DetailedDailyReport_ReportData. I1})) * 60 + Minute (DateTime ({DefaultReportPlugin_DetailedDailyReport_ReportData.I1})) –

+0

@Armen Khachatryan: l1 est-il un champ date-heure, ou une chaîne contenant des valeurs au format datetime? Si c'est ce dernier, s'il vous plaît pouvez-vous indiquer comment est formaté (par exemple, jj-mon-aaaa hh: mi) –

+0

Le type de I1 est une chaîne, et la chaîne écrit dans ce format hh: mm, tous j'ai besoin de convertir ces chaînes en NUMBER (comme vous écrivez) puis SUM. –