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

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

Votre réponse

2 réponses

cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscriptionModérateurStatut 27 mars 2018 Dernière intervention - 21 oct. 2013 à 10:12
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
nmacines 34 Messages postés mercredi 17 septembre 2008Date d'inscription 31 mars 2014 Dernière intervention - 24 oct. 2013 à 13:29
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.