Strumenti Utente

Strumenti Sito


sviluppo:cityware_superclassi

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisioneRevisione precedente
Prossima revisione
Revisione precedente
sviluppo:cityware_superclassi [2017/11/03 16:44] m.biagiolisviluppo:cityware_superclassi [2024/10/15 09:45] (versione attuale) – modifica esterna 127.0.0.1
Linea 19: Linea 19:
  
 ===== Tabella classica di gestione (CRUD) semplice ===== ===== Tabella classica di gestione (CRUD) semplice =====
 +Esempio: **cwbBtaGrunaz**
  
-TODOcompletare+==== Metodi da specificare (obbligatori) ==== 
 + 
 +^ Metodo            ^ Descrizione       | 
 +^ initVars      | Valorizzare le variabili**GRID_NAME**, **AUTOR_NAME**, **AUTOR_NUMERO**, **searchOpenElenco** e **libDB** | 
 +^ postSqlElenca      | Valorizzare la variabile **SQL** utilizzata per caricare l'elenco di paginazione (Utilizzare un metodo in una lib, __è buona norma non scrivere l'istruzione SQL all'interno della classe di gestione della form__ | 
 +^ sqlDettaglio      | Valorizzare la variabile **SQL** utilizzata per caricare il singolo record (Utilizzare un metodo in una lib, __è buona norma non scrivere l'istruzione SQL all'interno della classe di gestione della form__ | 
 + 
 +==== Metodi da specificare (facoltativi) ==== 
 + 
 +^ Metodo            ^ Descrizione       | 
 +^ postApriForm      | Inizializzazione combo di gestione; impostazione del focus sul campo desiderato. | 
 +^ postAltraRicerca      | Impostazione del focus sul campo desiderato. | 
 +^ postNuovo      | In questo caso, sblocca il campo chiave perchè deve essere specificato manualmente; impostazione del focus sul campo desiderato. | 
 +^ postAggiungi      | Impostazione del focus sul campo desiderato. | 
 +^ setGridFilters      | Impostazione dei filtri provenienti dalle colonne della grid. | 
 +^ elaboraRecords      | Formatta l'output della grid. |
  
 ===== Tabella classica di gestione (CRUD) complessa ===== ===== Tabella classica di gestione (CRUD) complessa =====
Linea 27: Linea 43:
  
 ===== Albero ===== ===== Albero =====
 +Esempio: **cwbBorOrgan**
  
-TODOcompletare+==== Metodi da specificare (obbligatori) ==== 
 + 
 +^ Metodo            ^ Descrizione       | 
 +^ initVars      | Valorizzare le variabili**GRID_NAME**, **AUTOR_NAME**, **AUTOR_NUMERO**, **searchOpenElenco** e **libDB** | 
 +^ caricaNodiPrimoLivello      | Effettua il caricamento dei soli nodi al primo livello. Demandare l'operazione di caricamento ad una apposita lib. | 
 +^ caricaFigli      | Effettua il caricamento dei figli, dato in ingresso l'identificativo del nodo padre. Demandare l'operazione di caricamento ad una apposita lib. | 
 +^ getLivello      | Restituisce il livello del nodo corrente dell'albero. | 
 +^ caricaAlbero      | Effettua il caricamento dell'albero, applicando i filtri di ricerca | 
 +^ caricaGerarchiaNodo      | Effettua il caricamento di tutti i nodi padre relativi al nodo passato come parametro in ingresso | 
 +^ cercaPadre      | Restituisce il record padre del record selezionato | 
 +^ postElaboraNodiCaricati      | Effettua un ordinamento dell'array | 
 +^ livelloDaNodo      | Restituisce il livello del nodo specificato in ingresso | 
 +^ parentDaAlbero      | Restituisce il codice padre relativo al nodo specificato in ingresso | 
 +^ getFoglia      | Restituisce TRUE se il nodo passato come parametro è una foglia, altrimenti FALSE | 
 +^ expandedDaCaricamento      | Controlla se presenti figli nell'albero caricato per il nodo corrente (se si, restituisce TRUE, altrimenti FALSE) | 
 + 
 +==== Metodi da specificare (facoltativi) ==== 
 + 
 +^ Metodo            ^ Descrizione       | 
 +^ postApriForm      | Inizializzazione combo di gestione; impostazione del focus sul campo desiderato. | 
 +^ postAltraRicerca      | Impostazione del focus sul campo desiderato. | 
 +^ postNuovo      | In questo caso, sblocca il campo chiave perchè deve essere specificato manualmente; impostazione del focus sul campo desiderato. | 
 +^ postAggiungi      | Impostazione del focus sul campo desiderato. | 
 +^ setGridFilters      | Impostazione dei filtri provenienti dalle colonne della grid. | 
 +^ elaboraRecords      | Formatta l'output della grid. |
  
 ===== Finestra mono-record ===== ===== Finestra mono-record =====
 +Esempio: **cwbBgdParott**
  
-TODOcompletare+==== Metodi da specificare (obbligatori) ==== 
 + 
 +^ Metodo            ^ Descrizione       | 
 +^ initVars      | Valorizzare le variabili**GRID_NAME**, **AUTOR_NAME**, **AUTOR_NUMERO**, **searchOpenElenco** e **libDB** | 
 +^ sqlDettaglio      | Valorizzare la variabile **SQL** utilizzata per caricare il singolo record (Utilizzare un metodo in una lib, __è buona norma non scrivere l'istruzione SQL all'interno della classe di gestione della form__ | 
 + 
 +==== Metodi da specificare (facoltativi) ==== 
 + 
 +^ Metodo            ^ Descrizione       | 
 +^ postApriForm      | Inizializzazione combo di gestione; impostazione del focus sul campo desiderato. | 
 +^ postAltraRicerca      | Impostazione del focus sul campo desiderato. | 
 +^ postNuovo      | In questo caso, sblocca il campo chiave perchè deve essere specificato manualmente; impostazione del focus sul campo desiderato. | 
 +^ postAggiungi      | Impostazione del focus sul campo desiderato. | 
 +^ setGridFilters      | Impostazione dei filtri provenienti dalle colonne della grid. | 
 + 
 + 
 +===== Finestre fuori standard ===== 
 + 
 +==== Monitor Eventi ==== 
 +Esempio: **cwbBgeMonitor** 
 + 
 +{{:sviluppo:fuoristandard-monitor.png?600|}} 
 + 
 +Questo caso è abbastanza simile ad una finestra CRUD, infatti la classe estende la superclasse **cwbBpaGenTab**. 
 +Una particolarità importante è che il metodo **elenca** è abbastanza differente da quello standard, per questo motivo è stato completamente sovrascritto. 
 + 
 +==== Console Diagnostica ==== 
 +Esempio: **cwbDiagnostica** 
 + 
 +{{:sviluppo:fuoristandard-consolediagnostica.png?600|}} 
 + 
 +In questo caso, la classe estende semplicemente **itaFrontController** in quanto non deve lavorare con il database, ma lanciare dei test per una diagnostica di secondo livello. 
 +Anche a livello di generator la struttura della pagina sarà molto diversa da una pagina CRUD tradizionale. 
 +L'unico punto in comune con le CRUD può essere quindi solamente il **parseEvent**.
  
-===== Finestra fuori standard =====+==== Finestra mono-record con tabella senza la chiave primaria ====
  
-TODO: gestire le varie casistiche ....+TODO: descrivere il caso specifico
  
 ====== Superclassi ====== ====== Superclassi ======
Linea 105: Linea 180:
 ^ getLastInsertId       | Recupera ultimo id inserito | $this->modelService->getLastInsertId(); | ^ getLastInsertId       | Recupera ultimo id inserito | $this->modelService->getLastInsertId(); |
 ^ setLastInsertId       | Imposta ultimo id inserito (in caso di gestione progressivo calcolato manualmente) | $this->modelService->setLastInsertId($lastInsertId); | ^ setLastInsertId       | Imposta ultimo id inserito (in caso di gestione progressivo calcolato manualmente) | $this->modelService->setLastInsertId($lastInsertId); |
 +
 +=== Utilizzo del modelService all'interno di una lib ===
 +Il modelService può essere utilizzato in qualsiasi punto dell'applicazione, comprese le lib.
 +Per prima cosa, occorre istanziarlo, quetso è possibile farlo attraverso la factory **cwbModelServiceFactory**:
 +
 +<code>
 +$modelService = cwbModelServiceFactory::newModelService($modelName);
 +</code>
 +
 +se non si conosce il nome del model, ma solo della table, è possibile risalire all'informazione utilizzando il metodo **modelNameByTableName** di **cwbModelHelper**:
 +
 +<code>
 +$modelService = cwbModelServiceFactory::newModelService(cwbModelHelper::modelNameByTableName($tableName));
 +</code>
 +
 +A questo punto, è possibile utilizzarlo all'interno del punto dove è stato definito, es:
 +
 +<code>
 +$rec = $modelService->getByPks($DB(), $tableName, $values);  
 +</code>
 +
  
 ==== Eventi gestiti nel metodo parseEvent ==== ==== Eventi gestiti nel metodo parseEvent ====
Linea 146: Linea 242:
 ^ actionAfterNew         | Prende una costante GOTO_*, indica cosa fare dopo aver creato un nuovo elemento.      ^ actionAfterNew         | Prende una costante GOTO_*, indica cosa fare dopo aver creato un nuovo elemento.     
 ^ actionAfterModify      | Prende una costante GOTO_*, indica cosa fare dopo aver modificato un elemento.      ^ actionAfterModify      | Prende una costante GOTO_*, indica cosa fare dopo aver modificato un elemento.     
-actionAfterDelete      Prende una costante GOTO_*, indica cosa fare dopo aver eliminato un elemento.     +elencaAutoAudit        | Se impostato a true abilita la gestione automatica delle colonne di audit (CODUTE e DATAORAOPER).     |  
 +^ elencaAutoFlagDis      Se impostato a true abilita la gestione automatica delle colonne dell'abilitazione (FLAG_DIS).     
  
 ==== Variabili utilizzate in sessione ==== ==== Variabili utilizzate in sessione ====
Linea 240: Linea 337:
 ^ Metodo            ^ Descrizione       ^ Quando utilizzarlo | ^ Metodo            ^ Descrizione       ^ Quando utilizzarlo |
 ^ postResetParametriRicerca | Viene lanciato alla fine del metodo | Previsto per casi particolari, mai utilizzato | ^ postResetParametriRicerca | Viene lanciato alla fine del metodo | Previsto per casi particolari, mai utilizzato |
 +
 +
 +=== Recupero righe selezionate ===
 +
 +^ Metodo            ^ Descrizione       ^ Quando utilizzarlo |
 +^ getSelected | Metodo che restituisce le chiavi delle righe selezionate in caso di selezione multipla attivata | Utilizzabile a seconda delle necessità della pagina |
  
  
Linea 265: Linea 368:
 ^ Metodo            ^ Descrizione       ^ Quando utilizzarlo | ^ Metodo            ^ Descrizione       ^ Quando utilizzarlo |
 ^ elaboraRecords | Viene lanciato all'interno di elaboraGrid. Al metodo viene passato l'array dei risultati, che è possibile manipolare in modo da poter ottenere l'output desiderato. | Inserimento di icone, applicazioni css a determinate colonne, concatenazione di più campi da mostrare in una singola colonna. | ^ elaboraRecords | Viene lanciato all'interno di elaboraGrid. Al metodo viene passato l'array dei risultati, che è possibile manipolare in modo da poter ottenere l'output desiderato. | Inserimento di icone, applicazioni css a determinate colonne, concatenazione di più campi da mostrare in una singola colonna. |
 +
 +
 +===== cwbBpaGenRow =====
 +La superclasse è specializzata per la gestione di tabelle con un solo record. Graficamente queste si presentano direttamente in dettaglio, e gestiscono l'inserimento e l'aggiornamento in modo automatico, a seconda della presenza o meno del record.
 +
 +^ Metodo            ^ Descrizione       |
 +^ elenca | Se il record è già presente sul database, lancia il metodo **dettaglio**, altrimenti lancia il metodo **nuovo** (per effettuare il controllo, si basa sulla variabile **CURRENT_RECORD** |
 +
 +==== Azioni e punti di personalizzazione ====
 +Vedi **cwbBpaGenTable** per quanto riguarda il metodo **elenca**.
 +
 +===== cwbBpaGenTree =====
 +
 +TODO: completare
 +
 +
 +===== Helper =====
 +
 +TODO: completare{{counter}} visualizzazioni.
  
sviluppo/cityware_superclassi.1509727472.txt.gz · Ultima modifica: 2018/03/19 10:45 (modifica esterna)