Vorreste esportare in formato csv i risultati di un report che abbia dei campi check, ma non ci riuscite? Questo articolo è per voi.
Molto spesso i report vengono esportati come pdf e gli utenti non percepiscono il problema, che si manifesta solo quando l’esportazione viene fatta in formato csv.
Molto semplicemente nella esportazione csv, il valore della check non viene interpretato correttamente, a differenza della stampa pdf. Nel seguito dell’articolo vediamo come risolvere il problema.
La risoluzione esposta di seguito non è upgrade safe, questo significa che se aggiornate SuiteCRM, molto probabilmente le modifiche descritte sotto verranno cancellate.
Per risolvere il problema dovremo modificare 2 files:
/modules/AOW_WorkFlow/aow_utils.php
dove modificheremo la firma del metodo per riconoscere le chiamate di esportazione csv e modificheremo il ritorno in base a questo valore e al tipo del campo
1 2 3 4 5 |
//riga 307 circa //aggiunta valore $report_csv con default false function getModuleField($module, $fieldname, $aow_field, $view='EditView',$value = '', $alt_type = '', $currency_id = '', $params= array(), $report_csv = false){ |
1 2 3 4 5 6 |
//riga 588 circa if($report_csv && $vardefFields[$fieldname]['type'] === 'bool') { return $value; } |
/modules/AOR_Reports/AOR_Report.php
dove modifichiamo la chiamata al metodo ridefinito in precedenza aggiungendo il valore true, come ultimo parametro, per indicare che stiamo esportando in csv
1 2 3 4 5 |
//riga 1008 circa //Aggiunta del valore true come ultimo parametro $csv .= $this->encloseForCSV(trim(strip_tags(getModuleField($att['module'], $att['field'], $att['field'], 'DetailView', $row[$name], '', $currency_id, array(), true)))); |