Есть таблицы, у которых общая подтаблица.
Как в вычислении подтаблицы узнать, из какой родительской таблицы были внесены изменения, за которыми последовало вычисление?
Как пример, есть таблица сделки, есть таблица объекты. У них общая подтаблица физ лиц. У таблицы физ лица есть связь и со сделкой и с объектом.
Открыв таблицу сделки и внеся изменения в подтаблицу физ.лица, запускается вычисление, в вычислении нужно знать что оно запущено именно с таблицы сделки, а не с таблицы объекты.
1
Узнать id родительской таблицы.
Автор Konstantinov, 25 янв. 2018 15:59
Сообщений в теме: 2
#1
Отправлено 25 Январь 2018 - 15:59
#2
Отправлено 26 Январь 2018 - 09:45
Боюсь, никак это не отследить в вычислении. Для вычисления вообще отсутствует такая сущность как подтаблица, ему без разницы в каком режиме данные редактировались.
#3
Отправлено 04 Февраль 2018 - 21:01
URL, например, все это покажет.
Делаем вычисление на отображение любого поля, которое отображается в режиме просмотра.
или просто в файле functions_custom.php - будет автоматом срабатывать после каждой перезагрузки страницы, что нам и надо.
Вот и все. Делаем свое вычисление в подтаблице,опрашиваем нашу глобальную переменную. В ней будет нужный номер "родительской таблицы".
Кстати, почему preg_match? Да просто удобно. Если понадобится, можно и такой фильтр сделать, например:
Полезная штука!
P.S. Кстати, первые две строки кода можно и опустить. При обновлении страницы, также как и при переходе в режим просмотра записи, глобальная переменная в любом случает получит id текущей основной таблицы.
Делаем вычисление на отображение любого поля, которое отображается в режиме просмотра.
или просто в файле functions_custom.php - будет автоматом срабатывать после каждой перезагрузки страницы, что нам и надо.
$uri = $_SERVER['REQUEST_URI']; if (preg_match("/line/is",$uri)) // Это режим просмотра записи $_SESSION['tbl'] = $table['id']; // Записываем номер таблицы в глобальную переменную (видна везде).
Вот и все. Делаем свое вычисление в подтаблице,опрашиваем нашу глобальную переменную. В ней будет нужный номер "родительской таблицы".
Кстати, почему preg_match? Да просто удобно. Если понадобится, можно и такой фильтр сделать, например:
preg_match("/(filter=271|filter=281|filter=291|filter=301|filter=341|table=351)/is",$uri)- запускать вычисления от множества условий в строке URL.
Полезная штука!
P.S. Кстати, первые две строки кода можно и опустить. При обновлении страницы, также как и при переходе в режим просмотра записи, глобальная переменная в любом случает получит id текущей основной таблицы.
Сообщение отредактировал Tony999: 10 Февраль 2018 - 13:39
Умные сайты на заказ
https://info.crm-master.info
https://info.crm-master.info
Количество пользователей, читающих эту тему: 4
0 пользователей, 4 гостей, 0 анонимных