var
Desconto1, Desconto2 : Double;
Promocao, valorreal, oTotal, oTotal1, oTotal2, oTotal3 : Double;
_sNomeClienteECF, sTotal, sTotal1, sTotal2, sTotal3,inicio, final : String;
begin
DateTimePicker1.Date := now;
inicio := DateToStr(DateTimePicker1.Date);
final := DateToStr(Date);
//seleciona ultima venda
QueryVen.SQL.Clear;
QueryVen.SQL.Add('Select ChaveVenda');
QueryVen.SQL.Add('From VenItens');
QueryVen.open;
QueryVen.Last;
//seleciona os produtos da venda
SQLGeral.Close;
SQLGeral.SQL.Clear;
SQLGeral.SQL.Add('Select CodigoProduto, Qtde, ValorUnitario, Preco_Promocao, Inicio_Promocao, Fim_Promocao ');
SQLGeral.SQL.Add('From VenItens, Produtos');
SQLGeral.SQL.Add('Where ChaveVenda = '+ QueryVen.FieldByName('ChaveVenda').AsString);
SQLGeral.SQL.Add('and (Codigo = CodigoProduto)');
SQLGeral.open;
//seleciona os produtos em promoção
SQLPromo1.Close;
SQLPromo1.SQL.Clear;
SQLPromo1.SQL.Add('Select CodigoProduto, Qtde, ValorUnitario, Preco_Promocao, Inicio_Promocao, Fim_Promocao ');
SQLPromo1.SQL.Add('From VenItens, Produtos');
SQLPromo1.SQL.Add('Where ChaveVenda = '+ QueryVen.FieldByName('ChaveVenda').AsString);
SQLPromo1.SQL.Add('and (Codigo = CodigoProduto)');
SQLPromo1.open;
//seleciona os produtos que tem valor diferente de zero na promoção para
SQLPromo2.Close;
SQLPromo2.SQL.Clear;
SQLPromo2.SQL.Add('Select CodigoProduto, Qtde, ValorUnitario, Preco_Promocao, Inicio_Promocao, Fim_Promocao ');
SQLPromo2.SQL.Add('From VenItens, Produtos');
SQLPromo2.SQL.Add('Where ChaveVenda = '+ QueryVen.FieldByName('ChaveVenda').AsString);
SQLPromo2.SQL.Add('and (Codigo = CodigoProduto)');
SQLPromo2.SQL.Add('and (Preco_Promocao <> 0)');
SQLPromo2.SQL.Add('and (Fim_Promocao < :pinicio)');
SQLPromo2.ParamByName('pinicio').AsDateTime := StrToDate(inicio);
SQLPromo2.open;
//seleciona os produtos em promoção com valor zero
SQLPromo3.Close;
SQLPromo3.SQL.Clear;
SQLPromo3.SQL.Add('Select CodigoProduto, Qtde, ValorUnitario, Preco_Promocao, Inicio_Promocao, Fim_Promocao ');
SQLPromo3.SQL.Add('From VenItens, Produtos');
SQLPromo3.SQL.Add('Where ChaveVenda = '+ QueryVen.FieldByName('ChaveVenda').AsString);
SQLPromo3.SQL.Add('and (Codigo = CodigoProduto)');
SQLPromo3.SQL.Add('and (Preco_Promocao = 0.00)');
SQLPromo3.open;
oTotal := 0;
with SQLGeral do
begin
First;
while not EOF do
begin
sTotal := FormatFloat('###0.00', SQLGeral.FieldByName('ValorUnitario').Value * SQLGeral.FieldByName('Qtde').Value);
oTotal := oTotal + StrToFloat(sTotal);
SQLGeral.Next;
Application.ProcessMessages;
end;
Result := oTotal;
end;
valorreal := oTotal;
if (DateTimePicker1.Date >= SQLPromo1.FieldByName('Inicio_Promocao').AsDateTime) or (DateTimePicker1.Date <= SQLPromo1.FieldByName('Fim_Promocao ').AsDateTime)then
Begin
oTotal1 := 0;
with SQLPromo1 do
begin
First;
while not EOF do
begin
sTotal1 := FormatFloat('###0.00', SQLPromo1.FieldByName('Preco_Promocao').Value * SQLPromo1.FieldByName('Qtde').Value);
oTotal1 := oTotal1 + StrToFloat(sTotal1);
SQLPromo1.Next;
Application.ProcessMessages;
end;
if oTotal1 = Null then
oTotal1 := 0.00;
Result := oTotal1 ;
end;
end;
oTotal2 := 0;
with SQLPromo2 do
begin
First;
while not EOF do
begin
sTotal2 := FormatFloat('###0.00', SQLPromo2.FieldByName('ValorUnitario').Value * SQLPromo2.FieldByName('Qtde').Value);
SQLPromo2.Next;
Application.ProcessMessages;
end;
if oTotal2 = Null then
oTotal2 := 0.00;
Result := oTotal2 ;
end;
oTotal3 := 0;
with SQLPromo3 do
begin
First;
while not EOF do
begin
sTotal3 := FormatFloat('###0.00', SQLPromo3.FieldByName('ValorUnitario').Value * SQLPromo3.FieldByName('Qtde').Value);
oTotal3 := oTotal3 + StrToFloat(sTotal3);
SQLPromo3.Next;
Application.ProcessMessages;
end;
if oTotal3 = Null then
oTotal3 := 0.00;
Result := oTotal3 ;
end;
If SQLPromo2.FieldByName('ValorUnitario').IsNull Then
SQLPromo2.Edit;
SQLPromo2.FieldByName('ValorUnitario').Value:= '0,00';
If SQLPromo2.FieldByName('Preco_Promocao').IsNull Then
SQLPromo2.FieldByName('Preco_Promocao').Value:= '0,00';
If SQLPromo2.FieldByName('Qtde').IsNull Then
SQLPromo2.FieldByName('Qtde').Value:= '0,00';
SQLPromo2.Post;
if (oTotal1 = 0.00) or (oTotal2 = 0.00) or (oTotal3 = 0.00) then
begin
Promocao := (oTotal1 + oTotal2 + oTotal3 )+
(SQLPromo2.FieldByName('ValorUnitario').Value * SQLPromo2.FieldByName('Qtde').Value -
SQLPromo2.FieldByName('Preco_Promocao').Value * SQLPromo2.FieldByName('Qtde').Value )
end;
Promocao := ((oTotal1 + oTotal2 + oTotal3 ) - oTotal2) +
(SQLPromo2.FieldByName('ValorUnitario').Value * SQLPromo2.FieldByName('Qtde').Value -
SQLPromo2.FieldByName('Preco_Promocao').Value * SQLPromo2.FieldByName('Qtde').Value );
C_Promocao.Value := valorreal - Promocao ;
Quando tento isso, o delphi diz que não posso editar um arq de leitura
quem puder me ajudar
agradeço
Radesenvolvedor
Dificuldade Com Sql
Started By radesenvolvedor, 28/08/2005, 16:46
3 replies to this topic
#1
Posted 28/08/2005, 16:46
#2
Posted 06/09/2005, 18:54
Brother, posta o erro, assim fica difícil.
abraços.
abraços.
#3
Posted 07/09/2005, 16:46
muito mais...
PROTEUS [ADSUMUS]
ETERNAL ########
---------------------------------------------------------------
"Já dizia o mestre: PROGRAMAR é diferente de CODIFICAR"...
ETERNAL ########
---------------------------------------------------------------
"Já dizia o mestre: PROGRAMAR é diferente de CODIFICAR"...
#4
Posted 07/09/2005, 19:50
Caros colegas,
o erro que da é que quando tento editar a sql, ele diz que não posso editar um arquivo somente de leitura
Abraços
Rogerio
o erro que da é que quando tento editar a sql, ele diz que não posso editar um arquivo somente de leitura
Abraços
Rogerio
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)