Etat: change de couleur suivant la valeur du champ [Résolu]

Messages postés
34
Date d'inscription
mercredi 17 septembre 2008
Statut
Membre
Dernière intervention
31 mars 2014
- - Dernière réponse : nmacines
Messages postés
34
Date d'inscription
mercredi 17 septembre 2008
Statut
Membre
Dernière intervention
31 mars 2014
- 24 oct. 2013 à 13:29
bonjour,
je voudrais s'il vous plaît savoir comment définir la couleur des résultats issus d'une requête avec le composant Tquery de ADO :
c'est à dire afficher dans l'état par exemple la couleur bleu si la valeur est PR ,rouge si la valeur est AV et jaune la valeur est BL
votre aide me sera capitale pour la présentation de mon état
cordialement votre
Afficher la suite 

2 réponses

Messages postés
4992
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
9
0
Merci
Bonjour,

voici un exemple de code permettant de traiter tous les cas de figure se présentant dans le résultat de ta requête :

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;

  test: string;

implementation

{$R *.dfm}

function ReturnRequest: string;
begin
<gras>//c'est ici qu'il faut construire ta requête renvoyant PR, AV ou BL</gras>
  result := 'PR';
end;

function StringToCaseSelect(Selector: string; CaseList: array of string): Integer;
var
  cnt: integer;
begin
  Result := -1;
  for cnt := 0 to Length(CaseList) - 1 do
  begin
    if CompareText(Selector, CaseList[cnt]) = 0 then
    begin
      Result := cnt;
      Break;
    end;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  case StringToCaseSelect(ReturnRequest, ['PR', 'AV', 'BL']) of

    0: ShowMessage('You''ve picked PR');
    1: ShowMessage('You''ve picked AV');
    2: ShowMessage('You''ve picked BL');
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  ReturnRequest;
end;

end.


Commenter la réponse de cs_cantador
Messages postés
34
Date d'inscription
mercredi 17 septembre 2008
Statut
Membre
Dernière intervention
31 mars 2014
0
Merci
bonjour ,
merci bien Cantador , en cherchant un peu plus j'ai eu une solution qui peut être utile pour les autres cas
avec l'évènement before print j'ai ontenu ce que je souhaitais :

procedure TForm24.QRBand6BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
begin
if quickrep3.DataSet.FieldValues['1']='PR' then
begin
QRDBtext6.Font.Color:=clblack ;
end
else
begin QRDBtext6.Font.Color:=clred end;
end;

--
Commenter la réponse de nmacines