English
Instant Developer Foundation Documentazione
  • Tutorial applicazioni web
  • Procedure ed eventi interfaccia

Creazione procedura di videata

link
<< Video precedente
Apri in una finestra a tutto schermo.
Video successivo >>

Trascrizione

Analizziamo come una parte delle logica operativa, necessariamente sia definita all’interno dell’interfaccia attraverso procedure , procedure che possono essere locali a livello di videata o globali all’intera applicazione.

La procedure globali potranno essere richiamate in qualsiasi punto del vostro codice, a differenza delle procedure locali che essendo interne alla videata, l’esecuzione richiede che l’oggetto videata sia in memoria, quindi aperto.

La prima differenza sta proprio in questo concetto: la procedura globale è richiamabile sempre e nel suo ciclo di vita non ha bisogno di nient’altro, a differenza della procedura locale che necessità dell’oggetto padre in cui è creata.

Facciamo un esempio di entrambi: iniziamo con la procedura interna a una videata: nella videata Appartamenti vorrei una procedura, che abbia un parametro di ingresso opzionale , un documento Appartamento, e se presente posizioni il pannello sul documento e venga mostrato in dettaglio.

Albero di progetto: Videata Appartamenti -> Tasto destro -> Aggiungi Procedura.

Public void ApriPer(optional Appartamento docAppartamento) {
If (docAppartamento != null) {
//Cerchiamo il documento nel pannello
Appartamenti.findDocument(docAppartamento)
}
}

Siccome come questa procedura è impostata come Public, significa che possiamo richiamarla, sia all’interno della videata, sia all’esterno, ma ricordiamoci di una cosa: richiamando la procedura dall’esterno se la videata è aperta tutto bene, se la videata fosse chiusa per forza di cosa prima automaticamente viene aperte e successivamente eseguita la procedura.

Potrebbe essere utile richiamare questa procedura da un’altra videata: quella delle Prenotazioni: aggiungiamo nel dettaglio delle Prenotazioni, un Command Button chiamiamolo Scheda: attenzione quali macro operazioni vorremmo eseguire a seguito del clic sul Command Button?

Vorremmo recuperare il documento presente nel pannello, controllare se la proprietà IdAppartamento è valorizzata ed in caso affermativo caricare dal database un documento Appartament; a quel punto aprire la videata Appartamenti e passarvi il documento da mostrare.

Andiamo per gradi: abbiamo un metodo che carica un documento Appartamento partendo dalla chiave primaria? No, allora prima di tutto creiamo un metodo che dato un ID carichi e ritorni un documento; il posto ideale dove creare il metodo quale sarebbe? Nella struttura del documento stesso: nel nostro caso Appartamento

. Albero di progetto, documento Appartamento, tasto destro Aggiungi Procedura.

Public Appartamento loadDocument(string PrimaryKey) {
}

Se lasciamo il metodo così, siamo obbligati a richiamarlo utilizzando una istanza del documento, cioè dobbiamo creare una variabile, instanziarla etc: se invece trasformiamo il metodo in statico, potremo richiamarlo semplicemente con il nome della classe dove il metodo è contenuto: cambio.

Public static Appartamento loadDocument(string PrimaryKey) {
Appartamento document = null;
//ISTRUZIONE DI CARICAMENTO DOCUMENTALE
Return document;
}

Completeremo questo metodo più avanti, ora torniamo alla videata Prenotazioni e aggiungiamo una procedura in risposta al clic delCommand Button Scheda: ci si posiziona sul Command Button in interfaccia, tasto destro -> Aggiungi Procedura: questa procedura verrà richiamata quando si farà clic sul Command Button.

Cosa abbiamo bisogno? In primis ci serve il documento Prenotazione presente nel pannello: definiamo una variabile di tipo Prenotazione.

Prenotazione docPrenotazione = PRENOTAZIONI.document

Per catturare il documento selezionato nel pannello, basta chiederlo all’oggetto pannello. Document.

Ci serve inoltre un documento di tipo Appartamento: altra variabile.

Apartamento docAppartamento = null

Ora iniziamo il vero codice.

If (docPrenotazione != null) {
If (length(docPrenotazione.IdAppartamento) != 0 ) {
//Carico il documento Appartamento
docAppartamento = APPARTAMENTO.loadDocument(docPrenotazione.iDAppartamento)
}
}
If (docAppartamento != null) {
//Apriamo la videata Appartamenti
Appartamenti.show();
Appartamenti.ApriPer(docAppartamento)
}

Come notato abbiamo creato 2 procedure locali con la caratteristica che una chiama l’altra: per poter chiamare la ApriPer pero’ ho scritto Appartamenti.show perché essendo interna alla videata, la videata deve essere aperta; se non avessi scritto l’istruzione di apertura? andava in errore? per niente, il framework avrebbe aperto la videata automaticamente.

Il metodo che abbiamo visto è il metodo per passare dei parametri durante l’apertura di una videata, semplicemente si apre la videata con Show e successivamente si richiama una procedura pubblica di videata che abbia dei parametri.

Ultima modifica: 23/10/2020 / Validità: da 20.5.8000

Ti serve altro aiuto?

Consulta il Forum

Vedi anche

    Scarica il progetto di esempio You Bb Project.zip
    Scarica il progetto di esempio You Bb Project.zip