==== Elenco MultiSelezione ==== Per inserire nel programma un tasto LookUp con comparsa di un Elenco Multiselezione (oltre ad aver dichiarato le varie librerie) è necessario: 1 Definire la Nostra variabile pubblica Multiselezione come Array, inizialmente vuoto: ... public $divRis = "NomeModel_divRisultato"; public $divRic = "NomeModel_divRicerca"; public $MultiSelNOME = array(); ... Ovviamente in questo esempio utilizzeremo $MultiSelNOME, ma è possibile dare un qualsiasi nome alla variabile. 2 Dichiarare la variabile nel **construct,destruct** e **close**: construct (Dopo il try e il db): function __construct() { parent::__construct(); try { ... $this->MultiSelNOME = App::$utente->getKey($this->nameForm . '_MultiSelNOME'); } catch (Exception $e) { Out::msgStop("Errore", $e->getMessage()); ... \\ destruct : function __destruct() { parent::__destruct(); App::$utente->setKey($this->nameForm . '_MultiSelNOME', $this->MultiSelNOME); } \\ close: public function close() { App::$utente->removeKey($this->nameForm . '_MultiSelNOME'); Out::closeDialog($this->nameForm); } 3 Al click del butt è necessario aggiungere un return: case 'returnNome': $this->MultiSelNOME = array(); if ($_POST['retKey']) { $this->MultiSelNOME = explode(",", $_POST['retKey']); } break; 4 Aggiungere nella Ric l'opzine Multiselect, quindi Modificandola da così: static function PREFISSORicNOME($returnModel, $returnEvent) { $sql = "SELECT ROWID, CAMPOCOD, CAMPODES FROM NOMETABELLA"; $model = 'utiRicDiag'; $gridOptions = array( "Caption" => 'Titolo dell'elenco', "width" => '330', "height" => '400', "sortname" => 'CAMPOCOD/CAMPODES', "rowNum" => '20', "rowList" => '[]', "colNames" => array( "Codice", "Descrizione" ), "colModel" => array( array("name" => 'CAMPOCOD', "width" => 60), array("name" => 'CAMPODES', "width" => 260) ), "dataSource" => array( 'sqlDB' => 'DB', 'sqlQuery' => $sql ) ); $_POST = array(); $_POST['event'] = 'openform'; $_POST['gridOptions'] = $gridOptions; $_POST['returnModel'] = $returnModel; $_POST['returnEvent'] = $returnEvent; $_POST['retid'] = $returnId; $_POST['returnKey'] = 'retKey'; itaLib::openForm($model, true, true, 'desktopBody', $returnModel); $appRoute = App::getPath('appRoute.' . substr($model, 0, 3)); require_once App::getConf('modelBackEnd.php') . '/' . $appRoute . '/' . $model . '.php'; $model(); } a così: static function timRicDip($returnModel, $returnEvent, $multiSelect = false) { $rowNum = 20; if ($multiSelect == 'true') { $rowNum = 10000; } $sql = "SELECT ROWID, CAMPOCOD, CAMPODES FROM NOMETABELLA"; $model = 'utiRicDiag'; $gridOptions = array( "Caption" => 'Elenco ', "width" => '330', "height" => '400', "sortname" => 'CAMPOCOD/CAMPODES', "rowNum" => $rowNum, "multiselect" => $multiSelect, "rowList" => '[]', "colNames" => array( "Codice", "Descrizione", ), "colModel" => array( array("name" => 'CAMPOCOD', "width" => 60), array("name" => 'CAMPODES', "width" => 260) ), "dataSource" => array( 'sqlDB' => 'DB', 'sqlQuery' => $sql ) ); $_POST = array(); $_POST['event'] = 'openform'; $_POST['gridOptions'] = $gridOptions; $_POST['returnModel'] = $returnModel; $_POST['returnEvent'] = $returnEvent; $_POST['retid'] = $returnId; $_POST['returnKey'] = 'retKey'; itaLib::openForm($model, true, true, 'desktopBody', $returnModel); $appRoute = App::getPath('appRoute.' . substr($model, 0, 3)); require_once App::getConf('modelBackEnd.php') . '/' . $appRoute . '/' . $model . '.php'; $model(); } Dove Abbiamo Modificato: * I Valori che passiamo alla funzione, è stata aggiunta la **$multiselect**, che se vuota viene settata a 'false' * Abbiamo aggiunto una condizione per verificare se si sta effettuando una multiselezione o meno, perchè allora dovranno essere visualizzate tutte le righe in un solo elenco. * **Aggiunto "multiselect" => $multiSelect,** tra le opzioni della grid ( **$gridOptions = array(... ** ) 5 Ovviamente nel richiamo della funzione, nel programma, oltre a passare il $returnModel, $returnEvent passeremo **$multiSelect = true** per indicare una multiselezioni, altrimenti nulla. \\ \\ **Nota.**\\ Se nella multiselect il primo valore torna automaticamente selezionato la gridOptions "multiselect"=>true deve essere modificata in "multiselect"=>'true', tra apici.