Bonjour,
Je cherche à savoir s'il est possible de mettre une case à cocher avec Rave report.
Merci d'avance
Bonjour,
Je cherche à savoir s'il est possible de mettre une case à cocher avec Rave report.
Merci d'avance
Dans mon état :
J'ai une bande connectée à un query.
Dans ces données, j'ai des champs de type boolean.
Dans l'état, ces champs affichent true ou false. C'est là que je voudrais une case à cocher (checkbox).
Après plusieurs mois de suspension de ce projet, je reviens dessus.
Je n'ai donc toujours pas résolu ce problème.
En relisant ma réponse, je me rend compte de m'être très mal exprimé.
Dans mon état, j'ai un DataBande relié à un dataset.
J'ai un champ de type boolean. En fonction de la réponse de ce champ (true ou false) je voudrais afficher une image (case cochée ou case non cochée) dans un Bitmap componont posé sur le DataBand.
Merci encore.
tu mets 2 composants bitmap rave, l'un sur l'autre, le premier avec le dessin de la case cochée et le deeuxième avec le dessin de la case non cochée
dans l'événement onValidateRow de ton TrvDataset tu rend visible celui qui correspond à la valeur du champ que tu veux tester
exemple :
Normalement ça devrait marcher ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 procedure TForm1.RvDsDiEtqValidateRow(Connection: TRvCustomConnection; var ValidRow: Boolean); var rvPage : TRavePage; rvRegion : TRaveRegion; rvBand : TRaveDataBand; rvBmp : TRaveBitMap; i : integer; begin // On connecte la page, la région et la bande // RvPage := rvProject1.ProjMan.FindRaveComponent('Etiquette.Page1', nil) as TravePage; RvRegion := rvproject1.ProjMan.FindRaveComponent('Region1', RvPage) as TRaveRegion; RvBand := rvproject1.ProjMan.FindRaveComponent('DataBand1', RvPage) as TRaveDataBand; if dm1.dsetq.fielbyname('checked').asboolean = true then begin RvBmp := rvproject1.ProjMan.FindRaveComponent('Checked', RvBand) as TRaveBitMap; RvBmp.Visible := True; RvBmp := rvproject1.ProjMan.FindRaveComponent('NotChecked', RvBand) as TRaveBitMap; RvBmp.Visible := False; esle begin RvBmp := rvproject1.ProjMan.FindRaveComponent('Checked', RvBand) as TRaveBitMap; RvBmp.Visible := False; RvBmp := rvproject1.ProjMan.FindRaveComponent('NotChecked', RvBand) as TRaveBitMap; RvBmp.Visible := True; end; end;
Salut et merci pour ta réponse.
Je vais tester tout çà, mais pas avant lundi.
Je vous tiens au courant si c'est résolu .
Salut,
Je viens de tester le code de chtiot, mais il me déclanche une violation d'accès à l'endroit décrit dans le code (Au moment de rendre l'objet visible ou pas) RvBmp est = à nil
A noter :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 procedure TfrmEditions.dsrHeuresValidateRow(Connection: TRvCustomConnection; var ValidRow: Boolean); var rvBmp : TRaveBitMap; begin // On connecte la page, la région et la bande // RvPage := DM.rveProjet.ProjMan.FindRaveComponent('rptEtatMois.Page1', nil) as TravePage; RvRegion := DM.rveProjet.ProjMan.FindRaveComponent('Region2', RvPage) as TRaveRegion; RvBand := DM.rveProjet.ProjMan.FindRaveComponent('dbHeures', RvRegion) as TRaveDataBand; if DM.qryHeures.FieldByName('HE_PANIER').asboolean = true then begin RvBmp := DM.rveProjet.ProjMan.FindRaveComponent('Checked', RvBand) as TRaveBitMap; RvBmp.Visible := True; //La violation d'accès est ici RvBmp := DM.rveProjet.ProjMan.FindRaveComponent('NotChecked', RvBand) as TRaveBitMap; RvBmp.Visible := False; end else begin RvBmp := DM.rveProjet.ProjMan.FindRaveComponent('Checked', RvBand) as TRaveBitMap; RvBmp.Visible := False; //La violation d'accès est ici RvBmp := DM.rveProjet.ProjMan.FindRaveComponent('NotChecked', RvBand) as TRaveBitMap; RvBmp.Visible := True; end; end;
- que si j'enlève cet évenement, mon bitmap visible apparait bien.
- mes bitmaps sont bien sûr dans la bande nomée dbHeures.
- la bande dbHeures est bien dans la région nommée Region2.
- la région 2 est bien dans la page nomée page1.
Merci de votre aide
PS : Dans cette ligne
j'ai remplacé RvBand par RvRegion : çà me parait plus logique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part RvBand := rvproject1.ProjMan.FindRaveComponent('DataBand1', RvPage) as TRaveDataBand;
salut,
moi je pense qu'il ne fallait rien changer dans la ligne rvband et qu'il faut rechercher la bande dans la page et non dans la region.
c'est ce que je fais dans un de mes projets et ça marchhe sans problème
rvband n'est pas a nil dans ton cas?
Ok, Je l'ai remise comme sur ton code et rvband n'est plus nil.
Mais RvBmp reste encore nil donc avec çà :
Rvpage au lieu de RvBand et tout fonctionne parfaitement
Code : Sélectionner tout - Visualiser dans une fenêtre à part RvBmp := DM.rveProjet.ProjMan.FindRaveComponent('Checked', RvPage) as TRaveBitMap;
Un grand merci à toi
Par contre, çà me pose un problème de compréhension logique.
Je n'ai plus besoin de RVBand.
Maintenant, si j'ai une autre bande avec un bitmap portant le même nom, le traitement est aussi effectué.
Bon, il suffit juste de ne pas nommer un autre bitmap avec le même nom, mais je ne trouve pas çà très logique.
est-il d'ailleurs possible d'avoirs un composant de meme nom sur une autre bande ?
j'ai pas le courage de verifier
T'as raison, c'est pas possible.
Ca va mieux !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager