Questa è una vecchia versione del documento!
Inserimento di un Rowid Specifico in Tabella - ReaderId
Se si vuole inserire un Rowid diverso da quello di Default in una tabella è necessario:
- Nel model della grid inserire l'attributo: readerId:'Key'
Dove 'Key' rappresenta il nome della nostra chiave.
Esempio:
Nome Attributo | Valore Attributo |
---|---|
class | {cellEdit:false, readerId:'Key', caption: “Ditte”, shrinkToFit:true, width:650 ….. |
- Nell'applicazione, al momento della creazione della tabella, dovremo aggiungere all'array della grid il 'rowIndex'⇒'Key', per specificare quale sarà il Rowid che dovrà utilizzare:
$sql=$this->CreaSql(); $ita_grid01 = new TableView($this->gridDitte, array( 'sqlDB' => $this->GAFIERE_DB, 'sqlQuery' => $sql, 'rowIndex' => 'Key')); $ita_grid01->setPageNum(1); $ita_grid01->setPageRows(20000); $ita_grid01->setSortIndex('DENOMINAZIONE'); $ita_grid01->setSortOrder('asc'); ....
Nota.
Questa elaborazione è necessaria nel momento in cui la query che passiamo sarà il risultato di più JOIN a più tabelle.
Se invece si vuole creare un ROWID che racchiuda più campi è necessario:
- Nell'applicazione, al momento della creazione della grid, dovremo rielaborare il risultato della querry e passare alla tabella un Array.
Esempio:
In una tabella abbiamo:
TABELLA: OPERAI JOIN PRODUZIONI
CodiceDipendente | Cognome | Nome | Data | Totale Prodotti |
---|---|---|---|---|
001 | Rossi | Luigi | 22/01/2013 | 75 |
004 | Verdi | Rosa | 25/01/2013 | 15 |
Le tabelle senza JOIN :
TABELLA: PRODUZIONI
CodiceProdotto | TipoProdotto | CodiceDipendente | Data | Numero |
---|---|---|---|---|
BX01 | BulloneB | 001 | 22/01/2013 | 20 |
BX01 | BulloneA | 001 | 25/01/2013 | 30 |
BX04 | BulloneC | 001 | 22/01/2013 | 25 |
BC9F | ChiodoB | 004 | 22/01/2013 | 15 |
TABELLA: OPERAI
CodiceDipendente | Cognome | Nome |
---|---|---|
001 | Rossi | Luigi |
004 | Verdi | Rosa |
Vogliamo che al doppioclick su una riga vengano elencati tutti i prodotti creati di quel operaio a quella data, portandoci dietro la data e codice del dipendente.
Dopo aver aggiunto nella gird del model il ReaderId e nell'applicazione il 'rowIndex' ⇒ 'Key' (come sopra descritto), nel programma dovremo anche provvedere alla Rielaborazione del risultato della Querry.
Questa rielaborazione la possiamo fare tramite una funzione:
$sql=$this->CreaSql(); $ita_grid01 = new TableView($this->gridDitte, array( 'sqlDB' => $this->GAFIERE_DB, 'sqlQuery' => $sql, 'rowIndex' => 'Key')); $ita_grid01->setPageNum(1); $ita_grid01->setPageRows(20000); $ita_grid01->setSortIndex('DENOMINAZIONE'); $ita_grid01->setSortOrder('asc'); // Elabora il risultato $Result_tab = $ita_grid01->getDataArray(); $Result_tab = $this->elaboraRecords($Result_tab); $ita_grid01->getDataPageFromArray('json', $Result_tab)
La funzione elaboraRecords. In questa funzione provvederemo a rielaborare il nostro nuovo Rowid: 'Key' componendolo di “CODICEDIPENDENTE” e “DATA”.