Função: cGetFileApresenta uma janela com os diretórios disponíveis, na estação e no servidor, e retorna o nome do item. cGetFile ( [ cMascara], [ cTitulo], [ nMascpadrao], [ cDirinicial], [ lSalvar], [ nOpcoes], [ lArvore], [ lKeepCase] ) --> 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 | save open | |
|
| nOpcoes | Numérico | Indica a opção de funcionamento. Para mais informações das funcionalidades disponíveis, consulte a área Observações. |
| |
|
| lArvore | Lógico | Indica se, verdadeiro (.T.), apresenta o árvore do servidor; caso contrário, falso (.F.). |
| |
|
| lKeepCase | Lógico | Indica se, verdadeiro (.T.), mantém o case original; caso contrário, falso (.F.). |
| |
cRet(caracter)- Retorna o nome do item. Caso nenhum item tenha sido selecionado, o retorna será uma string vazia.
- A partir da versão 7.00.170117A - 17.2.0.2 o nome do item irá retornar com a extensão selecionada, ou seja, quando o usuário digitar o nome de um arquivo (caso seja um "save dialog"), cRet já será com a extensão selecionada (cMascara).
Quando o parâmetro lArvore for verdadeiro (.T.) somente as pastas do rootpath do servidor serão acessíveis. A função cGetFile exige que o programa AdvPL que a execute seja um SmartClient, não permitindo, portanto, que seja chamada em JOB. A partir da build 7.00.131227A com data de geração superior a 06/04/2016, caso a função seja chamada em JOB, o programa será finalizado com ocorrência de erro fatal "Function cGetFile() 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) | Compatibilidade | 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_NOCHANGEDIR (4) | Não permite mudar o diretório inicial. | GETF_LOCALFLOPPY (8) | Apresenta a unidade do disquete da máquina local. | GETF_LOCALHARD (16) | Apresenta a unidade do disco local. | GETF_NETWORKDRIVE (32) | Apresenta as unidades da rede (mapeamento). Ao executar o SmartClient com um usuário diferente do usuário logado na sessão no Windows os drives de Rede não serão apresentados. | GETF_SHAREWARE (64) | Não implementado. | GETF_RETDIRECTORY (128) | Retorna/apresenta um diretório. | GETF_HIDDENDIR (256)* | Mostra arquivos e pastas ocultas | GETF_SYSDIR (512)* | Mostra arquivos e pastas do sistema |
Se o cInitialDir apontar para um diretório oculto ou de sistema, lembre-se de habilitar as opções correspondentes. * Os dois parâmetros só estão disponível em builds superiores a 7.00.131227A. cMascara Informa descrição da máscara e máscara no formato "descrição|máscara". Exemplos: "Arquivos de texto|*.txt" "*.txt | *.txt"
É possível especificar vários pares de descrição|máscara. Exemplo: "Arquivos de texto|*.txt|Bitmaps|*.bmp"
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 |
---|
language | cpp |
---|
theme | Eclipse |
---|
title | Exemplo |
---|
linenumbers | true |
---|
| #INCLUDE "TOTVS.CH"
User Function GetFile1()
Local targetDir
targetDir:= cGetFile( '*.txt| | cGetFile( '*.txt' , 'Textos (TXT)', 1, 'C:\', .F., nOR( GETF_LOCALHARD, GETF_LOCALFLOPPY, GETF_RETDIRECTORY ),.T., .T. )
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() == REMOTE_HTML)
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 ModifiedAdvanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server
|