Страница 1 из 1

Переключение Browse File/Page в рантайме

Добавлено: 19 Сентябрь 2015, 17:24
morkovin
C10, ABC, TPS
Есть стандартный Browse+InteractiveFilter(Taboga)+Totals+FileLoad. Всё работает, но не быстро. Хотелось бы, чтобы Browse изначально был в PageLoad, а переключался в FileLoaded(для правильного подсчета Totals) только при применении фильтра. И ,соответственно, при отключении фильтра снова переключался бы в PageLoaded.
Пробовал устанавливать(сбрасывать) BRW1.FileLoaded, но получается ерунда -нужны какие-то дополнительные инициализации броуса. Но какие?

Переключение Browse File/Page в рантайме

Добавлено: 19 Сентябрь 2015, 18:24
kreator
А для чего? Если для Totals, то и так стандартный вариант (шаблоны, классы) делает полный проход по View.

Переключение Browse File/Page в рантайме

Добавлено: 19 Сентябрь 2015, 18:35
morkovin
Totals, то и так стандартный вариант (шаблоны, классы) делает полный проход по View
Замедление становится слишком заметно. Я подсчитываю Totals "по требованию" - по кнопке, на которой код:

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

CLEAR(Loc:SumHours)
     LOOP X# = 1 TO RECORDS(Queue:Browse:1)
          GET(Queue:Browse:1,X#) 
          IF ERRORCODE() THEN BREAK.
          Loc:SumHours=Loc:SumHours+Queue:Browse:1:BAP:Netto
      END
т.е. подсчет по отфильтрованной очереди . И что-то в режиме PageLoad подсчет только по видимой странице, а в режиме FileLoad - всё Ok.

Переключение Browse File/Page в рантайме

Добавлено: 19 Сентябрь 2015, 19:41
kreator
Ну чудес не бывает. Либо загрузка данных идёт медленно в случае FileLoad, либо в случае PageLoad всё равно при расчёте Totals нужно лезть в базу. Видимо при применении фильтра расчёт Totals нужно сделать вручную.
Вообще мне кажется изменение FileLoad в рантайме - не криминал, нужно только правильно обновить броуз после изменения, типа BRW1.Reset. В очередь закачаются все данные.