Á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.
Sintaxe
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

/Elementos


cRet
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.
(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 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



    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