Come visualizzare la somma di un campo nella ListView di un modulo?
Nell’esempio che segue, aggiungiamo in fondo alla ListView delle Opportunità la somma degli importi.
Per prima cosa apriamo il file
./custom/modules/Opportunities/logic_hooks.php
ed aggiungiamo il seguente logic hook
1 2 3 4 5 6 7 8 9 10 |
$hook_array['process_record'] = Array(); $hook_array['process_record'][] = Array( 999, 'Somma', 'custom/modules/Opportunities/hook_sum.php', 'Hook_sum', 'do_sum' ); |
Successivamente apriamo il file
./custom/modules/logic_hooks.php
ed aggiungiamo il seguente logic hook
1 2 3 4 5 6 7 8 9 10 |
$hook_array['after_ui_footer'] = Array(); $hook_array['after_ui_footer'][] = Array( 2, 'Visualizza la somma degli importi nella list view delle opportunità', 'custom/modules/Opportunities/hook_sum.php', 'Hook_sum', 'display_sum' ); |
Infine creiamo un nuovo file .php con il nome hook_sum.php nella seguente cartella
./custom/modules/Opportunities
Il file è l’implementazione vera e propria dell’hook
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
global $opp_amount; class Hook_sum { function do_sum($bean, $event, $args) { global $opp_amount; $opp_amount += $bean -> amount_usdollar; $GLOBALS['log'] -> fatal(print_r($opp_amount, TRUE)); } function display_sum($event, $args) { global $opp_amount; if ($_REQUEST['module'] == 'Opportunities' && ($_REQUEST['action'] == 'index' || $_REQUEST['action'] == 'ListView')) { //inserire lo script JS } } } |
Inseriamo all’interno dell’if a riga 11 il seguente script JS
1 2 3 4 5 6 7 8 |
<script> var opp_amout_sum = '<?php echo $opp_amount; ?>'; $(document).ready(function(){ $('.paginationTable:last').after('<b style="text-transform: uppercase; float: right;" class="required"> Opportunity Amount : ' + opp_amout_sum + ' </b>'); }); </script> |
E’ consigliato effettuare un refresh della list view delle Opportunità per visualizzare la somma sotto la tabella in basso a destra.