Contribuez à la FAQ Crystal Reports
Bonjour, :king:
La FAQ Crystal Reports est disponible :
:arrow: http://business-intelligence.develop...ystal-reports/
Veuillez ajouter à ce topic vos suggestions de questions / réponses.
Les remarques pertinentes seront ainsi ajoutées à la FAQ.
Pour proposer une Q/R, merci de bien vouloir procéder comme ci-dessous :
Citation:
[QR] Comment présenter la question ?
Version(s) testée(s) de CR : xxx
La Q/R doit commencer par un texte introductif pour poser clairement et
brièvement le problème et donner la démarche pour le résoudre.
Code:
Toute formule doit être mise en balise code. Merci de bien vouloir préciser la syntaxe (Crystal ou Basic)
Les noms de fonctions ou mots clés doivent être mis en gras un peu
comme
currentdate ou
CrColor. Vous pouvez également utiliser
le soulignement ou
l'italique dans votre texte; mais ne modifiez pas la taille du texte.
Merci à tous de votre collaboration
[Mettre un cadre autour d'un champ même lorsqu'il est vide]
A la place du champ, faire une formule :
Code:
1 2 3 4 5
| whileprintingrecords;
if not isnull({champ}) then
{champ}
else
" "; |
Comment convertir une date/heure GMT en date/heure local (Eté/Hiver)
Comment convertir une date/heure GMT en date/heure local (Eté/Hiver) ?
Version testée : Crystal Reports 2008
Utilisation de la fonction ShiftDateTime(dateHeureEntrée, fuseauHoraireEntrée, nouveauFuseauHoraire) qui permet de décaler une valeur de type date/heure d'un fuseau horaire à un autre.
Avec :
dateHeureEntrée : valeur de date/heure à décaler.
fuseauHoraireEntrée : chaîne représentant le fuseau horaire de la dateHeureEntrée.
nouveauFuseauHoraire : chaîne représentant le fuseau horaire vers lequel la dateHeureEntrée est décalée
Resultat :
Valeur de type date/heure
Remarques :
Les fuseaux horaires sont représentés par Chaîne de fuseau horaire dans l'un des formats suivants :
"std,offset,dst,[offset];start[/time],end[/time]"
"std,offset,dst,[offset]" (si le fuseau horaire suit les règles de l'heure d'été américaine (DST)
"std,offset" (si l'heure d'été ne s'applique pas)
avec :
std => Nom du fuseau horaire standard. (Récupérable http://fr.wikipedia.org/wiki/Liste_des_fuseaux_horaires)
offset => Décalage en minutes par rapport au fuseau horaire standard (positive à l'ouest).
dst => Nom du fuseau horaire de l'heure d'été.
offset => Décalage en minutes facultatif par rapport à l'heure standard, lié à l'heure d'été (par défaut, une heure d'avance sur le décalage standard).
start => Date de début d'application de l'heure d'été. Le format est m.s.j, ce qui représente le mois, la semaine et le jour ; s=1 désigne la première semaine du mois et s=5 la dernière semaine du mois. j=0 désigne le dimanche
time => Heure de début d'application de l'heure d'été (format 24 heures) Par défaut 02:00 (heure locale du fuseau horaire indiqué).
end => Date de retour à l'heure normale.
Exemple :
ShiftDateTime(dateHeureEntrée, "WET,0", "CET,0,CEST;3.5.0/02:00,10.5.0/03:00")
Dans cette exemple la dateHeureEntrée est définie au fuseau horaire WET (UMT+0) avec 0 mn de décalage
Le décalage se fera sur le fuseau horaire CET (Fuseau horaire ouest europe soit UMT+1) avec 0 mn de décalage.
Le passage en heure d'été se fera le 3ème mois, la dernière semaine (5), le dimanche (0) à 02h00.
Le retour en heure d'hiver se fera le 10ème mois, la dernière semaine (5), le dimanche (0) à 03h00.
Comment depuis le rapport principal, récupérer une valeur d'un sous-rapport
Soit le rapport principal, dans lequel on veut récupérer la somme d'un champ numérique présent dans le sous-rapport.
-->le rapport principal appelant:
- Code VB1
Code:
1 2 3
| EvaluateAfter{@CompterSommeDansSousRapport}
i:= @CompterSommeDansSousRapport;
formula:= i; |
- Code VB2: la fonction qui appelle le sous-rapport
Code:
1 2 3 4 5
| function @CompterSommeDansSousRapport
Shared NumberVar iPartagee;
StoreNumberVar('iPartagee',0);
//La ligne ci-dessous appelle le sous-rapport
FetchNumberVar('iPartagee'); |
-->le sous-rapport appelé:
C'est donc un sous-rapport branché sur la table racine la plus haute possible présente dans le rapport principal.
Code:
1 2
| Shared NumberVar iPartagee;
StoreNumberVar('iPartagee',{@Compter}); |
Code:
1 2
| function @Compter
SUM(.../...etcaetera) |
Attention: seule, la dernière valeur attribuée à une variable globale (ici, iPartagee) par le sous-rapport, est renvoyée dans le rapport principal.