Показать записи, где поле NULL внутри всплывающего окна - PullRequest
1 голос
/ 31 января 2020

Мне удалось отфильтровать записи, которые появляются, когда мы нажимаем кнопку select внутри подпанели. Это можно сделать, переопределив значение $initial_filter следующим образом:

public function display($widget_data, $additionalFormFields = null, $nonbutton = false) {
    global $app_strings; $initial_filter = '';
    $initial_filter.='&SOME_FIELD='.urlencode("SOMEVALUE");
}

Этот начальный фильтр будет использоваться в качестве параметра $_GET при открытии всплывающего окна, поэтому он будет знать, какие записи отображать

Теперь сложная часть: я пытаюсь выяснить, как его отфильтровать, чтобы он отображал записи, где SOME_FIELD пуст ... Я пробовал что-то вроде SOME_FIELD=null или SOME_FIELD=false, но это не работает ... Если любой может предложить что-нибудь, что будет оценено.

1 Ответ

2 голосов
/ 24 февраля 2020

Вам нужно будет изменить запрос представления списка и логи выборки данных c. Для получения дополнительной справки просмотрите следующие сведения:

Только для просмотра списка : custom/modules/MODULE_NAME/views/view.list.php

и следующий код помощи:

require_once('include/MVC/View/views/view.list.php');
class MODULE_NAMEViewList extends ViewList {

    function listViewProcess() {
        global $current_user;
        $this->params['custom_where'] = ' AND module_name.name = "test" ';

        parent::listViewProcess();
}

}

Для списка и всплывающего окна (оба) :

Вам необходимо изменить функцию logi c внутри create_new_list_query, которая фактически готовит запрос. Некоторые модули переопределяют его на уровне компонента (например, см. modules/Leads/Lead.php).

Если вы хотите переопределить его безопасным способом обновления, то создайте файл в пользовательском каталоге, например: custom/modules/Leads/Lead.php, а затем расширьте его из класса базового компонента следующим образом:

<?php
if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');

require_once('modules/Leads/Lead.php');
class CustomLead extends Lead {

    function create_new_list_query($order_by, $where,$filter=array(),$params=array(), $show_deleted = 0,$join_type='', $return_array = false,$parentbean=null, $singleSelect = false, $ifListForExport = false)
    { 
        // Code from create_new_list_query in and then modify it accordingly. 
    }
}

Зарегистрируйтесь новый класс bean в этом месте: custom/Extension/application/Ext/Include/custom_leads_class.php и регистрационный код будет выглядеть следующим образом:

<?php
$objectList['Leads'] = 'Lead';
$beanList['Leads'] = 'CustomLead';
$beanFiles['CustomLead'] = 'custom/modules/Leads/Lead.php';
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...