Tempo de leitura: 1 minuto
Olá, no post de hoje iremos falar da função FormatIn. FormatIn é uma das funções de manipulação de string em ADVPL, seu objetivo é formatar uma string passada como parâmetro e deixá-la pronta para ser utilizada no operador IN de uma query SQL.
Sintaxe:
FormatIn( <cString>, <cSep> )
Parâmetro(s):
Retorno:
Exemplo em ADVPL:
#Include "protheus.ch"
#Include "totvs.ch"
#Include "topconn.ch"
#Include "tbiconn.ch"
#Define CRLF Chr(13)+Chr(10) //Definição para quebra de linha
/*{Protheus.doc} User Function fFormatIn
(Essa função tem por finalidade mostrar a função de Manipulação de String FormatIn em ADVPL)
@type Function
@author Adilio Costa
@since 13/07/2023
@version Protheus 12.1.2210
@site https://www.protheusadvpl.com.br
@canal https://www.youtube.com/protheusadvpl
@instagram https://www.instagram.com/protheusadvpl
@Portal ProtheusAdvpl:https://hotmart.com/pt-br/marketplace/produtos/portal-protheusadvpl/O10336806O
@Post:fFormatIn
*/
//Exemplo da função FormatIn
User Function fFormatIn()
Local cMsg := ""
//String a ser formatada
Local cString := "000001;000002;000003;000004;000005"
//Separador utilizado na string
Local cSep:=";"
//String formatada
Local cStrForm := FormatIn(cString,cSep)
Local cQuery := ""
PREPARE ENVIRONMENT EMPRESA '99' FILIAL '01'
cQuery := " SELECT * FROM "+RetSqlName("SA2") + " SA2 "
cQuery += " WHERE A2_FILIAL ='" + FWxFilial("SA2") + "' AND SA2.D_E_L_E_T_ = ' ' "
//Utilização da string formatada dentro do operador IN
cQuery += "A2_COD IN "+cStrForm+ " "
cMsg:= "String antes da formatação:" + cString + CRLF
cMsg+= "String depois da formatação:" + cStrForm + CRLF
cMsg+= "Query montada com a string formatada:" + cQuery
ConOut(cMsg)
Return
Bem, finalizamos mais um post aqui no blog, espero que você tenha entendido. Qualquer dúvida pode deixar seu comentário ou envie um e-mail para adiliocosta@protheusadvpl.com.br. Grande abraço e fica com Deus.
Links de referências:
- https://terminaldeinformacao.com/knowledgebase/formatin/
- https://devadvpl.com.br/como-usar-a-funcao-formatin/