Nesse vídeo demonstraremos a utilização da função OpenSXs, que serve para abrir uma tabela do dicionário de dados (como a SX2, SX3, entre outras).
Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:
//Bibliotecas #Include "TOTVS.ch" /*/{Protheus.doc} User Function zExe377 Realiza a abertura de alguma tabela do dicionário em um alias definido em uma variável @type Function @author Atilio @since 28/03/2023 @obs Função OpenSXs Parâmetros + Objeto que será atualizado enquanto é realizado a abertura da tabela + Objeto (arquivo) que será atualizado enquanto é realizado a abertura da tabela + Define se o processo poderá ser cancelado caso seja uma régua no objeto + Compatibilidade + Código da empresa + Nome do Alias que será usado + Nome da Tabela do dicionário + Objeto do tipo régua que será usado na tela + Define se será encerrado o processo caso não seja encontrado a tabela do dicionário Retorno Função não tem retorno **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao **** /*/ User Function zExe377() Local aArea := FWGetArea() Local cEmpresa := "" Local cAliasSX := "" Local cFiltro := "" Local cMensagem := "" //Define a empresa que vou buscar, o nome do alias que vou usar e o filtro que será aplicado cEmpresa := "99" cAliasSX := "SX3TST" cFiltro := "X3_ARQUIVO $ 'SA1;SA2;' .And. Alltrim(X3_TIPO) == 'D'" //Faz a abertura da tabela do dicionário no alias que foi definido OpenSXs(NIL, NIL, NIL, NIL, cEmpresa, cAliasSX, "SX3", NIL, .F.) //Aplica o filtro no alias e posiciona no topo (cAliasSX)->(DbSetFilter({|| &(cFiltro)}, cFiltro)) (cAliasSX)->(DbGoTop()) //Percorre os dados e incrementa a mensagem While ! (cAliasSX)->(EoF()) cMensagem += "+ " + (cAliasSX)->X3_CAMPO + " (" + (cAliasSX)->X3_TITULO + ")" + CRLF (cAliasSX)->(DbSkip()) EndDo (cAliasSX)->(DbCloseArea()) //Exibe a mensagem em tela cMensagem := "Campos do Tipo Data que foram encontrados: " + CRLF + cMensagem ShowLog(cMensagem) FWRestArea(aArea) Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.