Página 1 de 1

Mascara de CPF/CNPJ ao digitar

Enviado: 18 Fev 2016 10:21
por Paulo_CPV
Bom dia, colegas!

Gostaria de saber como eu faço para quando o usuário digitar o número do CPF/CNPJ já vá colocando os pontos e traço do mesmos. Isto no controle TextBox ou GetBox.

Abraços,

Paulo - Jacareí/SP

Mascara de CPF/CNPJ ao digitar

Enviado: 18 Fev 2016 12:55
por Toledo
Amigo, segue um exemplo:

Código: Selecionar todos

     DEFINE GETBOX oCpf
            ROW    250
            COL    130
            WIDTH  140
            HEIGHT 20
            VALUE SPACE(14)
            PICTURE "@R 999.999.999-99"
            MESSAGE "Informe o número do CPF do Cliente"
            FONTNAME 'Arial'
            TOOLTIP "Número do CPF do Cliente"
     END GETBOX  

Código: Selecionar todos

     DEFINE TEXTBOX oCpf
             ROW    250
             COL    130
             WIDTH  140
             HEIGHT 20
             FONTNAME "Arial"
             FONTSIZE 9
             TOOLTIP "Número do CPF do Cliente"
             MAXLENGTH 14
             INPUTMASK "999.999.999-99"
             VALUE ""
      END TEXTBOX
Abraços,

Mascara de CPF/CNPJ ao digitar

Enviado: 23 Fev 2016 11:46
por Paulo_CPV
Bom dia, Toledo!

Em primeiro lugar muito obrigado pela sua atenção para o meu questionamento. Mas que eu queria mesmo se é possível ser feito.

Quando o usuário for no campo especifico para o CPF ou CNPJ, ele vai digitando o número 132.,quando ele digitar o próximo já colocar o ponto e depois o número seguinte até o seu terminemo, sem a mascara.

Espero que eu tenho lhe esclarecido. Uso o Minigui Extend 16.02.

Abraços,

Paulo - Jacareí/SP

Mascara de CPF/CNPJ ao digitar

Enviado: 23 Fev 2016 19:50
por Toledo
Amigo, não sei se entendi direito, mas segue um exemplo:

Código: Selecionar todos

#include "minigui.ch"

Function Main()

SET NAVIGATION EXTENDED

   DEFINE WINDOW Form_1 ;
      AT 0,0 ;
      WIDTH 400 HEIGHT 180 ;
      TITLE 'Simulando mascara CPF ou CNPJ' ;
      MAIN

      DEFINE LABEL Label_1
        ROW	10
        COL	10
        WIDTH	300
        VALUE 'Campo para CPF'
      END LABEL

      DEFINE TEXTBOX Text_1
        ROW	30
        COL	10
        WIDTH	180
        MAXLENGTH 14
        ON CHANGE {|| SetMask(This.Value,"999.999.999-99") }
        TOOLTIP "Informe o CPF"
      END TEXTBOX

      DEFINE LABEL Label_2
        ROW	66
        COL	10
        WIDTH	300
        VALUE 'Campo para CNPJ'
      END LABEL

      DEFINE TEXTBOX Text_2
        ROW	86
        COL	10
        WIDTH	180
        MAXLENGTH 18
        ON CHANGE {|| SetMask(This.Value,"99.999.999/9999-99") }
        TOOLTIP "Informe o CNPJ"
      END TEXTBOX

   END WINDOW

   Form_1.Center
   Form_1.Activate

Return Nil

************************************
Function SetMask(cCampo,cMask)
Local cFrmName   := ThisWindow.Name, cCmpName   := This.FocusedControl
Local cCmp_ := StrTran(Alltrim(cCampo),".",""), nTamMsk, cCmpRet, i_, cPos
cCmp_ := StrTran(cCmp_,"-","")
cCmp_ := StrTran(cCmp_,"/","")
If !Empty(cCmp_)
   nTamMsk:=1
   cCmpRet:=""
   For i_=1 to Len(cCmp_)
      cPos:=SUBS(cCmp_,i_,1)
      If !IsDigit(cPos)
         Exit
      Endif
      If SUBS(cMask,nTamMsk,1)=="9"
         cCmpRet+=cPos
      else
         cCmpRet+=SUBS(cMask,nTamMsk,1)+cPos
         nTamMsk+=1
      endif
      nTamMsk+=1
   Next
   SetProperty( cFrmName, cCmpName, "Value", Left(cCmpRet+Spac(Len(cMask)),Len(cMask)) )
   SETFOCUS &(cCmpName) OF &(cFrmName)
   SetProperty( cFrmName, cCmpName, "CaretPos", Len(cCmpRet)+1 )
Endif
Return Nil
Abraços,

Mascara de CPF/CNPJ ao digitar

Enviado: 24 Fev 2016 08:08
por Paulo_CPV
Bom dia, Toledo!

Mas uma vez obrigado pela sua ajuda, era isso mesmo que eu queria.

Abraços,

Paulo - Jacareí/SP