Jump to content

OlegTimkiv

uniGUI Subscriber
  • Posts

    128
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by OlegTimkiv

  1. 5 minutes ago, Sherzod said:

    Добрый день,

    Есть тестовый случай для воспроизведения?

    procedure TMainForm.UniDBGrid1ColumnFilter(Sender: TUniDBGrid; const Column: TUniDBGridColumn; const Value: Variant);
    begin
      if UniMainModule.ADOQuery1.Active then
      begin
         UniMainModule.ADOQuery1.Filter :=
          'CompanyName LIKE ''%Alfreds Futterkiste%'' and (ContactName = ''Maria Anders'' or ContactName = ''Ana Trujillo'')' ;
          //'CompanyName LIKE ''%Alfreds Futterkiste%'' and ContactName in (''Maria Anders'', ''Ana Trujillo'')' ;
          //'CompanyName LIKE ''%Alfreds Futterkiste%'' and ContactName = ''Maria Anders'' or ContactName = ''Ana Trujillo''';
         UniMainModule.ADOQuery1.Filtered := true;
      end;
    end;

    Для теста думаю достаточно, могу сделать с формированием строки фильтра.  

    GridFiltering.7z

  2. Добрый день! 

    Пытаюсь сделать такой фильтр.  

    Так работает :

    'CompanyName LIKE ''%Alfreds Futterkiste%'' and ContactName = ''Maria Anders'' or ContactName = ''Ana Trujillo'''

    Добавляя скобки или in ошибка "Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом" .

    'CompanyName LIKE ''%Alfreds Futterkiste%'' and (ContactName = ''Maria Anders'' or ContactName = ''Ana Trujillo'')' 
    'CompanyName LIKE ''%Alfreds Futterkiste%'' and ContactName in (''Maria Anders'', ''Ana Trujillo'')'

    Хотя в документации есть такой пример 

    Country IN (SELECT Country from Country where Currency = '_Franc')

     

    Filter.jpg

  3. On 7/16/2021 at 4:07 PM, zilav said:

    Просто подождите когда гиперсервер начнет поддерживать несколько серверов.

    Да и что у Вас там за нагрузка что один гипер уже не справляется и надо распределять нагрузку на несколько серверов?

    Планируется от 1000 до 2000 подключений, один гипер должен справиться.  Сейчас на всякий случай смотрю как сбалансировать на другой сервер.     

  4. Добрый день! Балансирует nginx.

    Работает только правильно "ip-hash".  В других случаях (round-robin, least-connected) ошибка "Недопустимый сеанс или тайм-аут сеанса". Может кто-нибудь сталкивался с таким поведением?    

     

    upstream cache-api {
    ip_hash;
    # random;
    server 172.17.1.87:85 max_fails=5 fail_timeout=10s;
    server 172.17.1.151:85 max_fails=5 fail_timeout=10s;
    server 172.17.1.98:85 max_fails=2 fail_timeout=10s;
    # server 172.17.1.87:85;
    # server 172.17.1.151:85;
    # server 172.17.1.98:85;
    }

     

  5. 16 hours ago, Sherzod said:

    Здравствуйте,

    Попробуйте этот код:

    UniDBTreeGrid -> 

    
    function afterCreate(sender)
    {
        let store = sender.getStore();
    
        sender._renderer = function() {
            Ext.defer(function() {
                store.each(function(item) {
                    if (item.data.leaf == false) {
                        sender.getEl().select('table[data-recordid="' + item.internalId + '"] .x-grid-checkcolumn').setStyle('display', 'none');
                    }
                })
            }, 0);
        };
    
        store.on('refresh', sender._renderer);
        
        sender.on('afteritemcollapse', sender._renderer);
        sender.on('afteritemexpand', sender._renderer);
    }

     

    Огромное спасибо! Работает!!!  

  6. 49 minutes ago, Sherzod said:

    Это решение для меню (mouseout), на данный момент:

    
    procedure TMainForm.UniFormReady(Sender: TObject);
    begin
      with TExtPopup(UniPopupMenu1).MenuControl.JSInterface do
      begin
         JSAddListener('afterrender', 'function(){'+
              'var addMenuMouseOut = function(menu) {'+
              'menu.on({'+
              '    mouseleave: function() {'+
              '        this.hide();' + TExtPopup(UniPopupMenu1).MenuControl.JSName +'.hide();'+
              '    }'+
              '});'+
              'menu.items.each(function(item) {'+
              '    if (item.menu) {'+
              '        addMenuMouseOut(item.menu);'+
              '    }'+
              '});'+
              '}; addMenuMouseOut('+ TExtPopup(UniPopupMenu1).MenuControl.JSName +');'+
          '}')
      end;
    end;

     

    Спасибо! Всё работает!   

  7. При наведении на кнопку отображаем popupMenu.

    procedure TMainForm.btnJornalsMouseEnter(Sender: TObject);
    begin
        with TExtPopup(pmJornals).MenuControl.JSInterface do
        begin
            JSCall('showBy', [btnJornals.JSControl]);
            JSCall('setPosition', [btnJornals.Left, btnJornals.Top + btnJornals.Height]);
        end;
    end;

    Как сделать закрытие popupMenu после смены фокуса?

  8. On 9/11/2020 at 9:14 PM, stas said:

    Здравствуйте, 

    "вопрос конечно интересный ". Естественно,  не зная ничего о проекте, любой форумчанин с радостью подскажет Вам правильный ответ. Что такое слои, если Вы хотите интерфейс поместить в одно приложение,  базу данных в другое, тогда, да, можно.  Только сервис для работы с бд лучше поместить вне унигуи.

    Уи отделить можно,  но не нужно, они и так отделяются, если Вы используете unigui с поддержкой Ext.modern

      У  меня используется iis  + arr + urlrewrite+hyperserver Выдерживаем 800 одновременных подключений. 

    Можно  больше. 

    Одним словом,  конкретика тётя информации

    Спасибо 

    Здравствуйте,  

    спасибо за разъяснения! У нас система документооборота,  развернута dll на iis + nginx. В дальнейшем планируем приложение  под мобильные устройства с урезанным функционалом. По идеи должен быть сервис для работы с бд и две ui. 

    Ext.modern - подскажите пожалуйста что это?

    Надо понимать с какого устройства вошел пользователь, для отображения нужной ui. 

    Если нагрузка на сервис будет большая можно через nginx, перекинуть на другой сервис.  

        

  9. Добрый день! 
    Для балансировки нагрузки возможно ли разбить проект на слои? Понятно что это можно многими способами сделать. например: Nginx, HyperServer.  

    Также интересно - UI отделить можно?  Один для персональных компьютеров другой для мобильных устройств.  

  10. On 6/1/2020 at 2:58 PM, Sherzod said:

    Hello,

    Sorry for the "late" response.

    Do you mean using the Exporter plugin? If yes, unfortunately at the moment this is not possible.

    Hello,

    Replace icons on text? Thanks You!

  11. Добрый день! Как развернуть и свернуть ветку в TreeGrid при клике? 

    Разворачивание работает, а вот как свернуть.   

    UniDBTreeGrid2.ClientEvents.ExtEvents.Values['select'] :=
            'function select(sender, record, index, eOpts)                                              '+
            '{                                                                                          '+
            '  var me=sender.grid;                                                                      '+
            '   try {                                                                                   '+
            '       me.getSelectionModel().getSelected().items[0].expand();                             '+
            '       me.selectPath(me.getSelectionModel().getSelected().items[0].getChildAt(0));         '+
            '       }                                                                                   '+
            '           catch(err) {                                                                    '+
            '                                                                                           '+
            '    }                                                                                      '+
            '}  ' ;

     

  12. On 4/30/2020 at 11:30 PM, Sherzod said:

    Здравствуйте,

     

    Можете уточнить?

    Здравствуйте! 

    При экспорте эти поля пустые.   

    Icon.jpg

  13. Здравствуйте!

    Подскажите пожалуйста, как можно экспортировать корректно в xlsx если:

    1) paged = true а нужны все данные;

    2) в шапке грида наименование столбца картинка;   (grd.Columns.Items[0].Title.Caption := Format(IMG16X16_FIELD_LINK, ['images\16\1.png']));

    3)  данные в столбце заменяются на картинку, текст; (TADOQuery GetText); 

    В дорожной карте только ExportableGrids, будет ли реализован экспорт в TreeGrid? Если да, то как скоро?

    Спасибо! 

     

  14. 15 hours ago, Sherzod said:

    Добрый день,

    Есть одно примерное решение, но есть одна проблема, потом не можете свернуть родительский узел.

    
    function select(sender, record, index, eOpts)
    {
        var me=sender.grid;
        try {
            me.getSelectionModel().getSelected().items[0].expand();
            me.selectPath(me.getSelectionModel().getSelected().items[0].getChildAt(0));
        }
        catch(err) {
            //console.log(err)
        }
    }

     

    Еще один вариант, можете не ссылаться на DataSet, а использовать переменную, которая будет обновляться при выборе узла, с учетом, является ли узел родительским или нет...

    Спасибо! 1-й вариант, как раз что нужно. 

  15. Добрый день! После изменения в коде "TreeKeyFields". Перемещение по dataset работает не корректно, на видео продемонстрировано. Оказывается это его нормальное поведение, можно ли сделать переход с родительской на дочернюю ветку?   

×
×
  • Create New...