Как я могу использовать библиотеку EXTJS, чтобы загрузить индикатор выполнения на экран и контролировать время выполнения сохраненного поиска в NetSuite? - PullRequest
0 голосов
/ 25 марта 2019

Я пытаюсь настроить индикатор выполнения (в окне сообщения) на стороне клиента для типа записи журнала в NetSuite. Предполагается, что этот индикатор выполнения срабатывает при щелчке по ПУНКТУ СЧЕТА (поле столбца в записи журнала). При щелчке предполагается, что сохраненный поиск будет запущен, а когда поиск будет завершен, скройте индикатор выполнения и поместите результаты в другое поле столбца на странице.

Я уже пытался использовать инфраструктуру EXT JS для загрузки индикатора выполнения. Я успешно справился с этим, когда щелкнул элемент учетной записи, НО не смог скрыть панель после завершения поиска.

Сначала я объявляю сохраненный поиск, который по существу вызывает индикатор выполнения:

var saved_search = showProgressBarWithFn(search);

Функция "showProgressBarWithFn (search)":

   showProgressDialogWithFn: function(search)
    {
        try
        {

            Ext.MessageBox.show({
                title: 'Please wait',
                msg: 'Loading items...',
                width:300,
                wait:true,
                waitConfig:{
                    interval: 200,
                    scope : Ext.bind(search, this), 
                    fn : function(){
            Ext.MessageBox.hide();

                    }

                }
            });

        }
        catch(e)
        {
            console.log("An unexpected error occurred" + e.message);
        }
    }

Выше я пытался принудительно запустить прицел при поиске, поэтому был вызван вызов ext.bind. (Пожалуйста, сообщите, если я использовал эту функцию неправильно). В документации по API я прочитал, что «видимость» вызывает обратный вызов.

Я ожидаю, что индикатор выполнения отобразится на экране, а затем исчезнет сразу после того, как сохраненный поиск вернул результат.

Будем весьма благодарны за любые указания по выполнению этой задачи!

1 Ответ

0 голосов
/ 28 марта 2019

Я решил это по-другому и решил поделиться своим ответом.Сначала я создал функцию без обратного вызова, как показано ниже.

 showProgressDialog: function(Title, message)
    {
        try
        {
            Ext.MessageBox.show({
                title: Title,
                msg: message,
                width:300,
                wait:true,
                waitConfig:{

                    interval:200,
                }
            });
        }

Затем я вызываю ее в своей основной функции скрипта, затем выполняется сохраненный поиск, а затем просто ЗАКРЫВАЮ диалоговое окно, используя "Ext.MessageBox.Hide.() "с вызовом setTimeOut, позволяющим отображать на экране небольшую задержку для индикатора выполнения.

showProgressDialog('Running vendor/customer search', 'Please wait...');
var results = executeSavedSearch('customer', filters, fields);
setTimeout (function() {Ext.MessageBox.hide();},1000);

Причина setTimeOut () в том, что сохраненный поиск завершается слишком быстро, чтобы отобразить индикатор выполненияи снова спрятаться.Будем рады рассказать об этом, если у других людей возникнут аналогичные проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...