Fórum Atualizar dados no String Grid #263880
31/12/2004
0
***O desconto depende do perfil que o cliente se encaixa.
Quando escolho o produto pela 1ª vez a StringGrid é preenchida normalmente. O problema é que ao escolher outro produto, ela continua com os mesmos valores do produto antigo.
Segue abaixo o código utilizado:
procedure TFrmVenda.SpdProdClick(Sender: TObject);
begin
FrmPrincipal.FormAcao := ´Ped_Cli´;
reserva := EdQtde.Text;
EdQtde.Text := ´´;
EdQtde.Text := reserva;
Application.CreateForm(TFrmLoc_Pro, FrmLoc_Pro);
FrmLoc_Pro.ShowModal;
end;
procedure TFrmVenda.PreencherProduto;
begin
EdCod_Pro.Text := DmDPL.TbProduto.FieldByName(´ID´).AsString;
LblNome_Pro.Caption := DmDPL.TbProduto.FieldByName(´NOME´).AsString;
LblUnit.Caption := DmDPL.TbProduto.FieldByName(´PRECO_PRAT´).AsString;
Calcular_DescModal;
LblDesc.Caption := FloatToStr(desconto);
DBTxtQtde_Etq.DataSource := DmDPL.DsProduto;
DBTxtQtde_Etq.DataField := ´ETQ_QTDE´;
EdQtde.Text := ´1´;
PreencherPreco;
end;
procedure TFrmVenda.PreencherPreco;
var
x : integer; //contador
produto, desconto, preco : real;
begin
//PREENCHER STRINGGRID COM PERFIL E SEUS PREÇOS
x := 0;
While not DmDPL.TbPerfil.Eof do
begin
produto := DmDPL.TbProduto.FieldByName(´PRECO_PRAT´).AsFloat;
desconto := DmDPL.TbPerfil.FieldByName(´DESCONTO´).AsFloat;
preco := (produto - ((produto * desconto) / 100));
StrGd.Cells[0,x] := DmDPL.TbPerfil.FieldByName(´NOME´).AsString;
StrGd.Cells[1,x] := FloatToStr(preco);
x := x + 1;
DmDPL.TbPerfil.Next;
end;
StrGd.
end;
Se puderem me ajudar ficarei muito agradecido....
Valew...... Feliz 2005 para todo o grupo!!!!!!!!!!!!!!!!!!!!
Rodrigo Freire..;.;
Rgfreire
Curtir tópico
+ 0Posts
01/01/2005
Michael
Talvez não seria melhor você usar um ClientDataSet (ou SimpleDataSet), com campos calculados? Acho que seria melhor pois você não teria que escrever muito código.
Abraços!
Gostei + 0
03/01/2005
Vprates
não seria o caso de vc limpar os valores da stringgrid antes de receber novos valores???
Obs: Nunca usei o stringgrid.
Gostei + 0
03/01/2005
Fsflorencio
Ex.
For i := 0 to stringgrid.rowcount -1 do//linhas
for j := 0 to stringgrid.colcount -1 do//colunas
stringgrid.cells[j,i] := ´´;
isto deve limpar
depois que vc executar o procedimento de preencher onde ele deve dizer quantas linhas o stringgrid possui {stringgrid.rowcount := x}, para eliminar as linhas da pesquisa anterior ou alocar linhas para a nova pesquisa.
até.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)