Abrindo arquivos via AdvPL

Olá pessoal…

Hoje será a primeira postagem abordando a linguagem AdvPL (Advanced Protheus Language), e irei mostrar como abrir arquivos de qualquer extensão via código fonte no Protheus.


Primeiramente, deve se ter o diretório e o nome do arquivo (ex.: C:teste.txt), depois, basta executar o comando ShellExecute via código fonte, passando a instrução open, e o arquivo referenciado, com isso, o Protheus irá pedir ao sistema operacional que abra o arquivo com o programa padrão.

#Include "Protheus.ch"

/*/{Protheus.doc} zAbreArq
Função para abrir arquivos conforme preferências do Sistema Operacional
@author Atilio
@since 06/08/2014
@version 1.0
	@param cDirP, Caracter, Diretório do arquivo
	@param cNomeArqP, Caracter, Nome do arquivo
	@example
	//...
	u_zAbreArq("C:\","teste.txt")
	u_zAbreArq("E:\Documentos\","novo.pdf")
	//...
	@see https://terminaldeinformacao.com/advpl/
/*/

User Function zAbreArq(cDirP, cNomeArqP)
	Local aArea:= GetArea()
	
	//Tentando abrir o objeto
	nRet := ShellExecute("open", cNomeArqP, "", cDirP, 1)
	
	//Se houver algum erro
	If nRet <= 32
		MsgStop("Não foi possível abrir o arquivo " +cDirP+cNomeArqP+ "!", "Atenção")
	EndIf 
	
	RestArea(aArea)
Return

Referências: tdn.totvs.com/display/tec/ShellExecute

Bom pessoal, por hoje é só.
Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

2 Responses

  1. Arthur Lima disse:

    Muito bom o post. Encontrei também um blog com dicas de Protheus, ADVPL e até alguns scritps SQL com recursos para acessar o dadosadv do Protheus

    Parabéns.

    • Dan_Atilio disse:

      Boa noite Arthur.
      Muito Obrigado pelo contato.
      Não costumo postar links de sites que não são meus parceiros, caso faça parte dessa equipe e quiser fazer uma parceria, pode entrar em contato.
      Um grande abraço.

Deixe uma resposta