2009-10-13 7 views
0

J'ai la formule suivante en tant que groupe pour un rapport Cross Tab:Formats de formatage par code?

{Command.Year} & ' ' & {Command.RF Period} 

Année est une SmallInt et la période est un TinyInt.

Le problème est qu'il montre sur le rapport:

2,009.00 9,00

Les valeurs de base de données sont en fait:

Je ne peux pas supprimer les décimales par mise en forme parce qu'ils sont dans la formule ensemble.

En fin de compte, je voudrais que ce soit:

Edit:

Je trouve ce lien: http://www.kenhamady.com/form15.shtml

Maintenant mon code ressemble à ceci pour la période:

WhileReadingRecords; 


StringVar text  := Totext ({Command.RF Period} , 6 , "" ) ; //put your numeric field in this line 
NumberVar end := length (text) ; 
NumberVar clip := 
(if Val (text [ end - 6 to end ]) = 0 then 1 else 0) + 
(if Val (text [ end - 5 to end ]) = 0 then 1 else 0) + 
(if Val (text [ end - 4 to end ]) = 0 then 1 else 0) + 
(if Val (text [ end - 3 to end ]) = 0 then 1 else 0) + 
(if Val (text [ end - 2 to end ]) = 0 then 1 else 0) + 
(if Val (text [ end - 1 to end ]) = 0 then 1 else 0) + 
(if Val (text [ end - 0 to end ]) = 0 then 1 else 0) ; 
text [ 1 to Length (text) - clip ] 

Cependant, je n'utilise pas le langage Crystal, j'utilise V B. Comment puis-je ajouter un 0 devant la période si elle ne commence pas par un 1?

Le problème est maintenant que Septembre (9) montre après Octobre, novembre et décembre parce que aphabetically 9 vient après 1.

Tout le monde?

Répondre

1

La fonction ToText est très utile pour ce genre de chose, aucune boucle requise. Dans VB Syntaxe Crystal:

Formula = ToText({Command.Year}, 0, "") & " " & ToText({Command.RF Period}, "00") 

Cela devrait fonctionner si {Command.Year} et {} Command.RF période sont des entiers que vous décrivez.

Questions connexes