Olá, @Patrick_Dos_Santos!
Infelizmente o campo Upload não consegue carregar um valor em arquivo de volta ao campo.
Mas, podemos atingir esse comportamento de outra forma. Imagino que deseje apresentar o nome do arquivo já enviado anteriormente, sendo o caso, pode ser feito o seguinte:
- O que iremos usar?
- Campo do tipo Upload.
- Campo do tipo Label.
- Campo do tipo Button.
- Container do tipo Horizontal StackPanel.
- Evento Load do Formulário.
- Evento Click em botão.
- Modo de abertura dos objetos.
Campos
-
Upload:
Neste contexto iremos usá-lo como já se encontra configurado. Receber o arquivo informado pelo usuário na criação do registro. -
Label:
Este campo será usado quando o modo abertura for Edição e for encontrado um arquivo para carregar ao usuário. Nele iremos apresentar o nome do arquivo, para que o usuário possa identificar. -
Button:
Este campo será usado quando o modo de abertura for Edição e for encontrado um arquivo para carregar ao usuário. Nele iremos incluir uma operação de “remover o arquivo” - Escondendo os campos atuais (Label&Button) para apresentar novamente o campo Upload.
Modo de abertura
Quando vamos abrir uma janela no LATROMI, podemos configurar o modo de abertura, que ajuda a identificar como a tela deve tratar as informações. O modo de abertura é a sigla CRUD:
- C: Criar
- R: Ler
- U: Atualizar (ingles: Update)
- D: Deletar
*Veja mais em Modos de abertura.
Na construção deste exemplo usaremos esta configuração para construir os blocos de condição e executar o bloco de lógica correspondente.
Ajustando campos no Layout
Para nos auxiliar na ocultação dos campos iremos usar um truque com o layout do LATROMI. Adicionaremos os três campos em um container do tipo Horizontal Stack Panel. Dessa forma, a tela ajustará os campos automaticamente quando usarmos as ações Mostrar campos e Ocultar campos.
Configurando evento Load
A primeira camada que iremos adicionar é o direcionamento de comportamento, no evento Load, do formulário. Nessa parte iremos identificar o modo de abertura e decidir como apresentar e carregar os dados.
Nosso bloco de procedimento ficará algo semelhante a abaixo:
/*código acima*/
IF FORM.OpeningMode = 'U' Then
Carrega e popula os valores capturados do banco de dados nos campos
VAR.response = DbLoad()
Hide(INPUT.uplExample)
Show(INPUT.lblExample, INPUT.btnExample)
Else
Hide(INPUT.lblExample, INPUT.btnExample)
Show(INPUT.uplExample)
/*código abaixo*/
Configurando evento Click
Para não excluir o arquivo de imediato iremos adicionar ao evento click somente uma operação de limpeza e ocultação de campos, evitando uma exclusão acidental.
Veja um exemplo de implementação para o bloco de procedimento abaixo:
// Passa os valores dos campos uplExample, lblExample e btnExample para NULL
Populate(INPUT.uplExample, INPUT.lblExample, INPUT.btnExample)
Hide(INPUT.lblExample, INPUT.btnExample)
Show(INPUT.uplExample)
Conclusão
Com a implementação dos passos acima é possível efetuar o comportamento desejado, como ponto de preenchimento fica a lógica de gravação após o usuário concluir a edição. Ela pode efetuar tanto a Exclusão do registro antigo e Inclusão do novo, como simplesmente atualizar o registro identificado com o novo valor.