Page tree
Skip to end of metadata
Go to start of metadata

Função: tFileDialog

Apresenta uma janela nativa com a estrutura de arquivos do lado do SmartClient.

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


NomeTipoDescriçãoObrigatórioReferência
cMascaraCaracterIndica o nome do arquivo ou máscara.

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

nMascpadraoNuméricoIndica o número da máscara.

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

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


Exemplo
#INCLUDE "TOTVS.CH"
 
User Function FileDlg()
	Local targetDir
 
	targetDir:= tFileDialog( "All Text files (*.txt) | All Doc files (*.doc)",'Selecao de Arquivos',0,'C:\totvs',.F., GETF_MULTISELECT)
 
	Alert(targetDir)
 
Return
Exemplo
#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()
Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server


  • No labels