Jump to content


Photo

Dificuldade Com Sql


  • Faça o login para participar
3 replies to this topic

#1 radesenvolvedor

radesenvolvedor

    Novato no fórum

  • Usuários
  • 2 posts
  • Sexo:Não informado

Posted 28/08/2005, 16:46

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

#2 feubr

feubr

    Normal

  • Usuários
  • 80 posts
  • Sexo:Não informado

Posted 06/09/2005, 18:54

Brother, posta o erro, assim fica difícil.

abraços.

#3 proteus_adi

proteus_adi

    @handle:=proteus;//>>>

  • Usuários
  • 309 posts
  • Sexo:Não informado
  • Localidade:Minas Gerais&gt;&gt; Belo Horizonte
  • Interesses:Programação e Web&gt;&gt;&gt;

Posted 07/09/2005, 16:46

muito mais...
PROTEUS [ADSUMUS]
ETERNAL ########
---------------------------------------------------------------
"Já dizia o mestre: PROGRAMAR é diferente de CODIFICAR"...

#4 radesenvolvedor

radesenvolvedor

    Novato no fórum

  • Usuários
  • 2 posts
  • Sexo:Não informado

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




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq