Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

cMascara

Informa descrição da máscara e máscara no formato "descrição|máscara".

Exemplos:

All Text files (*.txt)

É possível especificar vários pares de descrição|máscara.

Exemplo:

"<Descrição do tipo de arquivo A>(*.<Extensão 1> *.<Extensão 2>) | <Descrição do tipo de arquivo B>(*.<Extensão 3> *.<Extensão 4>)"

Se não for informada uma máscara, o campo poderá ser editado pelo usuário a fim de especificar o filtro/máscara que desejar

Disponível No caso da função "cGetFile" precisar apresentar diretórios compartilhados via "Remote Desktop" o usuário deve mapear o endereço de rede \\tsclient\<nome da pasta compartilhada> e habilitar a opção "GETF_NETWORKDRIVE "
Portuguese

Pagetitle
tFileDialog
tFileDialog

Função: tFileDialog
Apresenta uma janela nativa com a estruturapara seleção de arquivos da estação de arquivostrabalho doem ladouso dopelo SmartClient.


Informações
titleImportante

Essa função não retorna arquivos do Servidor de Aplicação.

Sintaxe

Bloco de código
collapsefalse
tFileDialog():New([ cMascara], [ cTitulo], [ nMascpadrao], [ cDirinicial], [ lSalvar], [ nOpcoes]) --> cRet

Parâmetros

/Elementos


NomeTipoDescriçãoObrigatórioReferência
cMascaraCaracterCarácterIndica o nome do arquivo ou máscara.a máscara de arquivos, ex:
ret := TFileDialog("All files (*.*) | All Text files (*.txt)", ...


cTituloCaracterCarácterIndica o título da janela. Caso o parâmetro não seja especificado, o título padrão será apresentado.

nMascpadraonMascPadraoNuméricoIndica

Se preenchido parâmetro cMascara, este indicará o número da máscara

.

padrão, sendo um parâmetro base zero
onde caso selecionado 0, será selecionado o primeiro item da mascara.

No exemplo abaixo preenchemos duas mascaras, "Todos Arquivos" e "Arquivos de Texto", ao preencher
o parâmetro nMascPadrao como 1 o tipo de arquivo padrão será automaticamente "All Text files".
tFileDialog( "All files (*.*) | All Text files (*.txt) ", 'Arquivos', 1, "c:/tmp",.F.)



cDirInicialCaráctercDirinicialCaracterIndica o diretório inicial.

lSalvarLógicoIndica se é um "save dialog" ou um "open dialog".

nOpcoesNuméricoIndica a opção de funcionamento. Para mais informações das funcionalidades disponíveis, consulte a área Observações.
cRet
    (caracter)
  • Retorna o nome do item. Caso nenhum item tenha sido selecionado, o retorna será uma string vazia.

Caso parâmetro não seja preenchido será possível selecionar apenas um arquivo, ex:
ret := TFileDialog("All(*.*)",'Arquivos',0,"/tmp",.F.)

Caso utilizado o parâmetro  GETF_MULTISELECT será possível selecionar múltiplos arquivos, ex:
ret := TFileDialog("All(*.*)",'Arquivos',0,"/tmp",.F.,GETF_MULTISELECT)

Caso utilizado o parâmetro GETF_RETDIRECTORY será possível selecionar apenas diretórios, ex:
ret := TFileDialog("All(*.*)",'Arquivos',0,"/tmp",.F.,GETF_RETDIRECTORY)



Retorno

Nome

Tipo

Descrição

cRet

Caracter

Retorna o(s) arquivo(s) selecionados ou diretórios.
para mais informações leia sobre o parâmetro nOpcoes da função.

Informações
titleObservações

Função disponível

A função tFileDialog exige que o programa AdvPL que a execute seja um SmartClient, não permitindo, portanto, que seja chamada em JOB. Caso a função seja chamada em JOB, o programa será finalizado com ocorrência de erro fatal "Function tFileDialog() doesn't available in JOB.". Nas builds anteriores, se a função fosse chamada em JOB, era apresentada uma mensagem de erro de comunicação com o SmartClient.

No parâmetro <nOpções>, é possível determinar as seguintes funcionalidades:

ComandosDescrição
 GETF_MULTISELECT (2)Permite selecionar mais de 1 arquivo no padrão "arquivo1 | arquivo2 | arquivo3"
Observação: Não compativel com o comando "GETF_RETDIRECTORY" e com a edição do "Nome do Arquivo".
 GETF_RETDIRECTORY (128)Retorna/apresenta um diretório.

apenas em builds superiores a 7.00.170117A.

Compartilhamentos do Remote Desktop

A função TFileDialog não deve ser executada em JOB.



Bloco de código
languagecpp
themeEclipse
titleExemplo
linenumberstrue
#INCLUDE "TOTVS.CH"
 
User Function FileDlg()
	Local targetDir
 
	local tmp := getTempPath()
local targetDir:= tFileDialog( "All Text files (*.txt*) | All DocText files (*.doctxt)",'Selecao de Arquivos',0,'C:\totvs',.F., GETF_MULTISELECT)
 
	Alert(targetDir)
 
Return
Bloco de código
languagecpp
themeEclipse
titleExemplo
linenumberstrue
#INCLUDE "TOTVS.CH"

User Function GetFile2()
	Local cMascara	:= "Todos os arquivos|."
	Local cTitulo	:= "Escolha o arquivo"
	Local nMascpad	:= 0
	Local cDirini	:= "\"
	Local lSalvar	:= .F. /*.T. = Salva || .F. = Abre*/
	Local nOpcoes	:= GETF_LOCALHARD
	Local lArvore	:= .F. /*.T. = apresenta o árvore do servidor || .F. = não apresenta*/
	Local resourceName:= "totvs.png"
	Local path := "\images\"
	Local fileName:= path + resourceName
	Local targetDir
	Local sucess

	If (!Resource2File(resourceName, fileName))
		Alert("Erro ao copiar o arquivo do repositorio!")
	EndIf

	If (GetRemoteType() == REMOTE_HTML)
		sucess:= (CpyS2TW(fileName, .T.) == 0)
	Else
		targetDir := cGetFile( cMascara, cTitulo, nMascpad, cDirIni, lSalvar, nOpcoes, lArvore)
		sucess:= CpyS2T(fileName, targetDir)
	Endif

	If (sucess)
		If (GetRemoteType() == 5)
			Alert("Arquivo ''" + resourceName + "' enviado para download! " + CRLF + "Verifique se o browser nao bloqueou o popup!")
		Else
			Alert("Arquivo ''" + resourceName + "' copiado com sucesso para '" + targetDir + "'!")
		EndIf
	Else
		Alert("Erro ao copiar o arquivo ''" + resourceName + "'!")
	Endif
Return
Exemplo da função cGetFile()
Image Removed
 ",;
        'Selecao de Arquivos', 0, tmp, .F., GETF_MULTISELECT )

    msgAlert(targetDir)
return

Preview


A visualização desta janela será diferente para cada sistemas operacional, abaixo os exemplos rodando em Windows e Linux:

Image Added

Image AddedAdvanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server