Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Composition Setup
import.css=/download/attachments/327912/newLayout.css
Portuguese
Função:

Pagetitle
cGetFilecGetFile

tFileDialog

tFileDialog

Apresenta uma janela para seleção nativade comarquivos ada estruturaestação de arquivostrabalho
em douso lado do SmartClient.

tFileDialog( [ cMascara], [ cTitulo], [ nMascpadrao], [ cDirinicial], [ lSalvar], [ nOpcoes]) --> cRet

pelo SmartClient.


Informações
titleObservações
  • Função disponível apenas em builds superiores a 7.00.170117A.
  • A função TFileDialog não deve ser executada em JOB.
  • Essa função não retorna arquivos do Servidor de Aplicação.
  • Função não disponível para Smartclient Webapp (via Browser), nesse caso utilizar a cGetFile.

Sintaxe

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

Parâmetros

Parâmetros/Elementos


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


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


nParam3Numérico
Indica o número da máscara.

Compatibilidade



cDirInicialCarácter
cDirinicialCaracter
Indica o diretório inicial.

lSalvarLógico
Indica se
Se .T. (true) indica que é um "save dialog"
ou

se .F. (false) indica que é um "open dialog".


nOpcoesNumérico
Indica 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.

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.

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 apenas em builds superiores a 7.00.131227A.

Compartilhamentos do Remote Desktop

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 ".

Bloco de código
languagecpp
themeEclipse
titleExemplo
linenumberstrue
#INCLUDE "TOTVS.CH" User Function GetFile1() Local targetDir   targetDir:= cGetFile( '*.txt|*.txt' , 'Textos (TXT)', 1, 'C:\', .F., nOR( GETF_LOCALHARD, GETF_LOCALFLOPPY, GETF_RETDIRECTORY ),.T., .T. )   Alert(targetDir)   Return

Exemplo



Bloco de código
languagecpp
themeEclipse
titleExemplo
linenumberstrue
#INCLUDE "TOTVS.CH"
 
User Function GetFile2FileDlg()
	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
local tmp := getTempPath()
local targetDir:= tFileDialog( "All files (*.*) | All Text files (*.txt) ",;
        'Selecao de Arquivos',, 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