Нужна фильтрация в KATSOPR

Приемы и подходы, обмен опытом

Модераторы: Screw, larin

Ответить
Hershy
рег.отделение
Сообщения: 64
Зарегистрирован: Вт, 03/03/2009 07:53
Имя Фамилия: Николай Воронцов
Откуда: Галактика-Урал
Контактная информация:

Нужна фильтрация в KATSOPR

Сообщение Hershy »

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

Код: Выделить всё

alter interface "SOPRDOCB";
Create view as select * FROM KATSOPR ORDER BySrok BY KATSOPR.RESERVED,KATSOPR.SROKRES;
overload
end;
//***************************************************
HANDLEEVENT
cmColumnClicked:{
    Case Target of
    #KATSOPR.SROKRES:{
        case GetColumnSorting(BRSELECT, Target) of
        0:{
            SetColumnSorting(BRSELECT, Target, 1);
            SetOrder(tiBySrok);
            SetTableBackOrderIn(tnKATSOPR, false);
        }
        1:{
            SetColumnSorting(BRSELECT, Target, -1);
            SetTableBackOrderIn(tnKATSOPR, true);
        }
        -1:{
            SetColumnSorting(BRSELECT, Target, 1);
            SetTableBackOrderIn(tnKATSOPR, false);
        }
        end;
    }
    end;
    RescanPanel(BRSELECT);
}
//***************************************************
END;
end.
Этот код не работает, хотя событие происходит. Не работает, т.к. накладные не сотрируются по нужному полю.
При компиляции випер выдает предупреждение о внешней выгрузке BySrok. Видимо поэтому и не сортируется.
Нам нужно знать, есть ли возможность таки реализовать задуманное?
masygreen
партнер
Сообщения: 112
Зарегистрирован: Чт, 20/03/2008 09:10
Имя Фамилия: Максим Черепанов
Откуда: IT
Контактная информация:

Re: Нужна фильтрация в KATSOPR

Сообщение masygreen »

навскидку
1. фигня какая то написана Create view as select * FROM KATSOPR ORDER BySrok BY KATSOPR.RESERVED,KATSOPR.SROKRES;
наверно Create view as select * FROM KATSOPR ORDER BY KATSOPR.RESERVED,KATSOPR.SROKRES;
2. созданы ли индекс KATSOPR.RESERVED+KATSOPR.SROKRES,KATSOPR.RESERVED,KATSOPR.SROKRES
Hershy
рег.отделение
Сообщения: 64
Зарегистрирован: Вт, 03/03/2009 07:53
Имя Фамилия: Николай Воронцов
Откуда: Галактика-Урал
Контактная информация:

Re: Нужна фильтрация в KATSOPR

Сообщение Hershy »

Нет, ну я Вас умоляю :)

1. Вы мануал читали, касаемо "Метод SetOrder" и про именованные ограничения и фильтры?

2. Индекс есть KATSOPR.RESERVED+KATSOPR.SROKRES, это же можно на любой галактической базе посмотреть.

И последнее. В примере, если Вы не заметили, докомпилим интерфейс, и в стандартном интерфейсе KATSOPR уже подцеплена, правда без каких - либо ограничений, поэтому и вопрос-то.

Если в стандартном интерфейсе не был использован ни один из индексов KATSOPR, почему, тогда при компиляции випер выдает предупреждение о внешней выгрузке, а сортировка не отрабатывает как нужно в докомпилированном интерфейсе.
Hershy
рег.отделение
Сообщения: 64
Зарегистрирован: Вт, 03/03/2009 07:53
Имя Фамилия: Николай Воронцов
Откуда: Галактика-Урал
Контактная информация:

Re: Нужна фильтрация в KATSOPR

Сообщение Hershy »

Добавили индекс в катсопр

Код: Выделить всё

alter table KATSOPR add index (KATSOPR43 = SROKRES);
все равно

Код: Выделить всё

alter interface "SOPRDOCB";
Create view as select * FROM KATSOPR ORDER BySrok BY KATSOPR.SROKRES;
overload end;
end;
не отрабатывает, как будто ничего и не происходит, только стрелка в заголовке поля меняется, как будто сортировка идет, а записи не сортируются по нужной дате.
Ged
топ-софт
Сообщения: 76
Зарегистрирован: Вс, 16/09/2007 10:23
Имя Фамилия: Леонид Поликутин
Откуда: Галактика СПб
Контактная информация:

Re: Нужна фильтрация в KATSOPR

Сообщение Ged »

И не будет. Т.к. на катсопр уже установлено ограничение по VidSopr
+ если накладываются отдельные фильтры на накладную, то и их необходимо учитывать.
в простейшем варианте (без фильтров)

Код: Выделить всё

Alter Interface SoprDocB;

Create view
As Select
 *
From
 KatSopr
Order BySrok By KatSopr.VidSopr, KatSopr.Reserved, KatSopr.SrokRes
;

//------------------------------------------------------------------------------
// Interface
//------------------------------------------------------------------------------
HandleEvent
  cmColumnClicked:
  {
      Case Target of
      #KatSopr.SrokRes:
      {
          case GetColumnSorting(brSelect, Target) of
          0:{
              SetColumnSorting(brSelect, Target, 1);
              SetOrder(tiBySrok);
              SetTableBackOrderIn(tnKatSopr, false);
          }
          1:{
              SetColumnSorting(brSelect, Target, -1);
              SetTableBackOrderIn(tnKatSopr, true);
          }
          -1:{
              SetColumnSorting(brSelect, Target, 1);
              SetTableBackOrderIn(tnKatSopr, false);
          }
          end;
      }
      else
        if( inherited :: HandleEvent (cmColumnClicked)=heOk){}

      end;
      RescanPanel(tnKatSopr);
  }
//------------------------------------------------------------------------------
END;
end.
Ответить