Fórum somar variaveis #320243
28/04/2006
0
o cadastro de produtos tem grupo desse produto.
ai tem uma promocao na loja : na compra de 2 produtos do grupo 1 voce ganha um desconto X.
cada produto que eu passo no leitor de codigo de barras eu sei o grupo.
exemplo da venda
produtos vendidos.
produto/grupo
1 / 1
2 / 2
3 / 1
4 / 5
6 / 5
7 / 5
como criar as variaveis em tempo de execucao pra que eu tenho a soma dos grupos.
1 = 2
2 = 1
5 = 3
acho que é isso cada produto que for passando no leitor ele verifica o grupo c nao tem ainda a variavel do grupo ele cria c ja tem ele soma.
Mysys
Curtir tópico
+ 0Posts
28/04/2006
Marcio.theis
Gostei + 0
28/04/2006
Mysys
mais eu tinha visto a milhoes de anos atraz algo mais simples acho que era com array ( acho que é assim que escreve ), so que nao achei no forum...
c alguem tiver mais uma opcao ..
um abraco
Gostei + 0
29/04/2006
Marco Salles
Array ???? [b:4a755385af]Isto não te pertence mais[/b:4a755385af]
Type TClasseModerna = Class private FTotal:Integer; procedure Settotal(const Value: Integer); public Constructor Create(Total:Integer); property Total:Integer Read FTotal Write Settotal; end;
constructor tClasseModerna.Create(Total: Integer); begin FTotal:=Total end;
procedure TClasseModerna.Settotal(const Value: Integer); begin FTotal := Total+ Value; end;
Var ListaModerna:TStringList;
Procedure Armazenar(var ListaModerna:TstringList;Grupo:String;Total:Integer); var i,j:Integer; MyObj:TObject; begin j:=ListaModerna.IndexOf(Grupo); if j >= 0 Then TClasseModerna(ListaModerna.Objects[j]).Settotal(total) else begin MyObj:=TClasseModerna.Create(total); ListaModerna.AddObject(Grupo,MyObj); end; end;
[b:4a755385af]Para Usar :[/b:4a755385af]
Armazenar(ListaModerna,SeusDadosDeGroup,SeuDadosDoTotal)
[b:4a755385af]Para acessar os dados[/b:4a755385af]
For i:=0 To ListaModerna.Count-1 do Showmessage(inttostr(TClasseModerna(ListaModerna.Objects[i]).FTotal)); end ;
[b:4a755385af]Não esquecer de destruir[/b:4a755385af]
For i:=0 To ListaModerna.Count-1 do TClasseModerna(ListaModerna.Objects[i]).Free; freeandnil(ListaModerna); end;
e boa sorte
Gostei + 0
14/09/2006
Mysys
so um detalhe ..
nao to conseguindo fazer isso em formMDI
porque ..
exemplo
Form1 eu digito lá 5 itens
ai abro o form2 mesmo antes de digitar as variaveis do form1 ja ta contando
nao to conseugindo criar a variavel no Private..
private
FTotal:Integer;
procedure Settotal(const Value: Integer);
Constructor Create(Total:Integer);
property Total:Integer Read FTotal Write Settotal;
public
end;
var
FRMLoc: TFRMLoc;
ListaModerna : TStringList;
implementation
uses UDM, UConTit, ULocCxa, UConDep, UConPro, UMen, ULocCopEdi,
UAguarde, UIniLoc, UVisRes, UPro, UTroUsu, UCadMen, UPagAvu,
UHisCli, UCadCli, ULanRes, UCapImg, ULocDet, DateUtils ;
{$R *.dfm}
constructor TFRMLoc.Create(Total: Integer);
begin
FTotal:=Total
end;
procedure TFRMLoc.Settotal(const Value: Integer);
begin
FTotal := Total+ Value;
end;
Procedure Armazenar(var ListaModerna:TstringList;Grupo:String;Total:Integer);
var
i,j:Integer;
MyObj:TObject;
begin
j:=ListaModerna.IndexOf(Grupo);
if j >= 0 Then
TFRMLoc(ListaModerna.Objects[j]).Settotal(total)
else
begin
MyObj:=TFRMLoc.Create(total);
ListaModerna.AddObject(Grupo,MyObj);
end;
end;Gostei + 0
14/09/2006
Marco Salles
coloque numa [b:8118a82f5c]Unit[/b:8118a82f5c]
[b:8118a82f5c]e depois em qualquer form[/b:8118a82f5c]
[b:8118a82f5c]Para acessar os valores em qualque Form , basta declarar a Variavel ListaModerna no campo Public Do form...[/b:8118a82f5c]
espero que desta vez voce não fique tanto tempo sem dar Noticias...
[b:8118a82f5c]Sáb Abr 29, 2006[/b:8118a82f5c] para [b:8118a82f5c]Qui Set 14, 2006[/b:8118a82f5c] ja poderia ter morrido sem saber :cry: :cry: :cry:
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)