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


Заполнение полей подтаблицы


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

#1 Kubanec

    Новичок

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

Отправлено 01 Октябрь 2015 - 14:13

Есть таблица "Клиенты", у нее подтаблица "Документы", в последней подтаблица "Спецификация".
А также таблица "Мероприятия" у которой есть подтаблица "Работы".

При заполнении таблицы "Мероприятия" выбираем "Клиента", по внутреннему фильтру с каким документом работать из таблицы "Документы". Возникает трудность с заполнением подтаблицы "Работы", никак не связать с таблицей "Спецификация" с фильрацией по "Документам" и "Клиенту". Как решить проблему?

#2 CbCoder

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

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

Отправлено 01 Октябрь 2015 - 14:46

Честно говоря мало что понял. Можете скриншотами показать, что куда и как?

#3 Kubanec

    Новичок

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

Отправлено 01 Октябрь 2015 - 18:18

Проблема вот в чем:
У "Компании" есть несколько "Препаратов", каждому препарату свойственна своя спецификация.

Трудность - не получается при заполнении подтаблицы "Протокол" сделать возможность выбора позиций из таблицы "Спецификация" с учетом выбранного препарата

Прикрепленные изображения

  • Прикрепленное изображение: Блок-схема.jpg

Сообщение отредактировал Kubanec: 01 Октябрь 2015 - 18:28


#4 CbCoder

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

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

Отправлено 02 Октябрь 2015 - 10:53

Просмотр сообщенияKubanec (01 Октябрь 2015 - 14:13) писал:

Есть таблица "Клиенты", у нее подтаблица "Документы", в последней подтаблица "Спецификация".
А также таблица "Мероприятия" у которой есть подтаблица "Работы".

При заполнении таблицы "Мероприятия" выбираем "Клиента", по внутреннему фильтру с каким документом работать из таблицы "Документы". Возникает трудность с заполнением подтаблицы "Работы", никак не связать с таблицей "Спецификация" с фильтрацией по "Документам" и "Клиенту". Как решить проблему?

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

#5 Kubanec

    Новичок

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

Отправлено 02 Октябрь 2015 - 10:57

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

#6 CbCoder

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

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

Отправлено 02 Октябрь 2015 - 11:50

А как вы делали фильтр для Документа по Клиенту? Разве не используя "фильтр по полю"? Точно также и здесь: в настройках поля Спецификация устанавливается фильтр по полю Документ.

#7 Kubanec

    Новичок

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

Отправлено 02 Октябрь 2015 - 14:01

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

#8 CbCoder

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

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

Отправлено 02 Октябрь 2015 - 14:12

Что значит "неактивно", не совсем понял? Если поле "Спецификация" является полем связи, у него в любом случае есть свойство "фильтр", и насколько я знаю неактивным оно быть не может. Другое дело, если там пусто или нет выбора фильтра по полю Документ. Это означает что уже поле Документ какое-то не такое. Либо оно не является полем связи, либо нет нужной связи между Документами и Спецификациями. Других вариантов мне в голову не приходит.

#9 lenar

    Участник

  • Пользователи
  • PipPip
  • 23 сообщений
  • Пол:Мужчина

Отправлено 28 Октябрь 2015 - 19:53

Приветствую!
Задача:
В таблице "Заявки" нужно подтянуть в поле "связь с "статистика" соответсвующее значение полю "Партнер".

Написал вычисление:
if ($line['Связь с "Статистика"'] != $line['Партнер'])
  {
  $line['Связь с "Статистика"']=$line['Партнер'];
  }
else
  {

  }

Выдает ошибку:

Цитата

Дата: 28.10.2015 19:51 Пользователь: Ленар URL: /view_line2.php?table=130&filter=210&line=10&csrf=JqFAcT9O726RdKIaeY2aCQ== Ошибка: Ошибка SQL запроса:
UPDATE f_data261 SET f435='партнер 2' WHERE id=2
Unknown column 'f435' in 'field list' Подробно:
Ошибка системы.

Error generated:
/home/ocenka2/public_html/include/functions1.php(484) : data_update()
/home/ocenka2/public_html/include/functions1.php(467) : form_event_recurs()
/home/ocenka2/public_html/include/functions1.php(551) : form_event_recurs()
/home/ocenka2/public_html/include/functions1.php(867) : calc_line()
/home/ocenka2/public_html/view_line2.php(1448) : popup_event()
Ошибка SQL запроса:
UPDATE f_data261 SET f435='партнер 2' WHERE id=2
Unknown column 'f435' in 'field list'


Подскажите, пож-ста, в чем заключается ошибка?

#10 CbCoder

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

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

Отправлено 29 Октябрь 2015 - 09:05

А вы уверены, что ошибка связана с данным вычислением? Пробовали его отключать? У меня вот в голове никак не увязывается эта ошибка с кодом выше.

#11 lenar

    Участник

  • Пользователи
  • PipPip
  • 23 сообщений
  • Пол:Мужчина

Отправлено 29 Октябрь 2015 - 09:10

Просмотр сообщенияCbCoder (29 Октябрь 2015 - 09:05) писал:

А вы уверены, что ошибка связана с данным вычислением? Пробовали его отключать? У меня вот в голове никак не увязывается эта ошибка с кодом выше.
Вычисление отключил, ошибка исчезла.

#12 CbCoder

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

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

Отправлено 29 Октябрь 2015 - 09:13

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

#13 lenar

    Участник

  • Пользователи
  • PipPip
  • 23 сообщений
  • Пол:Мужчина

Отправлено 29 Октябрь 2015 - 09:21

Просмотр сообщенияCbCoder (29 Октябрь 2015 - 09:13) писал:

А код целиком привели? Возможно также что данное вычисление запускает другое, бажное. Проверьте, не участвуют ли поля из кода еще в каких местах.
Поле партнер участвует в след вычислениях: https://yadi.sk/i/ygmMdHYNk6BEQ

#14 lenar

    Участник

  • Пользователи
  • PipPip
  • 23 сообщений
  • Пол:Мужчина

Отправлено 29 Октябрь 2015 - 09:23

Код целиком привел. А поле поле "связь с "статистика" участвует только в этом вычислении.

Сообщение отредактировал lenar: 29 Октябрь 2015 - 09:23


#15 CbCoder

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

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

Отправлено 29 Октябрь 2015 - 09:27

Тогда затрудняюсь сказать в чем дело. Отправьте заявку в техподдержку, может проверка "вживую" лучше поможет.

#16 CbCoder

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

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

Отправлено 29 Октябрь 2015 - 09:31

Хотя, есть еще версия. Возможно поле "связь с "статистика" просто некорректно создалось. Т.е. оно есть в списке полей (под номером 435 в таблице 261), но реально в таблице с данными его нет. Это можно проверить через edit_sql.php (или любой другой бд-менеджер). Если это действительно так, то создайте поле вручную (тип integer).

#17 bottrop

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

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

Отправлено 01 Ноябрь 2015 - 11:27

Подскажите как сделать так, чтобы в Подтаблице можно былоТОЛЬКО просматривать записи, без возможности Добавления и редактирования полей, а при переходе в режим основной таблицы при нажатии на "три полоски" справа от шестеренки или принажатии "лупы", можно было бы отредактировать данную запись. Как реализовать данную возможность? иначе при редактировании в режиме подтаблицы многие обязательные поля не работаю и менеджер вносит что душе угодно.


Второй вопрос: Есть родительская таблица и записи в к ней в подтаблице. До этого не была включена Архивация/Автоудаление записей подтаблиц вместе с родительской. Сейчас я включил эту функции. Как сделать (или проконтролировать), чтобы она применилась и для старых записей, которые были архивированы до ее включения?

Сообщение отредактировал bottrop: 01 Ноябрь 2015 - 15:26


#18 CbCoder

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

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

Отправлено 02 Ноябрь 2015 - 09:40

1. Насколько знаю, отдельно для режима подтаблицы права нельзя проставить.
2. Старые записи после включения не переместятся автоматом. Можно написать доп.действие в подтаблице, которое будет перемещать подзапись туда же, где лежит и основная:

$line['Статус записи'] = $line['поле связи с основной записью']['Статус записи'];

#19 lenar

    Участник

  • Пользователи
  • PipPip
  • 23 сообщений
  • Пол:Мужчина

Отправлено 05 Ноябрь 2015 - 14:14

Добрый день!
У меня возникла такая задача, связанная с подтаблицами:
Есть таблица заявки - подтаблица: https://yadi.sk/i/ljU0vI5VkFD2A
Есть таблица статистика - родительская таблица: https://yadi.sk/i/HMTc7L4HkFD7S
Родительская таблица - подтаблица (пример): https://yadi.sk/i/86pG9p_pkFDPd

Задача.
Нужно сделать так, чтобы заявки сортировались по след принципап:
1. дата заявки должен соответствовать месяцу, указанной в таблице статистика, т.е. январские к январским, февральские к февральским
2. должно соблюдаться соответствие названию партнера, т.е. заявки партнера 1 отображаются в статистике, где "связь с контрагенты"='партнер 1'

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

Написал вычисление такое:
	$res = sql_query("SELECT COUNT(f1680) AS counts
		  FROM ".DATA_TABLE."130
		  WHERE status = 0");
		  
$row = sql_fetch_assoc($res);
$line['f4551'] = $row['counts'];
А как учесть 1ое требование не знаю.

Подскажите, пож-ста, как сделать лучше всего?

#20 CbCoder

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

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

Отправлено 05 Ноябрь 2015 - 14:25

1. Не понял причем тут слово "сортировка". Сортировка - это порядок (например, сортировка в порядке возрастания дат), он выбирается в настройках таблицы. Судя же по вашим фразам, вы имели ввиду "фильтр", т.к. пишете про ее соответствие полю в родительской таблицы, что для понятия "сортировка" - нонсенс.
2. По-моему вы просто не понимаете принцип работы подтаблиц. В режиме родительской записи, в подтаблице отображаются записи, связанные с родительской по полю связи с ней, а не по каким-то полям из родительской таблицы. Т.е. например, если Счета сделать подтаблицей Контрагентов, то заходя в контрагента, увидим все счета, связанные с ним через поле связи "На кого" (т.к. это поле связи счета с контрагентом). Иных способов работы подтаблиц не существует.





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

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