Перейти к содержимому


Вычисления в таблице (не в полях)


Сообщений в теме: 5

#1 kg0

    Активный участник

  • Пользователи
  • PipPipPip
  • 145 сообщений

Отправлено 01 Январь 2011 - 22:30

Добрый день,

Версия 1.9.2-771

Есть таблица, для нее определены вычисления, которые меняют значения полей записи при сохранении, по определенной формуле.

В данный момент в таблице более 1000 записей.
Возникла потребность сменить формулу вычислений в таблице.

Можно ли сделать так, чтобы программа сама для каждой записи запустила вычисления по новой формуле (чтобы обновить значение полей), или же придется в ручную открывать каждую запись и нажимать кнопку Сохранить?

И еще ситуация, аналогичная. Я добавляю в таблицу новое поле, значение которого формируется автоматически "вычислениями в таблице".
Как заполнить это новое поле в автоматическом режиме (иначе придется вручную открыть каждую из 1000 записей и нажать кнопку сохранить).

(использовать "вычисления в полях" не предлагать)

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 10 Январь 2011 - 11:11

А зачем собственно возникла необходимость принудительного пересчета значений полей? По идее пока пользователь не откроет запись с данным полем, ему без разницы что там хранится: старое или новое значение.

#3 kg0

    Активный участник

  • Пользователи
  • PipPipPip
  • 145 сообщений

Отправлено 10 Январь 2011 - 14:08

Просмотр сообщенияРазработчик (10.1.2011, 11:11) писал:

А зачем собственно возникла необходимость принудительного пересчета значений полей? По идее пока пользователь не откроет запись с данным полем, ему без разницы что там хранится: старое или новое значение.

Например, если есть поле, в котором хранится некий "код (идентификатор)", который формируется на основании значений других полей записи.
Код формируется по определенной формуле, которая не зависит от пользователя (а зависит от разработчика).

И при этом этот "код" используется в других таблицах через "связь".

Потом вдруг разработчик меняет формулу для "кода" и возникает необходимость сменить алгоритм генерации этого "кода" - и, соответственно, пересчитать значение во всех полях, где этот "код" хранится. Пользователь к этому никакого отношения не имеет.

#4 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 10 Январь 2011 - 14:28

Когда пользователь откроет поле с данным кодом (через поле связи, как вы пишите), тогда код у него и пересчитается. Необходимости открывать само исходное поле для пересчета значения нет.

#5 kg0

    Активный участник

  • Пользователи
  • PipPipPip
  • 145 сообщений

Отправлено 10 Январь 2011 - 15:19

Просмотр сообщенияРазработчик (10.1.2011, 14:28) писал:

Когда пользователь откроет поле с данным кодом (через поле связи, как вы пишите), тогда код у него и пересчитается. Необходимости открывать само исходное поле для пересчета значения нет.

Это касается только вычисляемых полей (т.е. полей, которые вычисляются при каждом отображении) ?

Как я писал изначально, мне бы очень хотелось избежать использования "вычисляемых полей" и использовать только "вычисления в таблице" (т.е. вычисления, которые происходят только при сохранении записи).

Это связано с тем, что я уже ранее обращался с проблемой быстродействия КБ и Вы мне тогда порекомендовали уменьшить кол-во записей в рабочих таблицах.
Уменьшить кол-во записей я не могу, поэтому пришлось перейти от использования "вычислений в полях" на "вычисления в таблице".

Поэтому у меня и возник такой вопрос - можно ли принудительно запустить таблицу на перерасчет...

#6 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 10 Январь 2011 - 15:35

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





Количество пользователей, читающих эту тему: 3

0 пользователей, 3 гостей, 0 анонимных