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


Обновление поля при вычислении "на лету", как реализовано?


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

#1 plotnikov

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

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

Отправлено 08 Январь 2017 - 15:46

На примере стандартной таблицы счета. В таблице есть подтаблица Позиции счета, в которой вычислениями считается Сумма каждой позиции. Далее вычислениями эта сумма переносится в поле Сумма Таблицы Счета. См скриншот:
Прикрепленное изображение: счета.jpg

Фишка всего этого, что все вычисления и обновления происходят "на лету". Даже из подтаблицы в основную запись Сумма записывается сразу и тут же появляется в поле - без перезагрузки страницы и, что еще круто, независимо от того в режиме редактирования записи мы находимся или просто в просмотре.

Обновления "на лету" я делал через яваскрипт аякс запросами. А тут получается, что КБ сама умеет обновлять на лету нужные поля после вычисления. Но как?

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

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

Сообщение отредактировал plotnikov: 08 Январь 2017 - 15:46


#2 Tony999

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

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

Отправлено 09 Январь 2017 - 06:57

Да через ajax там все сделано, а значение, например, суммы в основной таблице - через jquery.
Ничего необычного. Похожее можно сделать самому. Необязательно копаться в кодах КБ.
КБ - помощь, проекты и решения.
Хостинг. Аренда. Продажа.
ВашаБаза.рф

#3 CbCoder

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

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

Отправлено 09 Январь 2017 - 09:20

Ваше вычисление во внешнем файле должно возвращать результат, который должен обрабатываться функцией, привязанной к ajax-запросу. Соответственно, эта функция помещает полученное значение в нужное вам поле. Как правильно заметил Tony999, дело тут не в КБ, а в знании работы с ajax.

#4 plotnikov

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

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

Отправлено 09 Январь 2017 - 11:08

Добрый день. Сейчас у меня так все и работает, но это в режиме просмотра записи... В подтаблице же яваскрипт не обрабатывается? Каким образом обновляется на лету, например, Сумма в позиции счета? Вопрос именно про отображение в подтаблице. В просмотре записи как раз все бы работало - как раз аякс запросом с возвратом результата и дальнейшим обновлением поля.

#5 CbCoder

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

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

Отправлено 09 Январь 2017 - 12:55

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

#6 plotnikov

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

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

Отправлено 09 Январь 2017 - 13:14

Цитата

А зачем вам в подтаблице это понадобилось, если там уже есть свой встроенный механизм?
Если есть готовый инструмент, то зачем изобретать по новой? В КБ много недокументированных функций, которые выискиваешь по форуму самостоятельно, возможно здесь также. То есть каких-то открытых инструментов задействовать яваскрипты в подтаблицах нет?

Цитата

побоялся бы без необходимости что то там "шатать".
зачем шатать? просто использовать готовую "функцию". В saas версии особо не пошатаешь.

#7 CbCoder

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

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

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

Цитата

Если есть готовый инструмент, то зачем изобретать по новой?

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

#8 plotnikov

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

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

Отправлено 09 Январь 2017 - 18:51

CbCoder, про "на лету" вопрос снят, действительно стандартных функций хватает. Далее разговор уже пошел про использование яваскриптов из полей в режиме подтаблицы. Не для обновления "на лету"... а для самых разных задач, как это делается при просмотре записи.





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

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