Como criar uma Consulta Padrão para seleção de arquivos em AdvPL

Olá pessoal…

Hoje vou mostrar como criar uma consulta padrão (SXB) usando uma função de usuário para pegar arquivos CSV.

Primeiramente, será necessário compilar a função zChooseFile, que está disponível no link – Função para selecionar arquivos via Windows Explorer utilizando AdvPL.

Após compilar ela, crie a seguinte função:

//Bibliotecas
#Include "Protheus.ch"

/*/{Protheus.doc} zChooseCSV
Função para selecionar arquivos CSV
@author Atilio
@since 15/10/2018
@version undefined
@type function
@see https://terminaldeinformacao.com/2017/11/21/funcao-para-selecionar-arquivos-windows-explorer-utilizando-advpl/
/*/

User Function zChooseCSV()
	Local aArea      := GetArea()
	Local lRet       := .F.
	Public __cResult := u_zChooseFile("Arquivos Importaveis (*.csv)|*.csv")

	//Se tiver resultado, prossegue como verdadeiro o retorno
	If ! Empty(__cResult)
		//Tira espaços em branco e o -Enter-
		__cResult := StrTran(__cResult, Chr(10))
		__cResult := StrTran(__cResult, Chr(13))
		__cResult := Alltrim(__cResult)

		lRet := .T.
	EndIf

	RestArea(aArea)
Return lRet

Agora, abra o Configurador, vá em Base de Dados, e em Consultas Padrão, clique em Adicionar. Dê um nome e uma descrição para ela, e escolha a opção Consulta Específica.

Criando a consulta

Escolha uma tabela qualquer, como a SX5. Na expressão, coloque a chamada da função, por exemplo, u_zChooseCSV(). E no retorno, coloque a variável pública criada, __cResult.

Definindo parametrizações da consulta

Agora basta vincular nas perguntas ou em algum outro F3 (Lupa). Ao acionar a lupa, será mostrado a seguinte tela.

Selecionando arquivo

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan_Atilio
Analista e desenvolvedor de sistemas. Técnico em Informática pelo CTI da Unesp. Graduado em Banco de Dados pela Fatec Bauru. Entusiasta de soluções Open Source e blogueiro nas horas vagas.

2 Responses

  1. Diego Sousa - Inativo disse:

    Fala, Dan, mais um ótimo post, eu uso esse seu seletor tem um tempo, tenho uma pergunta, tem algumas maneira de chamar esse seletor, mas que tenha a funcionalidade do preview na janela? Alguns seletores do windows tem a capacidade de mostrar o preview da foto, por exemplo.
    Parabéns pelo trabalho, como sempre de alto nível!

Deixe uma resposta