IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Rave Discussion :

[Rave et delphi] Case à cocher


Sujet :

Rave

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 228
    Points : 117
    Points
    117
    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

  2. #2
    Membre averti Avatar de chtiot
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 385
    Points : 403
    Points
    403
    Par défaut
    une case à cocher où?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 228
    Points : 117
    Points
    117
    Par défaut
    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).

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 228
    Points : 117
    Points
    117
    Par défaut
    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.

  5. #5
    Membre averti Avatar de chtiot
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 385
    Points : 403
    Points
    403
    Par défaut
    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 : 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;
    Normalement ça devrait marcher ...

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 228
    Points : 117
    Points
    117
    Par défaut
    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 .

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 228
    Points : 117
    Points
    117
    Par défaut
    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 : 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;
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    RvBand := rvproject1.ProjMan.FindRaveComponent('DataBand1', RvPage) as TRaveDataBand;
    j'ai remplacé RvBand par RvRegion : çà me parait plus logique.

  8. #8
    Membre averti Avatar de chtiot
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 385
    Points : 403
    Points
    403
    Par défaut
    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?

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 228
    Points : 117
    Points
    117
    Par défaut
    Ok, Je l'ai remise comme sur ton code et rvband n'est plus nil.
    Mais RvBmp reste encore nil donc avec çà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RvBmp := DM.rveProjet.ProjMan.FindRaveComponent('Checked', RvPage) as TRaveBitMap;
    Rvpage au lieu de RvBand et tout fonctionne parfaitement

    Un grand merci à toi

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 228
    Points : 117
    Points
    117
    Par défaut
    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.

  11. #11
    Membre averti Avatar de chtiot
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 385
    Points : 403
    Points
    403
    Par défaut
    est-il d'ailleurs possible d'avoirs un composant de meme nom sur une autre bande ?

    j'ai pas le courage de verifier

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 228
    Points : 117
    Points
    117
    Par défaut
    T'as raison, c'est pas possible.

    Ca va mieux !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MIGRATION] champ de type "case à cocher"
    Par The_Nail dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 10/05/2011, 11h07
  2. Récupérer toutes les cases à cocher
    Par psyco2604 dans le forum ASP
    Réponses: 7
    Dernier message: 14/10/2004, 10h54
  3. Erreur Rave et Delphi 7.1
    Par dd16 dans le forum EDI
    Réponses: 4
    Dernier message: 10/09/2004, 17h12
  4. Activer cases à cocher
    Par schnito dans le forum MFC
    Réponses: 4
    Dernier message: 24/01/2004, 16h07
  5. [CR] Création de tableau et case à cocher
    Par aysse dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 26/11/2003, 17h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo