Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Perguntar Sobre Um Campo Da Tabela >=10


Guest Walter Gazzarrini Neto

Pergunta

Guest Walter Gazzarrini Neto

Eu preciso que apareça alguma coisa escrito no label, se um registro da tabela for >= 10!!!!!

Eu fiz desse jeito:

if dm.ZTpecas.FieldByName('Qtdfinal_estoque').value <= 10 then

form37.Label2.Caption:='Peças';

Porém ele pega apenas o registro selecionado ,eu precisava que ele pegasse se qualquer registro do campo qtdfinal_estoque fosse <=10!!!

Conto com vocês,obrigado!!!!!

DELPHI a Style life

Link para o comentário
Compartilhar em outros sites

21 respostass a esta questão

Posts Recomendados

  • 0

coloque um TDataSource no seu form (caso já não tenha um) para ligá-lo ao seu dataset ZTpecas (via propriedade Dataset do TDatasource).

Feito isto, no Object Inspector, vá na guia Events e dê um duplo click no evento OnDataChange. Coloque o seu código naquele evento.

Deste modo, para cada linha do DBGrid que você posicionar o "cursor", o label será ajustado. (se não for um DBGrid, também funciona)

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Walter Gazzarrini Neto

Vixe agora vo complica mais ainda,além de mudar o label, eu agora preciso que a célula do campo 'Qtdfinal' mude de cor ,isso em um dbgrid!!!!!!!!!!!!

obs: uso My Sql!!!

abs,obrigado!!!

DELPHI a style life

Link para o comentário
Compartilhar em outros sites

  • 0

No evento OnDrawColumnCell do dbgrid use:

if (Column.Field.FieldName = 'Qtdfinal_estoque') then
      begin
         if dm.ZTpecas.FieldByName('Qtdfinal_estoque').value <= 10 then
            begin
               DBGrid1.Canvas.Font.Color:= clRed;
               DBGrid1.Canvas.FillRect(Rect);
               DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
            end
         else
             begin
               DBGrid1.Canvas.Font.Color:= clBlack;
               DBGrid1.Canvas.FillRect(Rect);
               DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
             end;
      end;

OBS: Todos os registros do campo 'Qtdfinal' que forem menor ou igual a 10 ficarão em cor vermelha e os demais em preto

Editado por Jhonas
Link para o comentário
Compartilhar em outros sites

  • 0
Guest Walter Gazzarrini Neto

Jhonas valeu,muito obrigado cara, funcionou perfeitooo,só tive que dá ctrl+c ctrl+v!!!!!!!!!!

Será que você num sabe um jeito de se caso qualquer registro do campo 'Qtdfinal_estoque' for <=10 ele mudar o caption de um label en outro form??????

Abs. agradecido...

DELPHI a style life

Link para o comentário
Compartilhar em outros sites

  • 0
OnDataChange de que componente?

Walter Gazzarrini Neto, parece que você não leu esta linha no meu post:

coloque um TDataSource no seu form (caso já não tenha um) para ligá-lo ao seu dataset ZTpecas (via propriedade Dataset do TDatasource).

Feito isto, no Object Inspector, vá na guia Events e dê um duplo click no evento OnDataChange. Coloque o seu código naquele evento.

a única coisa da qual falei fou um componente TDataSource, logo, o evento só poderia ser dele. Não?! :huh:

Será que você num sabe um jeito de se caso qualquer registro do campo 'Qtdfinal_estoque' for <=10 ele mudar o caption de um label en outro form??????
Ainda acho que o jeito é o que sugeri, então, segue um exemplo anexo. (é bem idiota, mas funciona) ;)

ChangeLabel.zip

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Walter Gazzarrini Neto

Micheus...esse código que você me passo só muda o label caso o registro esteja selecionado , eu precisava que ele mudasse mesmo se o registro não estiver selecionado.

obrigado abs..

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Walter Gazzarrini Neto

Eu estou fazendo um form de informações se o estoque estiver <=10 eu queria que aparecesse a informação no label,eu precisava que ele pegasse se qualquer registro do campo qtdfinal_estoque fosse <=10!!!

Conto com vocês,obrigado!!!!!

DELPHI a Style life

Link para o comentário
Compartilhar em outros sites

  • 0
Micheus...esse código que você me passo só muda o label caso o registro esteja selecionado , eu precisava que ele mudasse mesmo se o registro não estiver selecionado.

Colega, voce já tem o codigo que muda o label caso o registro esteja selecionado, porque voce não coloca este codigo no outro , vai fazer o que voce esta querendo.

if (Column.Field.FieldName = 'Qtdfinal_estoque') then
      begin
         if dm.ZTpecas.FieldByName('Qtdfinal_estoque').value <= 10 then
            begin
               DBGrid1.Canvas.Font.Color:= clRed;
               DBGrid1.Canvas.FillRect(Rect);
               DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);

               // coloque aqui o codigo que muda o label 

            end
         else
             begin
               DBGrid1.Canvas.Font.Color:= clBlack;
               DBGrid1.Canvas.FillRect(Rect);
               DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
             end;
      end;

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Walter Gazzarrini Neto
posta ai o codigo que muda o label

Em lugar nenhum que eu coloquei funciona!!!, naquele evento que você falo não funciona, pois so serve para alterar propriedades do DBgrid!!!!!

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Walter Gazzarrini Neto
se voce não colocar o codigo não posso te ajudar.

caso qualquer registro do campo 'Qtdfinal_estoque' for <=10

Form37.label2.caption:='peças';

Link para o comentário
Compartilhar em outros sites

  • 0
Micheus...esse código que você me passo só muda o label caso o registro esteja selecionado , eu precisava que ele mudasse mesmo se o registro não estiver selecionado.
Não fique "zangado"... (alusão ao ícone do post)

Enquanto não fica claro o que você quer, é difícil acertar. ;)

Veja bem, você tem um DBGrid onde muitas linhas são mostradas. Para cada linha, tem uma coluna chamada "Qtdfinal_estoque". E voce quer que apareça num label um texto conforme o valor desta coluna.

Não está meio estranho? Ou eu entendi errado?

Se o texto tem que ser mostrado para cada item no DBGrid, então você deveria ter uma coluna para mostrar este texto - neste caso seria indicado o uso de um campo calculado.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Walter Gazzarrini Neto
Micheus...esse código que você me passo só muda o label caso o registro esteja selecionado , eu precisava que ele mudasse mesmo se o registro não estiver selecionado.
Não fique "zangado"... (alusão ao ícone do post)

Enquanto não fica claro o que você quer, é difícil acertar. ;)

Veja bem, você tem um DBGrid onde muitas linhas são mostradas. Para cada linha, tem uma coluna chamada "Qtdfinal_estoque". E voce quer que apareça num label um texto conforme o valor desta coluna.

Não está meio estranho? Ou eu entendi errado?

Se o texto tem que ser mostrado para cada item no DBGrid, então você deveria ter uma coluna para mostrar este texto - neste caso seria indicado o uso de um campo calculado.

rsrsrs.....é assim tenho um form com cadastro de peças e eu já utilize-o como estoque tb, pois ele mostra qtd no estoque,nele há um dbgrid mostrando tudo que até a célula fica vermelha quando há um valor <= 10 independente de sua posiçao, utilizei o código do jhonas ai em cima.

Bom no form principal há um botão que chama um form de informaçoes ao usuário ele é bem simples é um balaoziho com um label e eu queria que quando caso qualquer registro do campo 'Qtdfinal_estoque' for <=10 acontecesse isso

Form37.label2.caption:='peças'; !!

Porém não encontro nenhum codigo nem evento que funcione essa linha!!!

espero ter esclarecido e q vocês possam me ajudar, muito obrigado mesmo!!!

Link para o comentário
Compartilhar em outros sites

  • 0
Bom no form principal há um botão que chama um form de informaçoes ao usuário ele é bem simples é um balaoziho com um label e eu queria que quando caso qualquer registro do campo 'Qtdfinal_estoque' for <=10 acontecesse isso

Form37.label2.caption:='peças'; !!

Porém não encontro nenhum codigo nem evento que funcione essa linha!!!

ahhh!!!!

então estamos falando de outro form, não mais aquele que tem o DBGrid.

Bom, se é para mudar o label para qualquer peça em que a Qtdfinal_estoque é inferior a 10, então acho que você deve fazer uma consulta exclusivamente para isto, algo como:

SELECT peca
FROM estoque
WHERE Qtdfinal_estoque <= 10
obs: você tem que ajustar o nome do campo e tabela no select porque eu não sei o nome deles (você não informou) Um select deste tipo irá lhe retornar todas as peças que a Qtdfinal_estoque esteja inferior a 10. Daí, se você quer listar no label o nome ou código (sei lá o quê) destas peça, você varre esta consulta e vai concatenando o valor do campo em questão no label:
Form37.label2.caption := '';
dm.ZQryQtd.Open;
while not dm.ZQryQtd.EOF do
begin
  Form37.label2.caption := Form37.label2.caption + dm.ZQryQtd.FieldByName('Peca').AsString +'; ';
  dm.ZQryQtd.Next;
end;
dm.ZQryQtd.Close;
ou se preferir utilizar a consulta que é mostrada no DBGrid:
Form37.label2.caption := '';
dm.ZTpecas.First;
while not dm.ZTpecas.EOF do
begin
  if dm.ZTpecas.FieldByName('Qtdfinal_estoque').value <= 10 then
    Form37.label2.caption := Form37.label2.caption + dm.ZTpecas.FieldByName('Peca').AsString +'; ';
  dm.ZTpecas.Next;
end;

Veja se era isto.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Walter Gazzarrini Neto

Era isso sim coloquei a pesquisa no query e usei o eof para escrever no label!!!

Bom com isso terminei meu sistema espero que agora por um tempo venha aqui só pra responder duvidas dos outros....rs

Obrigado a todos que me ajudaram sem esse Fórum não teria conseguido abraços...até a próxima

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...