Etat: change de couleur suivant la valeur du champ

Résolu
nmacines Messages postés 34 Date d'inscription mercredi 17 septembre 2008 Statut Membre Dernière intervention 31 mars 2014 - 19 oct. 2013 à 11:17
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

2 réponses

cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
21 oct. 2013 à 10:12
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.


0
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 ,
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;

--
0
Rejoignez-nous