Показать сообщение отдельно
Старый 01.08.2014, 09:36   #4  
Ярослав Щекин is offline
Ярослав Щекин
Участник
 
78 / 174 (6) ++++++
Регистрация: 16.03.2009
В процессе тестирования выяснилось, что не работает с полями из Datasource-ов с linkType == InnerJoin, поэтому теперь тестируем такой вариант:

Код:
if (_p1 == #taskShortCutMenuFilter) {
   formControl = this.selectedControl();
   if (formControl && classidget(formControl) == classnum(formStringControl)) {
      formStringControl = formControl;
      if (formStringControl.dataField()) {
         for (f = 1; f <= this.dataSourceCount(); f++) {
            formDataSource = this.dataSource(f);
            if (formDataSource.id() == formStringControl.dataSource()) {
               formDataSource.filter(formStringControl.dataField(), queryvalue(formStringControl.valueStr()));
               joinSourceId = formDataSource.joinSource();
               if (joinSourceId && formDataSource.linkType() == FormLinkType::InnerJoin) {
                  for (i = 1; i <= this.dataSourceCount(); i++) {
                      formDataSource = this.dataSource(i);
                      if (formDataSource.id() == joinSourceId) {
                         formDataSource.research();
                         break;
                         }
                      }
                  }
               return 1;
               }
            }
         }
      }
   }