Programação:Aplicativo que gera mensagens de cobrança [ExemploDelphi]

Olá

Criamos mais um aplicativo bem simples, com o intuito de mostrar o poder da linguagem Delphi.

Imagine uma empresa de cobrança, que precisa enviar torpedos ou email de cobrança para os devedores. Neste nosso exemplo, apenas focamos na parte da geração das mensagens.

A tela do aplicativo é dividida em 3(três) partes:

Parte 1) Digitar os dados: Nome, Sexo, Vencimento da fatura e Valor

Parte 2) Texto modelo contendo as variáveis que serão substituídas pelos dados digitados. Exemplo no campo [NOME] será trocado pelo nome digitado, e assim por diante

Parte 3) Ao clicar no botão “Gerar mensagem formatada” o aplicativo irá substituir os campos(entre colchetes) pelos dados digitados, mostrando o texto formatado.

Veja trecho do código fontes em Delphi:

Código do fonte do botão Gerar

procedure TFormTela.ButtonGerarClick(Sender: TObject);

    //sub procedure que chama a funcao
    Procedure Mostrar_Texto_Formatado;
     Begin

           MemoTextoFormatado.Lines.Clear;

           //chama funcao que pega os dados de cobranca e retorna o texto formatado
           MemoTextoFormatado.Lines.AddStrings( Formata_Mensagem_Texto( EdNome.Text,
                                                                        DateEdVencimento.DateTime,
                                                                        NumberBValor.Value,
                                                                        MemoTextoModelo.Lines.Text,
                                                                        LabelDataAtual.Text,
                                                                        ComboBSexo.Selected.Text
                                                                      )

                                              );

     End;

begin

    //chamando a sub procedure
    Mostrar_Texto_Formatado;

end;

Código fonte da função que formata a mensagem

function TFormTela.Formata_Mensagem_Texto(Nome: String; Vencimento: TDatetime;
  Valor: Real; TextoModelo: String; DataAtual : String; Sexo : String): TStringList;
Var
   TextoTrabalhoTemp : String;
   TextoFormatadoFinal : TStringList;

   //formata data de vencimento
   Function Data_Vencimento( dData : TdateTime ) : String;
    Begin

      Result := FormatDateTime( ‘dd/mm/yyyy’, dData );

    End;

    //variaveis de trabalho
    Procedure Configurar_Variaveis_Iniciais;
     Begin

       TextoFormatadoFinal := TStringList.Create;
       TextoTrabalhoTemp := TextoModelo;

     End;

     //formata o valor da prestacao
     Function Valor_Moeda (  Valor : Real ) : String;
      Begin

          Result := FormatFloat( ‘#,##0.00’, Valor );

      End;

      //substitui os campos pelos dados digitados
    Procedure Substituir_Os_Campos;
     Begin

        if ( Sexo = ‘Masculino’ ) then
         Begin
           TextoTrabalhoTemp := StringReplace( TextoTrabalhoTemp, ‘Prezada senhora’, ‘Prezado senhor’, [] );
         End;

        //troca cada campo pelo correspondente digitado
        TextoTrabalhoTemp := StringReplace( TextoTrabalhoTemp, ‘[NOME]’, UpperCase( Nome ), [] );

        TextoTrabalhoTemp := StringReplace( TextoTrabalhoTemp, ‘[VENCIMENTO]’, Data_Vencimento( Vencimento ) , [] );

        TextoTrabalhoTemp := StringReplace( TextoTrabalhoTemp, ‘[VALOR]’, Valor_Moeda( Valor ), [] );

        TextoTrabalhoTemp := StringReplace( TextoTrabalhoTemp, ‘[DATA]’, DataAtual, [] );

        TextoFormatadoFinal.Add( TextoTrabalhoTemp );

     End;

begin

    Configurar_Variaveis_Iniciais;

    Substituir_Os_Campos;

    //texto formatado
    Result := TextoFormatadoFinal;

end;

Caso queira uma cópia do código fonte completo, envie email para canaldevbr@outlook.com

O objetivo deste post, é ilustrar o uso do Delphi numa situação bem comum numa empresa de cobrança ou departamento financeiro.

Em caso de dúvidas, sugestões ou críticas entre em contato.

Vamos nos divertir com o Delphi!TelaAplicativoMensagemPreenchida

Empresário, sofria bullying porque gostava de estudar

Olá

Mais um post do blog pme do estadão, que pode nos ensinar muito:

http://blogs.pme.estadao.com.br/blog-do-empreendedor/elon-musk-sofreu-bullying-porque-gostava-de-estudar-qual-foi-sua-resposta-para-seus-agressores/

É uma história inspiradora para todos, mas na visão deste blog, é importante os desenvolvedores de software terem contato com o mundo dos negócios, e com isso criar aplicativos mais úteis.

Se as empresas fazem negócios, e criamos softwares para as empresas, nada mais natural do que aprender um pouco mais sobre este mundo. O universo dos desenvolvedores não deve ser composto exclusivamente por códigos fontes.

Amigo, desenvolvedor vamos expandir nossos horizontes.

Oportunidade:86% da população da América Latina terá smartphones em 2020, diz pesquisa

Olá

Veja nesta pesquisa(publicada no portal IdgNow) da Ericson o expressivo avanço dos smartphones na América Latina(onde o Brasil tem um peso importante) até 2020.

http://idgnow.com.br/mobilidade/2015/06/05/86-da-populacao-da-america-latina-tera-smartphones-em-2020-diz-pesquisa/

Isto é importante para todos

– Uma população mais conectada, tende a ser mais informada

– Mais negócios explorando a mobilidade

– Mais oportunidades para os desenvolvedores de aplicativos

Vamos torcer, para que este cenário se concretize.

Planning Poker – Técnica divertida para estimar software [VÍDEO]

Olá

Você sabe como estimar software ? Veja este vídeo(26 minutos) do youtube sobre Planning Poker, uma técnica ágil de estimativa de software:

Tenha cautela com prazos, procure considerar todos os fatores:

– Complexidade técnica(muitas vezes invisível, tem sempre aquela API)

– Na maioria das vezes, descobrimos coisas sobre o requisitos no meio do desenvolvimento

– Tamanho da equipe e diferenças de nível entre os membros

– Tempo para analisar/discutir melhor o problema

– Testes unitários

– Refatorar(obrigatório)

– Problemas inesperados de todas as naturezas(saída ou troca de desenvolvedor, problema em computadores, etc)

– Etc

Dica deste blog: Forneça um prazo maior, e procure entregar antes(sempre mantenha o cliente informado do andamento).

Lembre-se também de um dos princípios manifesto ágil: “Entregar software funcionando com frequência, na escala de semanas até meses, com preferência aos períodos mais curtos”. Ou seja não existe o “rapidim”, embora muitos queiram isso.

É um tremendo desafio para qualquer desenvolvedor!

Recall de software, alguém já ouviu falar ?

Olá

Todos nós que acompanhamos os jornais/sites, vemos frequentemente notícias sobre o recall na indústria automobilística.

Eles fazem isso normalmente, ou seja, ao ser identificado um problema, a montadora avisa aos consumidores(via rádio/tv/jornais de grande circulação, etc), corrige o problema(antes que algo pior aconteça) e vida segue.

Ninguém gosta de vender carros com problemas, mas, eles acontecem, e o recall serve justamente para corrigir esta falha, e tentar melhorar o processo.

Agora, e as empresas de software, fazem recall? ou disponibilizam services packs(meio que escondidos). Precisamos mudar isso: errou, corrija. Sem culpados, sem alvoroço, sem estresse, sem drama, etc.. Procure aprender com o erro, melhorar o processo e ponto.

Podemos começar de maneira bem simples: Cada desenvolvedor(eu por exemplo), assumindo o erro, avisando ao cliente e corrigindo o problema. Passado isso, tentar melhorar o processo de desenvolvimento, e isto requer tempo.

E uma forma de minimizar isto, é falar francamente com o cliente, explicar de maneira clara, desde que o mesmo queira ouvir. Por isso software, é uma obra coletiva= cliente + desenvolvedor+boa vontade de ambos os lados.

Na opinião deste blog, um dos grande geradores de bugs(defeitos), é a pressa insana. Software e pressa não combinam.

E ainda temos a possibilidade, de durante o problema tentar oferecer um alternativa para minimizar o impacto para o cliente. ficar por “perto” , etc.

Desenvolvimento de software, requer concentração, foco, trabalho árduo, testes, feedback e tempo. A expressão “pra ontem” não faz o menor sentido.

Vamos tentar melhorar nossos processos em beneficio de todos os envolvidos.

Pensem a respeito.