Categoria: Funções e Procedimentos

Função que formata o número de telefone

Algum tempo atrás precisava de uma função para um sistema de delivery, onde você passa como parâmetro o numero de telefone e a função verifica se é de celular ou fixo, se existe DDD ou não, verifica se existe o 9 digito e retorna o numero formatado.

Segue abaixo:

function Tformata_tel(cTexto: string): string;
// Variavel cDDDPadrao é um parametro do meu sistema.
// assim se o operador nao digitar o DDD para agilizar o pedido se nao tiver bina, ele completa com o DDDPadrao automaticamente
begin
   if Length(Trim(ctexto)) = 0 then
      begin
       Result := '';
      end
   else if Length( SoNumero(cTexto) ) = 8 then  // fixo
      begin
         if (strtoint(copy(SoNumero(cTexto),0,1)) >= 6) and (strtoint(copy(SoNumero(cTexto),0,1)) <= 9) then //é um celular
            Result := '('+cDDDPadrao+')'+'9'+copy(SoNumero(cTexto),0,4)+'-'+copy(SoNumero(cTexto),5,4)
         else
            Result := '('+cDDDPadrao+')'+copy(SoNumero(cTexto),0,4)+'-'+copy(SoNumero(cTexto),5,4)
      end
   else if Length( SoNumero(cTexto) ) = 9 then //celular
      Result := '('+cDDDPadrao+')'+copy(SoNumero(cTexto),0,5)+'-'+copy(SoNumero(cTexto),6,4)
   else if Length( SoNumero(cTexto) ) = 10 then  // fixo com ddd
      begin
        if (StrtoInt(copy(SoNumero(cTexto),3,1)) >= 6)  and (StrtoInt(copy(SoNumero(cTexto),3,1)) <= 9) then //celular
           Result := '('+copy(SoNumero(cTexto),0,2)+')'+'9'+copy(SoNumero(cTexto),3,4)+'-'+copy(SoNumero(cTexto),7,4)
        else
           Result := '('+copy(SoNumero(cTexto),0,2)+')'+copy(SoNumero(cTexto),3,4)+'-'+copy(SoNumero(cTexto),7,4)
      end
   else if Length( SoNumero(cTexto) ) = 11 then  //celular com ddd
      Result := '('+copy(SoNumero(cTexto),0,2)+')'+copy(SoNumero(cTexto),3,5)+'-'+copy(SoNumero(cTexto),8,4)

end;

Observe que dentro dela, existe a chamada de outra função onde verifico retorna apenas os números da string “SoNumero”:

function SoNumero(fField: String): String;
var
  I : Byte;
begin
   Result := '';
   for I := 1 To Length(fField) do
       if fField [I] In ['0'..'9'] Then
            Result := Result + fField [I];

end;

Fonte: https://www.teleco.com.br/num.asp

Função para retornar o valor de um campo auto-incremento

Recebi muitos e-mails de amigos inscritos no meu blog e no canal do youtube com perguntas:

Como saber o próximo número do auto-increment?
como recuperar último código de um auto-incremento ?
Como saber o próximo valor do auto incremento?

###### Clique no GOSTEI ! isso me ajuda muito ! #############

Neste vídeo vou mostrar como criar uma função para retornar o valor do campo auto incremento e como definir o valor do próximo incremento.

###### Função  #####

Uses db; // Declare USES DB

//Private ou Public
function RetornaAutoINC(cTabela, cCampoAI: String; vAtribui:variant):Variant;


        //Função:

function RetornaAutoINC(cTabela, cCampoAI: String; vAtribui:variant): Variant;
var
  vResultaAutoIncrimento : Variant; // resultado do incremento
  nQTD : Variant;   // Variável para próximo incremento
begin
  nQTD:=vAtribui; // atribuição a variavel nQTD o valor do próximo incremento obtido pelo parametro da funcao
  TabGlobal.SqlAutoInc.Close; // fecha Query
  TabGlobal.SqlAutoInc.sql.Clear; // limpa Query
  TabGlobal.SqlAutoInc.SQL.Add(‘Select Max(‘+cCampoAI+’) as nCocInc from ‘+cTabela); // escreve nova query com parametros recebido da funcao
  TabGlobal.SqlAutoInc.Open; // abre a nova query
  case TabGlobal.SqlAutoInc.Fields[0].DataType of
    ftSmallint, ftWord, ftInteger: // se o campo AI for SmallInt, Word ou Integer
      vResultaAutoIncrimento := TabGlobal.SqlAutoInc.Fields[0].AsInteger + nQtd;
    ftFloat, ftCurrency: // Se o campo for Float ou Currency
      vResultaAutoIncrimento := TabGlobal.SqlAutoInc.Fields[0].AsFloat + nQtd;
  end;
  TabGlobal.SqlAutoInc.Close; // fecha query
  Result := vResultaAutoIncrimento; // retornar o campo Resultado Auto INc
end;

###### Assista o vídeo #######

Estoque e Vendas: Criar INI para configuração do DB

Nesta vídeo aula vou mostrar como criar arquivo INI. Criar o formulário de configuração do caminho da base de dados e do hostname.
Configurar a conexão para receber os parametros do INI.
Se gostou deste vídeo clique em Gostei isso ajuda a manter meu trabalho aqui com estes vídeos. MUITO OBRIGADO !

Código fonte do Projeto Inteiro: http://www.mediafire.com/download/z1brf9k8rzrkp5p/Vendas_07082016.rar

Assista o vídeo:

Aprenda validar CNPJ, CPF e alinhar strings

Nesta vídeo aula vamos trabalhar com funções para validação de CPF e CNPJ. Além disso também vamos trabalhar com funções de alinhamento de texto.

Apenas Números
http://www.mediafire.com/download/5lil24bbkl1tyx9/ApenasNumeros.txt

Alinhamento
http://www.mediafire.com/download/55edvh15ee774hw/Alinhamento.txt
CNPJ CPF
http://www.mediafire.com/download/q5kexov72oywsyn/Cpf_Cnpj.TXT

Assista o vídeo: