Modulo Form

Il modulo Form permette di creare o modificare entità di tipo item mostrandone i dati in un form.

Per attivare una sezione con modulo Form vanno configurati i settaggi nella relativa sezione dati specificando il form, la tabella della base dati e i relativi campi che saranno visualizzati nella lista parente.

 

 

Il modulo può essere utilizzato con la sola configurazione in DataWeb ma, se serve, può essere personalizzato in ogni sua funzione impostando una classe ereditata da quella base ModuleForm e sovrascrivendo i medodi interessati. La nuova classe viene impostata nei relativi settaggi in DataWeb.

 

using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using DataWeb.Data;
using DataWeb.Structure;
using DataWeb.Structure.Modules;

namespace App.DataWeb.Structure.Modules
{
    public class ModuleSupportTicketForm(Section section, NavigationContext navigationContext, IServiceProvider serviceProvider) : ModuleForm(section, navigationContext, serviceProvider)
    {
        public override Task ProcessOnSaveDataAsync(Item item, Item.SectionPart sectionPart, List<Form.ProvidedValue> providedValues, CancellationToken cancellationToken = default)
        {
            sectionPart.SectionData["IsNewMessage"] = false;

            return Task.CompletedTask;
        }
    }
}

 

In questo esempio stiamo integrando i dati provenienti dal form con un valore aggiuntivo prima del salvataggio nella base dati.

 

Questa tabella può essere usata come riferimento per identificare le aree della classe base ModuleForm che possono essere personalizzate creando una classe derivata.

 

MetodoDescrizionePossibile Personalizzazione
ValidateAsyncValida i dati del modulo per un item specifico. Verifica i valori forniti e restituisce eventuali errori di validazione.Sovrascrivibile per aggiungere regole di validazione personalizzate o per estendere il comportamento di validazione con logica aggiuntiva.
SaveAsyncSalva i dati del modulo per un item specifico. Aggiorna i dati, valida le modifiche e registra gli eventi di audit.Sovrascrivibile per aggiungere logica personalizzata durante il salvataggio, come aggiornamenti di campi extra, notifiche o elaborazioni aggiuntive.
ProcessOnSaveDataAsyncEsegue elaborazioni aggiuntive durante il salvataggio dei dati del modulo.Sovrascrivibile per eseguire logiche specifiche post-salvataggio, come aggiornare campi derivati o eseguire calcoli complessi.
IsCompletedAsyncDetermina se la sezione del modulo è completata per un item specifico. Restituisce true se la sezione è validata, altrimenti false.Sovrascrivibile per aggiungere regole di completamento personalizzate, come controlli su dati specifici o dipendenze tra campi.
CloneAsyncClona i dati della sezione del modulo, inclusi eventuali versioni, da un item a un altro.Sovrascrivibile per personalizzare la logica di clonazione, ad esempio modificare i dati copiati o gestire relazioni tra entità.