Dans l'éditeur Crystal Reports fourni avec Visual Studio (2008), est-il possible d'aligner du texte au centre d'une zone de texte plutôt qu'en haut?
Je ne trouve cette option nulle part et une recherche Google n'est pas encourageante, mais je ne peux tout simplement pas me convaincre qu'ils n'incluraient pas une fonctionnalité aussi évidente.
Il n'y a pas d'alignement vertical pour les rapports cristallins que j'ai pu trouver. Une solution de contournement potentielle consiste à programmer des sauts de ligne.
Je ne trouve pas d'option pour aligner verticalement du texte dans une étiquette, mais vous pouvez aligner verticalement des étiquettes dans une section. Utilisez les lignes directrices horizontales sur la marge gauche pour ajuster l'alignement. Vous devrez peut-être cliquer avec le bouton droit sur la ligne directrice et décocher "Snap to Grid" pour obtenir un positionnement plus précis.
Vous pouvez y parvenir avec des chaînes, car vous verrez un onglet paragraphe au lieu d'un nombre lorsque vous entrez dans le menu FORMAT FIELD. Pour faire de votre nombre une chaîne, vous devez le formater comme un champ de formule:
chr(13) + chr(10) + totext(mynumber,0)
Puis dans le menu FORMAT FIELD sélectionnez - Interligne: multiple sur: ,2
Vous devrez peut-être expérimenter avec la valeur 0,2 jusqu'à ce que vous trouviez votre numéro (c'est-à-dire une chaîne préfixée par un retour chariot) bien centré au milieu de votre boîte.
Santé, Chilly
Alignement vertical avec des sauts de ligne de programmation. Algorithme pour une cellule:
iTextLen
).iLineNum
). Calculé empiriquement.iLineLen
). Calculé empiriquement.Calculez le nombre de demi-sauts par la formule (iLineNum — 1) — (iTextLen / iLineLen)
.
@formula
dans la syntaxe cristalline:
Local NumberVar iLineNum:= 5;
Local NumberVar iLineLen:= 30;
Local NumberVar iTextLen:= Length({DataSource});
Local StringVar sRet:= '';
Local NumberVar i;
Local NumberVar iLinesNum:= Truncate(iLineNum - 1) - Truncate(iTextLen / iLineLen);
For i:= 1 to iLinesNum Do ( sRet:= sRet + chr(13) );
sRet
Ajoutez une formule en haut et en bas des données. Les objets texte ressembleront à ceci:{@formula}{DataSource}{@formula}
Taille de police de @formula
doit être réduit de moitié en taille de police {DataSource}
. Par exemple, si la taille de police de {DataSource}
égal à 20, le @formula
doit être égal à 10:
L'algorithme fonctionne mieux avec une police à espacement fixe, mais avec une police proportionnelle, il fonctionne dans la plupart des cas.
L'algorithme pour plusieurs cellules ne diffère que par le fait que iLineNum
sera le nombre maximal de caractères dans les données de toutes les cellules.