Neste tutorial ensinarei a criar uma calculadora empresarial no
Lazarus, baseado nas fórmulas de logística.
Criando o primeiro Form
Para quem não sabe o que é logística, vou explicar de maneira simples, a logística é uma área que envolve planejamento, estratégia, armazenamento, estoque, marketing, vendas, transporte e filosofia Just In Time objetivando a satisfação do cliente.
Devido às várias fórmulas que teremos dentro dessa calculadora, tomei a decisão de dividir esse programa em dois Form (formulários) no Lazarus, vamos calcular as seguintes fórmulas:
- Ciclo do Processo
- Taxa de Produção
- Taxa de Produção por recurso
- Giro de Estoque
- Falta de Qualidade (em relação aos produtos)
- Custo do Produto Vendido (CPV)
- Custo da Falta de Qualidade
- Custo de carregar Estoque
- Custo Fixo
- Custo Total
- Custo Unitário
Componentes necessários no primeiro Form, siga os componentes em ordem de cima para baixo.
- Edit1 (Tempo trabalhado em Horas)
- Edit2 (Número de Produtos bons)
- Button1 (Calcula o ciclo do Processo)
- Edit3 (Resultado do Ciclo do Processo)
- Button2 (Calcula a Taxa de Produção)
- Edit4 (Resultado da Taxa de Produção)
- Edit5 (Taxa de Produção)
- Edit6 (Número de funcionários)
- Button3 (Calcula a Taxa de Produção por recurso)
- Edit7 (Resultado da Taxa de Produção por recurso)
- Edit8 (Total de Materiais)
- Edit9 (Total de Produtos)
- Button4 (Calcula o Giro de Estoque)
- Edit10 (Resultado do Giro de Estoque)
- Edit11 (Produtos com Defeitos)
- Edit12 (Total Produzidos)
- Button5 (Calcula a Falta de Qualidade)
- Edit13 (Resultado da Falta de Qualidade)
- Edit14 (Valor Unitário)
- Button6 (Calcula o Custo do Produto Vendido)
- Edit15( Resultado do Custo do Produto Vendido,abreviação CPV)
- Button7 (Calcula o Custo da Falta de Qualidade)
- Edit16( Resultado da Falta de Qualidade, abreviação CFQ)
- Button8 (Apagar)
- Button9 (Sair)
Para quem não sabe o símbolo "//" representa o comentário sobre o código.
Código fonte: Primeiro Form
procedure TForm1.CalcularCicloDoProcessoClick(Sender: TObject);
var n1,n2,resultado:real; //declaração de variáveis do tipo real(aceita numero inteiro e com vírgula)
begin
n1:=StrToFloat(TempoTrabalhadoEmHoras.Text);// converte n1(numero1) para numero flutuante
n2:=StrToFloat(NumeroDeProdutosBons.Text);//converte n2(numero2)para numero flutuante
resultado:=n1/n2; //Dividi a variável n1(numero1) e n2(numero2
ResultadoDoCicloDoProcesso.Text:=FloatToStr(resultado);//mostra o resultado convertendo numero flutuante(Float) para texto(String)
Através dos códigos e comentários escritos acima você terá compreensão dos códigos seguintes.
procedure TForm1.CalcularTaxaDeProducaoClick(Sender: TObject);
var n1,n2,resultado:real;
begin
n1:=StrToFloat(TempoTrabalhado.Text);
n2:=StrToFloat(NumeroDeProdutosBons.Text);
resultado:=n2/n1;
ResultadoTaxaDeProducao.Text:=FloatToStr(resultado);
procedure TForm1.CalcularTaxaDeProducaoPorRecursoClick(Sender: TObject);
var n1,n2,resultado:real;
begin
n1:=StrToFloat(TaxaDeProducao.Text);
n2:=StrToFloat(NumeroDeFuncionarios.Text);
resultado:=n1/n2;
ResultadoTaxaDeProducaoPorRecurso.Text:=FloatToStr(resultado);
procedure TForm1.CalcularGiroDeEstoqueClick(Sender: TObject);
var n1,n2,n3,resultado:real;
begin
n1:=StrToFloat(NumeroDeProdutosBons.Text);
n2:=StrToFloat(TotalDeMateriais.Text);
n3:=StrToFloat(TotalDeProdutos.Text);
resultado:=n1*12/n2/n3;
ResultadoDoGiroDoEstoque.Text:=FloatToStr(resultado);
procedure TForm1.CalcularFaltaDeQualidadeClick(Sender: TObject);
var n1,n2,resultado:real;
begin
n1:=StrToFloat(NumeroDeProdutosComDefeitos.Text);
n2:=StrToFloat(TotalProduzido.Text);
resultado:=n1/n2;
ResultadoDaFaltaDeQualidade.Text:=FloatToStr(resultado);
procedure TForm1.SairClick(Sender: TObject);
begin
Form1.Close;
procedure TForm1.CalcularCPVClick(Sender: TObject);
var n1,n2,resultado:real;
begin
n1:=StrToFloat(NumeroDeProdutosBons.Text);
n2:=StrToFloat(ValorUnitario.Text);
resultado:=n1*n2;
ResultadoCPV.Text:=FloatToStr(resultado);
procedure TForm1.CalcularCustoDaFaltaDeQualidadeClick(Sender: TObject);
var n1,n2,resultado:real;
begin
n1:=StrToFloat(NumeroDeProdutosComDefeitos.Text);
n2:=StrToFloat(ValorUnitario.Text);
resultado:=n1*n2;
ResultadoDoCustoDaFaltaDeQualidade.Text:=FloatToStr(resultado);
Clique no "Button8 (Apagar)" e digite o seguinte código para apagar os dados do primeiro Form:
TempoTrabalhado.Text:='';
NumeroDeProdutosBons.Text:='';
resultadoDoCicloDoProcesso.Text:='';
TaxaDeProducao.Text:='';
ResultadoTaxaDeProducao.Text:='';
NumeroDeFuncionarios.Text:='';
ResultadoTaxaDeProducaoPorRecurso.Text:='';
TotalDeMateriais.Text:='';
TotalDeProdutos.Text:='';
ResultadoDoGiroDoEstoque.Text:='';
NumeroDeProdutosComDefeitos.Text:='';
TotalProduzido.Text:='';
ResultadoDaFaltaDeQualidade.Text:='';
ResultadoCPV.Text:='';
ResultadoDoCustoDaFaltaDeQualidade.Text:='';
Clique no Button9(Sair) digite o seguinte código para fazer a função do botão (Sair):
Form1. close; //Fecha o Form
Salve o programa.
Criando o segundo Form
Componentes necessários para o segundo Form:
- Edit17 (Estoque de Produção em Processo)
- Edit18 (Valor unitário)
- Edit19 (Taxa de Juros)
- Button10 (Calcula o Custo de Carregar Estoque)
- Edit20 (Resultado do Custo de Carregar Estoque)
- Edit21 (Salário do Colaborador)
- Edit22 (Despesas Gerais)
- Button11 (Calcula o Custo Fixo)
- Edit23 (Resultado do Custo Fixo)
- Edit24 (Custo do Produto Vendido)
- Edit25 (Custo da Qualidade)
- Edit26 (Custo do Estoque)
- Edit27 (Custo Fixo)
- Button12 (Calcula o Custo Total)
- Edit28 (Resultado do Custo Total)
- Edit29 (Número de Produtos Bons)
- Button13 (Calcula o Custo Unitário)
- Edit30 (Resultado do Custo Unitário)
- Button14 (Sair)
- Button15 (Apagar)
Código fonte: Segundo Form
procedure TForm2.CalcularCustoDeCarregarEstoqueClick(Sender: TObject);
var n1,n2,n3,resultado:real;
begin
n1:=StrToFloat(EstoqueDeProducaoEmProcesso.Text);
n2:=StrToFloat(ValorUnitario.Text);
n3:=StrToFloat(TaxaDeJuros.Text);
resultado:=n1*n2*n3;
ResultadoDoCustoDeCarregarEstoque.Text:=FloatToStr(resultado);
end;
procedure TForm2.CalcularCustoFixoClick(Sender: TObject);
var n1,n2,resultado:real;
begin
n1:=StrToFloat(SalarioDoColaborador.Text);
n2:=StrToFloat(DespesasGerais.Text);
resultado:=n1+n2;
ResultadoDoCustoFixo.Text:=FloatToStr(resultado);
end;
procedure TForm2.CalcularCustoTotalClick(Sender: TObject);
var n1,n2,n3,n4,resultado:real;
begin
n1:=StrToFloat(CPV.Text);
n2:=StrToFloat(CustoDaQualidade.Text);
n3:=StrToFloat(CustoDoEstoque.Text);
n4:=StrToFloat(CustoFixo.Text);
resultado:=n1+n2+n3+n4;
CustoTotal.Text:=FloatToStr(resultado);
end;
procedure TForm2.CalcularCustoUnitarioClick(Sender: TObject);
var n1,n2,resultado:real;
begin
n1:=StrToFloat(CustoTotal.Text);
n2:=StrToFloat(NumeroDeProdutosBons.Text);
resultado:=n1/n2;
ResultadoDoCustoUnitario.Text:=FloatToStr(resultado);
end;
procedure TForm2.SairClick(Sender: TObject);
begin
Form2.Close;// Fecha o Form2
end;
Códigos necessários para apagar todos os dados do Segundo Form:
procedure TForm2.ApagarClick(Sender: TObject);
begin
EstoqueDeProducaoEmProcesso.Text:='';
ValorUnitario.Text:='';
TaxaDeJuros.Text:='';
ResultadoDoCustoDeCarregarEstoque.Text:='';
SalarioDoColaborador.Text:='';
DespesasGerais.Text:='';
ResultadoDoCustoFixo.Text:='';
CPV.Text:='';
CustoDaQualidade.Text:='';
CustodoEstoque.Text:='';
CustoFixo.Text:='';
CustoTotal.Text:='';
NumeroDeProdutosBons.Text:='';
ResultadoDoCustoUnitario.Text:='';
end;
Salve o programa e execute.
Nenhum comentário foi encontrado.