Como varrer tabela do inicio ao fim

SQL

Delphi

28/12/2020

Olá, estou com a seguinte situação
Preciso mudar a cor da situação do cliente de acordo com o CODSIT
CODSIT = 1 vai ser vermelho
CODSIT = 2 vai ser azul
CODSIT = 3 vai ser verde

preciso que a grid mostre estas cores para todos os clientes cadastrados, informando o grau da situação
O problema se dá ao seguinte, preciso varrer a tabela para fazer isso, porem so o primeiro registro esta contando ou o ultimo, preciso que fique assim

Cliente Situação
1 2(azul)

2 1(vermelho)

3 2(azul)

4 2(verde)

deste ja agradeço.

É para um projeto intraweb utilizando SQL
Ramboli

Ramboli

Curtidas 0

Respostas

Gxf

Gxf

28/12/2020

Poste como esta varrendo a tabela, para que possam lhe auxiliar melhor. :)
GOSTEI 0
Ramboli

Ramboli

28/12/2020

Poste como esta varrendo a tabela, para que possam lhe auxiliar melhor. :)



estou varrendo assim

tabela.open;
tabela.first;
while tabela.eof do
begin
 if tabela.FindField(CODSIT').AsLargeInt = 3 then
      begin
        IWDBWebGrid.Columns[10].Color := verde;     // o que esta dentro dos [ ] é o numero da coluna
      end;

    if tabela.FindField(CODSIT').AsLargeInt = 2 then
      begin
        IWDBWebGrid.Columns[10].Color := azul;
      end;

    if tabela.FindField(CODSIT').AsLargeInt = 1 then
      begin
        IWDBWebGrid.Columns[10].Color := vermelho;   
      end;
end;




GOSTEI 0
Gxf

Gxf

28/12/2020

Tente desta forma:

tabela.open;
tabela.first;
while not (tabela.eof) do
begin
if tabela.FindField(CODSIT').AsLargeInt = 3 then
begin
IWDBWebGrid.Columns[10].Color := verde; // o que esta dentro dos [ ] é o numero da coluna
end;

if tabela.FindField(CODSIT').AsLargeInt = 2 then
begin
IWDBWebGrid.Columns[10].Color := azul;
end;

if tabela.FindField(CODSIT').AsLargeInt = 1 then
begin
IWDBWebGrid.Columns[10].Color := vermelho;
end;

tabela.Next;
end;
GOSTEI 0
Ramboli

Ramboli

28/12/2020

Tente desta forma:

tabela.open;
tabela.first;
while not (tabela.eof) do
begin
if tabela.FindField(CODSIT').AsLargeInt = 3 then
begin
IWDBWebGrid.Columns[10].Color := verde; // o que esta dentro dos [ ] é o numero da coluna
end;

if tabela.FindField(CODSIT').AsLargeInt = 2 then
begin
IWDBWebGrid.Columns[10].Color := azul;
end;

if tabela.FindField(CODSIT').AsLargeInt = 1 then
begin
IWDBWebGrid.Columns[10].Color := vermelho;
end;

tabela.Next;
end;


Ele coloriu apenas o ultimo registro, ou eu coloco fora do while e colore apenas o primeiro, ou dentro e colore o ultimo, preciso que seja colorido todos
GOSTEI 0
POSTAR