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


доп действие добавление в подтаблицу


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

#1 oknik

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

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

Отправлено 05 Апрель 2016 - 21:33

есть таблица "Сотрудники" в ней поле "ФИО"
есть подтаблица "Начислено" с полем "Сотрудник" которое связь с "ФИО"

в табл "Сотрудники"
доп. действие начисляет оклад:

$data_arr['Сотрудник'] = $line['ФИО'];
$data_arr['Основание'] = 1;
$data_arr['Начислено'] = $line['Оклад'];
insert_query($data_arr, "Начисление");

все срабатывает, запись создается, но не заполянется поле "Сотрудник"

#2 aleks.goodcolor

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

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

Отправлено 06 Апрель 2016 - 09:42

Нужно вместо $line['ФИО'] написать $line['ID'] либо $ID
Только нужно понимать где поле связи таблицы с подтаблицей? Это поле сотрудник?

Сообщение отредактировал aleks.goodcolor: 06 Апрель 2016 - 09:43


#3 CbCoder

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

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

Отправлено 06 Апрель 2016 - 09:52

Цитата

есть подтаблица "Начислено" с полем "Сотрудник" которое связь с "ФИО"

Ключевая ошибка - поле связи не связано ни с каким конкретным полем. Оно связано с записью целиком. Поэтому в поле связи необходимо размещать id связанной записи:

$data_arr['Сотрудник'] = $line['ID'];


#4 oknik

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

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

Отправлено 06 Апрель 2016 - 13:06

Просмотр сообщенияCbCoder (06 Апрель 2016 - 09:52) писал:

Ключевая ошибка - поле связи не связано ни с каким конкретным полем. Оно связано с записью целиком. Поэтому в поле связи необходимо размещать id связанной записи:

$data_arr['Сотрудник'] = $line['ID'];
да уж, сидел уже вечером и думал что наверняка какая то ошибка глупая, просто мозги уже не соображают. так и оказалосью

#5 oknik

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

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

Отправлено 06 Апрель 2016 - 13:45

а как теперь сделать что бы во всплывающем окне можно было еще для одного поля ввести вручную данные?
я взял вот здесь пример 2:
https://clientbase.r...r_admin_16/dop/

и переделал вот в такое:
if (isset($_REQUEST["opisanie"]))
   {
     $data_arr['Описание']=$_REQUEST["opisanie"];
     // производим нужные нам действия с необходимыми полями
     $data_arr['Сотрудник'] = $line['ID'];
     $data_arr['Основание'] = 1;
     $data_arr['Начислено'] = $line['Оклад'];
     insert_query($data_arr, "Начисление");
     echo "<script>";
     echo "window.opener.location.reload(1);"; // Перезагружаем родительское окно
     echo "window.close()"; // Закрываем текущее
     echo "</script>";
   }
echo "<form method='get'>";
echo "Введите основание начисления :";
echo "<input type='hidden' name='id' value='$button_id'>"; // Передаем значение кнопки
echo "<input type='hidden' name='line_id' value='{$ID}'>";  // Значение строки
echo "<input type='text'   name='opisanie' value=''>";  // Передаем оценку
echo "<input type='submit' value='Начислить'>";
echo "</form>";

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

#6 oknik

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

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

Отправлено 06 Апрель 2016 - 14:12

я извиняюсь, ВСЕ РАБОТАЕТ, я не сохранил настройки доп. действия просто, оно было обычным, поэтому так и получалось.
вопрос тогда в другом, а как можно реализовать что бы все работало когда находишься в таблице а не в просмотре записи, что бы выбрал несколько записей и для них всех выполнилось доп действие с возможностью одно из полей заполнить через всплывающее окно(значение будет вводиться одинаковое для всех новых записей)?

#7 CbCoder

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

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

Отправлено 06 Апрель 2016 - 14:17

Цитата

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

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

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

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

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

Отправлено 06 Апрель 2016 - 23:55

Я бы не был так категоричен. Например, я бы завел в таблице user дополнительное поле для передачи данных, куда сохранял бы по дополнительному действию результат последнего диалога. В дополнительных действиях я прописал бы также обработку выделенной записи с присвоением значения этого поля из user в нужное поле выбранных таблиц update_query. После этого по нажатию первой кнопки активируем диалог и выбираем значение, которое сохраняем в user. После этого все выбранные вами в таблице по нажатию второй кнопки получат выбранное значение. Или написал бы внешний php код.
Согласны?

Сообщение отредактировал Александр Пономарев: 06 Апрель 2016 - 23:58


#9 bottrop

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

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

Отправлено 07 Июнь 2016 - 20:17

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

#10 Timur

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

  • Техподдержка ООО "КБ"
  • PipPipPip
  • 854 сообщений
  • Пол:Мужчина

Отправлено 08 Июнь 2016 - 17:53

Просмотр сообщенияbottrop (07 Июнь 2016 - 20:17) писал:

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

Здравствуйте!

Примеры подобных доп. действий есть в стандартной конфигурации программы. Вам стоит обратить внимание на доп. действие "Добавить клиента" в таблице "Заявки" и на доп. действие "График работы" в таблице "Наши сотрудники"

http://demo.clientba...n.php?button=60
http://demo.clientba...n.php?button=40





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

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