Olá pessoal.
Hoje vamos aprender como usar a função cGetFile através do F3 de um campo ou pergunte, isso pode ser util especialmente quando precisarmos selecionar um arquivo e não queremos digitar todo o caminho, mas sim apenas selecionar.
Abaixo o código fonte onde criamos a função que será utilizada no cadastro da consulta padrão (SXB).
#INCLUDE "TOTVS.CH"
#INCLUDE "RWMAKE.CH"
#INCLUDE "TOPCONN.CH"
#Define ENTER Chr(13)+Chr(10)
/*/{Protheus.doc} SPSF3DIA
Função SPSF3DIA, para exemplificar como selecionar o diretório de um arquivo no SF3.
@param Não recebe parâmetros
@return Patch do arquivo selecionado
@author Rafael Goncalves
@owner sempreju.com.br
@version Protheus 12
@since Mar|2021
/*/
User Function SPSF3DIA(cCampo)
Local cRet := ""
cRet := cGetFile(,"Selecione o diretorio",,"",.T.,GETF_NETWORKDRIVE+GETF_RETDIRECTORY+128)
//Atualiza o campo com o caminho selecionado
&(cCPO) := cRet
Return (!Empty(cRet))
Agora que temos a função responsável por tratar e retornar o arquivo, vamos criar uma consulta padrão que utilizará essa função (tipo da consulta padrão será “especifica”) ao invés de uma tabela. Para isso no configurador, vamos criar o seguinte SXB.
Avançando vamos configurar a nossa função, enviando como parametro a função readvar(), e retornando o valor M->(readvar()).

Agora onde for necessário selecionar um arquivo (campo ou pergunte) através do SF3, vamos usar a nossa nova consulta, para demonstrar adicionei no campo A1_END, e o resultado foi o print abaixo

O código fonte desse e de outros exemplos podem ser encontrados em nosso git oficial.
Post interessantes:
Aprenda a instalar o Protheus no Windows aqui.
Aprenda a instalar o Protheus no Linux aqui.
configurar serviço rest aqui.
Retornar datas por extenso aqui.
Barras de progresso aqui.
Dúvidas e sugestões, entre em contato.
Obrigado e até a próxima!
0 comentário