Árvore de páginas

Visão Geral

O componente DatasulUpload tem como objetivo realizar upload de arquivos para o servidor.

A imagem a seguir mostra um exemplo do componente DatasulUpload:

Figura 1 - Ponto inicial do componente.

 

Figura 2 - Popup para seleção dos arquivos a serem transferidos para o servidor.

 

Figura 3 - Popup para seleção dos arquivos com o modo de exibição: transfer.

 

Atributos

O componente possui 3 atributos para a parametrização do componente:

Atributo

Descrição

storageMode

Modo com que será armazenado os arquivos. Podendo ser temporary (temporário) ou definitive (definitivo).Obs: Definitivo ainda indisponível.

selectionFileMode

Quantidade de arquivos que o usuário poderá selecionar. Podendo ser single (único) ou multiple (vários).

mode

Modo de exibição da tela e comportamento do upload. Pode ser transfer (exibe somente a aba de Transferência, ao clicar no botão Ok, é realizado o upload de todos os arquivos presente na grid onde não haverá a necessidade de efetuar o Upload para depois seleciona-lo na aba de Visualização) ou all (exibe as abas Transferência e Visualização com as ações padrão do componente).

Caso o parâmetro não seja configurado, o sistema define como padrão o valor all.

 

Modo de Uso

O componente DatasulUpload no Metadados pode ser utilizado através de formulários do tipo FreeForm,  conforme mostra a figura abaixo da paleta de componentes:

Figura 4 - Localização na paleta de componente no freeform

 

Lista de Comandos ABLScript para Interação com um DatasulUpload

Método/Atributo

Descrição

GETPROPERTY ( upload, "files" )

Retorna uma Temp-Table contendo as informações (name, type, size) dos arquivos selecionados pelo usuário.

SETPROPERTY ( upload, "filtersFile", ttFiltersFile )

Atribui uma Temp-Table contendo a descrição (description) e os tipos de arquivos (extension) que podem ser selecionados para realizar o upload.

OPEN-UPLOAD(widgetId, mode)Abre a tela de Upload relacionada ao componente DatasulUpload (widgetId), customizada de acordo com o parâmetro mode ('transfer' ou 'all').

Evento

Descrição

onCloseUpload

Evento disparado ao fechar a tela de Upload, independentemente do modo escolhido.

 

Exemplos

Veremos a seguir um exemplo de como pegar os arquivos que foram selecionados pelo usuário:

/* Referência para o componente de upload */
DEFINE VARIABLE upload AS WIDGET-HANDLE.
/* Formato da Temp Table retornado pela função de pegar a propriedade files */
DEFINE TEMP-TABLE ttFiles
FIELD name AS CHARACTER
FIELD type AS CHARACTER
FIELD appServerPath AS CHARACTER
FIELD jbossPath AS CHARACTER
FIELD size AS DECIMAL.
/* Pega as propriedades dos arquivos que foram realizados upload e selecionados pelo usuário */
ttFiles = GETPROPERTY(upload, "files").

Observações:

  • Para o correto funcionamento, a Temp-Table deve ter a mesma estrutura (name,type e size) , como mencionado no exemplo acima.
  • A propriedade size está em (Kb).

 

Agora veremos um outro exemplo de como filtrar os tipos de arquivos que o usuário poderá fazer upload:

/* Referência para o componente de upload */
DEFINE VARIABLE upload AS WIDGET-HANDLE.
/*Estrutura de dados necessária para os filtros de arquivos*/
DEFINE TEMP-TABLE ttFiltersFileFIELD description AS CHARACTERFIELD extension AS CHARACTER.
/* Documentos */
CREATE ttFiltersFile.ttFiltersFile.description = "Documentos".ttFiltersFile.extension = "*.txt;*.doc;*.pdf;".
/* Imagens */
CREATE ttFiltersFile.ttFiltersFile.description = "Images".ttFiltersFile.extension = "*.png;*.jpeg;*.bmp".
/* Atribui ao componente de upload os tipos de arquivos que podem ser feitos upload */
SETPROPERTY(upload,"filtersFile",ttFiltersFile).

Observações:

  • Para o correto funcionamento, a Temp-Table deve ter a mesma estrutura (description e extension), como mencionado no exemplo acima.
  • Caso não informado os filtros ao componente, o usuário poderá escolher qualquer tipo de arquivo para realizar o upload

 

Um exemplo para a chamada do componente de upload via ABLScript.

/* Referência para o componente de upload */ 
DEFINE VARIABLE uploadFile AS WIDGET-HANDLE. 
/* Função que executa a chamada do Popup de Upload */ 
OPEN-UPLOAD(uploadFile, "transfer").

Observações:

  • O atribuito widgetId deve referenciar a um componente DatasulUpload, sua exibição em tela é opcional (pode ser parametrizado com os atributos visible e includeInLayout 'false').