Função: tFileDialog
Apresenta uma janela nativa com a estrutura de arquivos do lado do SmartClient.
tFileDialog( [ cMascara], [ cTitulo], [ nMascpadrao], [ cDirinicial], [ lSalvar], [ nOpcoes]) --> cRet
Nome | Tipo | Descrição | Obrigatório | Referência |
cMascara | Caracter | Indica o nome do arquivo ou máscara. | ||
cTitulo | Caracter | Indica o título da janela. Caso o parâmetro não seja especificado, o título padrão será apresentado. | ||
nMascpadrao | Numérico | Indica o número da máscara. | ||
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. |
- (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:
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 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 ".
#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
#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