Nesse vídeo demonstraremos a utilização das funções FWGetSX5 e FWPutSX5, sendo que a primeira serve para buscar dados da tabela genérica e a segunda serve para atualizar.
Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:
//Bibliotecas
#Include "Totvs.ch"
/*/{Protheus.doc} User Function zExe221
Efetua a busca ou a criação / atualização de conteúdos de uma tabela genérica (SX5)
@type Function
@author Atilio
@since 20/02/2023
@see https://tdn.totvs.com/display/public/framework/FWGetSX5 e https://tdn.totvs.com/pages/releaseview.action?pageId=286016719
@obs
Função FWGetSX5
Parâmetros
+ cTable , Caractere , Código da tabela genérica (X5_TABELA)
+ cKey , Caractere , Código da chave de pesquisa X5_CHAVE
+ cIdiom , Caractere , Idioma de pesquisa sendo possível: pt-br; pt-pt; en; es e ru
Retorno
+ xRetorno , Array , Array com as posições [1] Filial ; [2] Tabela ; [3] Chave ; [4] Descrição
Função FWPutSX5
Parâmetros
+ cFlavour , Caractere , Código do Flavour
+ cTable , Caractere , Código da tabela genérica (X5_TABELA)
+ cChave , Caractere , Código da chave (X5_CHAVE)
+ cTextoPor , Caractere , Texto com conteúdo em português (X5_DESCRI)
+ cTextoEng , Caractere , Texto com conteúdo em inglês (X5_DESCENT)
+ cTextoEsp , Caractere , Texto com conteúdo em espanhol (X5_DESCSPA)
+ cTextoAlt , Caractere , Texto do idioma alternativo
Retorno
+ Retorna .T. se conseguiu criar / alterar ou .F. se não
**** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/
User Function zExe221()
Local aArea := FWGetArea()
Local aEstados
Local aSaoPaulo
Local cTabela := ""
Local cChave := ""
Local cConteudo := ""
//Busca a informação de todos os estados
aEstados := FWGetSX5("12")
FWAlertInfo("Foi encontrado " + cValToChar(Len(aEstados)) + " estados", "Teste 1 FWGetSX5")
//Busca somente de 1 estado
aSaoPaulo := FWGetSX5("12", "SP")
//Se houver dados
If Len(aSaoPaulo) > 0
FWAlertInfo("A descrição do estado é '" + aSaoPaulo[1][4] + "'", "Teste 2 FWGetSX5")
EndIf
//Faz a gravação de um conteúdo existente na SX5
cTabela := "01"
cChave := "B"
cConteudo := StrTran(Time(), ":", "")
FwPutSX5(, cTabela, cChave, cConteudo, cConteudo, cConteudo)
//Cria um novo registro na SX5 caso não exista
cTabela := "01"
cChave := "DAN"
cConteudo := "000000001"
FwPutSX5(, cTabela, cChave, cConteudo, cConteudo, cConteudo)
FWRestArea(aArea)
Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.