Função para adicionar zeros a esquerda em um campo (como número do Documento de Entrada)

Olá pessoal…

Hoje vou mostrar para vocês uma função que criei para preencher zeros a esquerda em um campo (por exemplo, número do Documento de Entrada).

Essa função deve ser colocada dentro do Valid do campo, nesse caso em específico do valid do campo F1_DOC, porém se você quiser adaptar o fonte, basta alterar qual é o campo no fonte, e como no Documento de Entrada é tratado com a variável cNFiscal, ela também não existirá.

Essa função funciona assim, caso tenha nota fiscal preenchida na variável cNFiscal, é retirado os espaços em branco, e é adicionado o caracter ‘0’ a esquerda conforme tamanho do campo. Depois a tela é atualizada com GetDRefresh.

//Bibliotecas
#Include "Protheus.ch"

/*/{Protheus.doc} zF1Doc
Função que preenche os zeros a esquerda do documento de uma nota de entrada
@author Atilio
@since 17/12/2017
@version 1.0
@type function
/*/

User Function zF1Doc()
	Local aArea    := GetArea()
	Local nTamanho := TamSX3('F1_DOC')[01]
	Local lRet     := .T.

	//Se tiver nota fiscal digitada
	If !Empty(cNFiscal)
		//Tira os espaços, depois, adiciona zeros a esquerda conforme tamanho do campo
		cNFiscal  := Alltrim(cNFiscal)
		cNFiscal  := PadL(cNFiscal, nTamanho, '0')
		M->F1_DOC := cNFiscal

		//Dá um Refresh nos campos da Tela
		GetDRefresh()
	EndIf
	
	RestArea(aArea)
Return lRet

Bom pessoal, por hoje é só.
Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

7 Responses

  1. Opa Dani
    Um STRZERO também não resolveria ?

  2. Edson disse:

    Boa tarde povo, tudo bem…tem outra função que descobri que é nativa do protheus, soh colocar no campo que funciona…segue FG_StrZero(“CNFISCAL”,9), coloca no campo F1_DOC VAL.USUÁRIO…

  3. Jony disse:

    Maravilha!
    Depois devo colocar o nome da função no valid do campo?

  4. Edson disse:

    Bom dia, informe este comando FG_StrZero(“CNFISCAL”,9),

Deixe uma resposta para Rafael AlmeidaCancelar resposta

Terminal de Informação