Category: Crystal report

Crystal report – Evenement sur bouton imprimer du crystalviewer

‘Permet de trouver le bouton qui à été cliquer dans le Crystal report viewer
‘ et de lui rajouter un événement
For Each Ctrl As Control In Me.CrystalReportViewer1.Controls
If TypeOf Ctrl Is ToolStrip Then
For Each Obj As Object In CType(Ctrl, ToolStrip).Items
If TypeOf Obj Is ToolStripButton Then
AddHandler CType(Obj, ToolStripButton).Click, AddressOf printButton_Click
End If
Next
End If
Next

Private Sub printButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)

End Sub

 

Crystal report – fusionner des lignes / champs afin de n’avoir qu’une ligne.

Une formule dans l’entête de groupe pour réinitialiser pour chaque enregistrement :

Whileprintingrecords;

global stringvar mCommentaire:=”

Deux formule dans le corps :

–          Une pour initaliser la variable :

 

whileprintingrecords;

 

global stringvar mCommentaire:=mCommentaire &

 

(if previous({DataTable1.mon_champs_numero})={DataTable1 mon_champs_numero } or     next({DataTable1. mon_champs_numero })={DataTable1. mon_champs_numero } then

{DataTable1.mon_champs_commentaire}& ‘,’

else

‘ ‘ );

 

mCommentaire

 

 

–          L’autre pour afficher uniquement une ligne (la dernière) :

 

whileprintingrecords;

if   next({DataTable1. mon_champs_numero })<> {DataTable1. mon_champs_numero } then

global stringvar mCommentaire;

Crystal report – Créer une balance / différence entre débit et crédit

Créer une formule avec une variable partagé dans l’entête du groupe :

shared numbervar mBalance := {DataTable1. montant _ancien_solde };

 

Calculer et afficher dans le corps du rapport :

 

shared numbervar mBalance ;

mBalance := mBalance + {@crédit} – {@débit} ;

if(mBalance<0) then

ToText(mBalance)

else

ToText(“+”& mBalance)

 

 

/!\ débit et credit ne doivent pas être a null pour que cela fonctionne. Exemple utiliser coalesce( “champ”,0) quand les données viennent d’une base de données postgreSQL

Crystal report – Divers

Vérifie si un champs contient un mot :

if InStr({DataTable1.champs}, ‘mot_rechercher’) > 0  then

 

Aligner un champs dans une formule à gauche ou à droite en fonction de la condition :

– Clique droit, mise en forme de l’objet

– Dans la formule X2 alignement :
if ( isnull({@debours_libelle}) )then
(
crLeftAligned;
)
else
(
crRightAligned;
);

Formater une date dans une formule :

ToText({maDate},“dd-MMM-yyyy”) ->  31-Jan-2010

ToText({maDate},"dd-MM-yyyy")-> 31-01-2010
ToText({maDate},"dd-MM-yy")-> 31-01-10


Supprimer les décimales d'un nombre :

'Nb de chèques : ' &  ToText(count({@montant}) ,
(IF  count(
{@montant})  = round(count({@montant}) ,0) then 0
else IF  count(
{@montant})  = round(count({@montant}) ,1) then 1
else 2))