Я создал расчетное поле на пользовательском модуле. Таким образом, в основном, этот модуль суммирует все суммы счетов, сделанные каждой продажей. Вычисленное поле представляет собой сумму всего счета-фактуры, присвоенного пользователю. Я уже сделал расчетное поле на подробном представлении и его работе. Теперь я хочу показать вычисленное поле в dashlet. Вот мой скриншот:
Как вы можете видеть, текущий столбец продаж пуст. Он должен быть заполнен целочисленным значением, отображающим сумму суммы счета, сделанной по имени продажи. Я создал модуль, поле и макет с помощью конструктора studio & module. Как показать вычисленное поле в dashlet?
Вот функция, показывающая выведенное поле на странице подробностей и его уже работающую работу, однако она не работает в dashlet или listview:
public function preDisplay(){
//$this->bean contains all the information on the Case
//use that information to grab the related account bean, something like:
//date format still error here
$a = new AOS_Invoices();
$validFromFormatted = date_create_from_format('m/d/Y', $this->bean->valid_from);
$validToFormatted = date_create_from_format('m/d/Y', $this->bean->valid_through);
$arr = $a->get_full_list(null,'(aos_invoices.assigned_user_id = \''.$this->bean->user_id_c.'\' and invoice_date between \''.date_format($validFromFormatted,'Y-m-d').'\' and \''.date_format($validToFormatted,'Y-m-d').'\')');
$sum = 0;
foreach($arr as $key=>$value){
if(isset($value->total_amount))
$sum += $value->total_amount;
}
$this->bean->current_sales = $sum;
parent::preDisplay();
}
Вместо создания собственного дашлета. Вы могли бы создать отчет вместо этого. Добавьте поле, которое вы хотите отобразить. Добавьте поле total amount
а затем установите функцию итога. Вы можете сгруппировать по названию продаж.
На главном экране добавьте дашлет отчетов, нажмите кнопку редактирования и выберите отчет, который вы только что создали.
Добавьте логический крючок (before_save), который будет вычислять это поле при сохранении записи, а затем сохранит его внутри того же модуля.
Когда у вас есть поле в том же модуле, просто добавьте в dashlet, как обычные поля.
Преимущество использования этой логики: