Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Rave
Rave Forum d'entraide sur Rave Reports
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/03/2005, 11h12   #1
Membre du Club
 
Inscription : décembre 2004
Messages : 187
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 187
Points : 60
Points : 60
Par défaut [Rave et delphi] Case à cocher

Bonjour,

Je cherche à savoir s'il est possible de mettre une case à cocher avec Rave report.
Merci d'avance
Leesox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2005, 16h09   #2
Membre éclairé
 
Avatar de chtiot
 
Inscription : octobre 2002
Messages : 383
Détails du profil
Informations forums :
Inscription : octobre 2002
Messages : 383
Points : 330
Points : 330
une case à cocher où?
chtiot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2005, 20h04   #3
Membre du Club
 
Inscription : décembre 2004
Messages : 187
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 187
Points : 60
Points : 60
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).
Leesox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2005, 13h49   #4
Membre du Club
 
Inscription : décembre 2004
Messages : 187
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 187
Points : 60
Points : 60
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.
Leesox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2005, 17h45   #5
Membre éclairé
 
Avatar de chtiot
 
Inscription : octobre 2002
Messages : 383
Détails du profil
Informations forums :
Inscription : octobre 2002
Messages : 383
Points : 330
Points : 330
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 :
Code :
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;
Normalement ça devrait marcher ...
chtiot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2005, 13h47   #6
Membre du Club
 
Inscription : décembre 2004
Messages : 187
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 187
Points : 60
Points : 60
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 .
Leesox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2005, 19h17   #7
Membre du Club
 
Inscription : décembre 2004
Messages : 187
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 187
Points : 60
Points : 60
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


Code :
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;
A noter :
- 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
Code :
RvBand := rvproject1.ProjMan.FindRaveComponent('DataBand1', RvPage) AS TRaveDataBand;
j'ai remplacé RvBand par RvRegion : çà me parait plus logique.
Leesox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2005, 19h35   #8
Membre éclairé
 
Avatar de chtiot
 
Inscription : octobre 2002
Messages : 383
Détails du profil
Informations forums :
Inscription : octobre 2002
Messages : 383
Points : 330
Points : 330
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?
chtiot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2005, 20h16   #9
Membre du Club
 
Inscription : décembre 2004
Messages : 187
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 187
Points : 60
Points : 60
Ok, Je l'ai remise comme sur ton code et rvband n'est plus nil.
Mais RvBmp reste encore nil donc avec çà :
Code :
RvBmp := DM.rveProjet.ProjMan.FindRaveComponent('Checked', RvPage) AS TRaveBitMap;
Rvpage au lieu de RvBand et tout fonctionne parfaitement

Un grand merci à toi
Leesox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2005, 20h25   #10
Membre du Club
 
Inscription : décembre 2004
Messages : 187
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 187
Points : 60
Points : 60
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.
Leesox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2005, 20h42   #11
Membre éclairé
 
Avatar de chtiot
 
Inscription : octobre 2002
Messages : 383
Détails du profil
Informations forums :
Inscription : octobre 2002
Messages : 383
Points : 330
Points : 330
est-il d'ailleurs possible d'avoirs un composant de meme nom sur une autre bande ?

j'ai pas le courage de verifier
chtiot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2005, 20h46   #12
Membre du Club
 
Inscription : décembre 2004
Messages : 187
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 187
Points : 60
Points : 60
T'as raison, c'est pas possible.

Ca va mieux !
Leesox est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h50.


 
 
 
 
Partenaires

Hébergement Web