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


Обновление источника


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

#1 Александр Пономарев

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

  • Пользователи
  • PipPipPip
  • 435 сообщений
  • Пол:Мужчина
  • Город:Таганрог

Отправлено 05 Апрель 2014 - 11:53

В полях, которые являются ссылками на другие таблицы, значения формируются автоматически, подставляясь из "родительского поля". Никаких внешних признаков того, что поле вычисляемое из другой таблицы, нет. Пользователи меняют, например, телефон контакта, сохраняют запись, а при следующей загрузке телефон старый. Потому что поменяли не в источнике, не в "родительском поле", а в получателе, в "дочернем поле". Можно, конечно, персонально расписать алгоритм обновления, но проблема типовая и есть смысл сделать внутреннюю функцию обновлении источника из приемника.
Предлагаю сделать это так:
1. При указании в поле, что оно является ссылкой на поле другой таблицы, добавляется чекбокс в настройке "Предлагать обновлять в источнике при изменении".
2. Если админ активирует эту опцию при настройке поля, то автоматически при каждом изменения значения в связанном поле система должна вываливать запрос "Обновить данные в источнике?".
3. Если выбирается "Обновить", то автоматически данные в источнике приводятся в соответствии с данными в приемние.
4. Если нет - не приводятся. Но в этом случае надо подумать, не стоит ли разорвать в таком случае ссылку и не сделать это поле просто текстовым?

#2 CbCoder

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

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

Отправлено 05 Апрель 2014 - 15:16

Если речь про вычисляемые поля, в которых значение формируется автоматически из связанной таблицы, то такие поля просто не должны редактироваться вообще, т.е. в них должно быть запрещено редактирование правами доступа. При необходимости отредактировать значение, нужно перейти в запись-источник и править там. То, что вы предлагаете (возможность редактирования источника через получателя) сделать встроенной функцией в принципе невозможно, т.к. вычисления никак не связаны с настройками поля, в них может быть какой угодно произвольный код, и проанализировать его автоматом достаточно проблематично. Реализовать эту задачу можно при желании только таким же вычислением, только обратного свойства.

#3 Александр Пономарев

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

  • Пользователи
  • PipPipPip
  • 435 сообщений
  • Пол:Мужчина
  • Город:Таганрог

Отправлено 06 Апрель 2014 - 21:00

Вообще-то я не имел в виду мастер-формулы, а имел в виду при использовании конструктора. У вас же отслеживается, конструктор или мастер сформировал формулу. При конструкторе связь вполне понятна и прямая и обратная. Если этого нельзя сделать, надо как-то помечать поле справа пиктограммой для понимания, что поле является вычисляемым и что в него нельзя вводить значений вручную. Может быть с возможностью по нажатию этой пиктограммы открывать новое окно для корректировки значения в родительском поле.

#4 CbCoder

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

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

Отправлено 07 Апрель 2014 - 08:27

Цитата

У вас же отслеживается, конструктор или мастер сформировал формулу

Не отслеживается, конструктор просто автоматом формирует вычисление.

Цитата

Если этого нельзя сделать, надо как-то помечать поле справа пиктограммой для понимания, что поле является вычисляемым и что в него нельзя вводить значений вручную

Скорее всего просто добавим автоматическое отключение прав на редактирование, если в поле использован конструктор.





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

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