Apresenta uma janela nativa com a estruturapara seleção de arquivos da estação de arquivostrabalho doem ladouso dopelo SmartClient.
Informações |
---|
| Essa função não retorna arquivos do Servidor de Aplicação. |
Sintaxe Bloco de código |
---|
| tFileDialog():New([ cMascara], [ cTitulo], [ nMascpadrao], [ cDirinicial], [ lSalvar], [ nOpcoes]) --> cRet
|
Parâmetros /Elementos
Nome | Tipo | Descrição | Obrigatório | Referência | cMascara | CaracterCarácter | Indica o nome do arquivo ou máscara.a máscara de arquivos, ex: ret := TFileDialog("All files (*.*) | All Text files (*.txt)", ... |
|
| cTitulo | CaracterCarácter | Indica o título da janela. Caso o parâmetro não seja especificado, o título padrão será apresentado. |
|
| nMascpadraonMascPadrao | Numérico | Indica 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.) |
|
| cDirInicial | Carácter | cDirinicial | Caracter | Indica o diretório inicial. |
|
| lSalvar | Lógico | Indica se é um "save dialog" ou um "open dialog". |
|
| nOpcoes | Numé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. |
Informaçõ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: Comandos | Descriçã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 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 " 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 |
---|
language | cpp |
---|
theme | Eclipse |
---|
title | Exemplo |
---|
linenumbers | true |
---|
| #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 |
---|
language | cpp |
---|
theme | Eclipse |
---|
title | Exemplo |
---|
linenumbers | true |
---|
| #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 |