Jump to content
Fórum Script Brasil
  • 0

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


Guest Walter Gazzarrini Neto

Question

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 to comment
Share on other sites

21 answers to this question

Recommended Posts

  • 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 to comment
Share on other sites

  • 0
Guest Walter Gazzarrini Neto

Num deu certo não velho deu na mesma só aparece no label se ele o registro <= 10 estiver selecionado,mas obrigado.

abs.

Link to comment
Share on other 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 to comment
Share on other 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

Edited by Jhonas
Link to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.5k
×
×
  • Create New...