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


Добавление записи через вычисление


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

#81 wondertalik

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

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 05 Август 2013 - 16:43

Можно разрешить пользователям создавать записи только в подчиненных таблицах? Если пользователь нажал на ссылку в связанных таблицах и перешел в нее - кнопки "добавить запись" не было?

#82 CbCoder

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

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

Отправлено 05 Август 2013 - 17:16

Насколько знаю, нет. Права на добавление не зависят от места. Если только отключите кнопку через js.

#83 keswa

    Участник

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

Отправлено 30 Сентябрь 2013 - 12:27

Есть две таблицы:
При создании записи в одной таблице автоматически создается запись в другой.

if ($line['Задание на замер создано?'] != 'Да')
{
$ins_data['Номер'] = $line['Номер'];
$ins_data['Город'] = $line['Город'];
$ins_data['ФИО клиента'] = $line['ФИО клиента'];
$ins_data['Адрес'] = $line['Адрес'];
$ins_data['Телефон'] = $line['Телефон'];
$ins_data['Дата и время'] = $line['Дата замера'];
$ins_data['Статус заявки'] = $line['Статус заявки'];
insert_query($ins_data, "График замеров");
$line['Задание на замер создано?'] = 'Да';
}



Как сделать так, чтобы запись во второй таблице создавалась только при заполнении поля "Адрес" в первой таблице? (или поля "Дата замера). Сейчас она добавляется в любом случае.

Сообщение отредактировал keswa: 30 Сентябрь 2013 - 12:27


#84 CbCoder

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

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

Отправлено 30 Сентябрь 2013 - 12:49

Добавить условие на проверку заполненности поля:

if ($line['Задание на замер создано?'] != 'Да' and $line['Адрес'] != '' )
{
.....

#85 keswa

    Участник

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

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

Спасибо! Все работает )

#86 keswa

    Участник

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

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

Подскажите пожалуйста:

Есть основная таблица, при создании записи в которой, создается запись в подчиненной таблице:
if ($line['Задание на замер создано?'] != 'Да' and $line['Установка'] != '')
{
$ins_data['Номер'] = $line['Номер договора'];
$ins_data['Установка'] = $line['Дата'];
$ins_data['Город'] = $line['Город'];
insert_query($ins_data, "Баланс");
}

Могу ли я добавлять в подчиненную таблицу записи из третьей таблицы (также подчиненной основной)?
В ту же строку? И как это можно прописать?

#87 CbCoder

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

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

Отправлено 08 Октябрь 2013 - 11:45

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

#88 pal547

    Новичок

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

Отправлено 16 Октябрь 2013 - 17:52

Доброго времени суток всем!
Пытаюсь написать вычисление. Результатом его должно являться отображение данных из полей "Кол-во" и "Ед.изм" из подчиненой таблици "Позиции счета-фактуры" в родительской таблице "Счет-Фактура". Конфигурация стандартная, за исключением того, что в талицу "Счет-фактура" добавлены соответсвующие поля. т.е. "Кол-во" и "Ед.изм".
Пишу вычисление аналогично мануалу http://clientbase.ru...6/calculations/, конкретно вот этой его части:

"Подобное вычисление может работать и в обратную сторону,
когда согласно записи в подтаблице определенное значение будет переноситься в основную таблицу. Например, так:
$line['Компания']['Телефон']=$line['Новый телефон'];
Согласно этому вычислению, в родительскую таблицу "Компания" в поле "Телефон" будет внесено значение из поля
"Новый телефон" подчиненной таблицы. Вычисление при этом заноситься в подтаблицу."

Выглядит мое вычисление так:

$line['Счет-фактура']['Кол-во']=$line['Кол-во'];
$line['Счет-фактура']['Ед.изм']=$line['Ед.изм'];

Заношу это вычисление в подтаблицу "Позиции счета-фактуры".
Результата нет. Хочется понять почему? И что делать?))

#89 CbCoder

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

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

Отправлено 21 Октябрь 2013 - 12:20

Вычисление настроено на какое событие? Должно быть событие на изменение полей "Кол-во" и "Ед.изм", причем желательно разделить на 2 отдельных вычисления, каждое на свое поле.

#90 pal547

    Новичок

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

Отправлено 21 Октябрь 2013 - 17:36

Изначально вычисление было настроено на "сохранение в таблице" как в мануале. Попробовал настроить на "изменение полей" "Кол-во" и "Ед.изм". На 2 отдельных вычисления резделить пробовал. Результата нет...

#91 CbCoder

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

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

Отправлено 22 Октябрь 2013 - 09:36

"Сохранение в таблице" в подчиненных таблицах не работает (вернее работает только один раз при нажатии на "Добавить запись"), необходимо именно событие на изменение конкретных полей. Если все равно не работает - проверьте корректность названий полей, возможно опечатались.

#92 yuriygrad

    Участник

  • Пользователи
  • PipPip
  • 26 сообщений
  • Пол:Мужчина
  • Город:Кореновск

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

Доброй ночи!

Есть две таблицы:
Контакты (родительская)
Телефоны (подчиненная)

При добавлении новой записи в подчиненной таблице, необходимо чтобы она появлялась в родительской таблице с новой строчки.
И соответственно при изменении записи, эти же изменения происходили в родительской таблице.
Пример во вложении.

Пожалуйста напишите как может выглядеть вычисление.

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

  • Прикрепленное изображение: 11.png


#93 CbCoder

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

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

Отправлено 03 Ноябрь 2013 - 14:39

Добавляете вычисление на изменение полей подчиненной таблицы. В коде вычисления проходитесь по всем подчиненным записям (через запрос) и составляете суммарный текст. Полученный результат записываете в родительское поле через присвоение $line['Поле связи с род.контактом']['Телефон'] = $text;

#94 dim777

    Новичок

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

Отправлено 10 Декабрь 2013 - 13:22

Просмотр сообщенияCbCoder (03 Ноябрь 2013 - 14:39) писал:

Добавляете вычисление на изменение полей подчиненной таблицы. В коде вычисления проходитесь по всем подчиненным записям (через запрос) и составляете суммарный текст. Полученный результат записываете в родительское поле через присвоение $line['Поле связи с род.контактом']['Телефон'] = $text;
Добрый день, у меня похожая ситуация, есть родительская таблица клиенты, и есть подчиненная заказы. Хочется чтобы id заказа из таблицы заказы попадал таблицу клиенты, в поле id заказа. Этого я добился, написав вычисление $line['Id клиента']['Заказ'] = $line['Id заказа']; Это все работает. Но нужно чтобы добавляя новый заказ, номер заказа не обновлялся у клиента, а добавлялся, к старому имеющемуся, с новой строки. Уважаемые разработчики подскажите как это сделать?

#95 CbCoder

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

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

Отправлено 11 Декабрь 2013 - 11:08

А в чем проблема то? Добавляете конкатенацию и перевод строки: $line['Id клиента']['Заказ'].= "\n".$line['Id заказа'];

Это элементарные правила PHP, к КБ уже прямого отношения не имеющие. Рекомендую почитать руководство по языку.

#96 OlegSmirnov

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

  • Пользователи
  • PipPipPip
  • 36 сообщений
  • Пол:Мужчина
  • Город:Дмитров, МО
  • Интересы:Собаки, путешествия, web-программирование.

Отправлено 11 Март 2014 - 19:44

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

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

F1 - поле типа "список", может принимать значение 2 или 3.
F2 - поле типа "связь", оно отображается и становится обязательно для заполнения только если в поле F1 выбрано значение 2.
F3 - поле типа "связь", оно отображается и становится обязательно для заполнения только если в поле F1 выбрано значение 3.

Т.е. если пользователь в списке F1 выбирает значение 2 - то он должен заполнить поле F2, а поле F3 - не отображается в форме. Если выбирает значение 3 - то, соответственно, должен заполнить поле F3, а поле F2 - не отображается.

Я написал JavaScript, который в зависимости от значения F1 показывает/скрывает поля F2 и F3 при изменении значения поля F1, а также при загрузке страницы с формой для добавления/редактирования записи. Но вот как быть с обязательностью заполнения того или иного поля - никак не соображу... Основная проблема в том, что это поля типа "связь". Т.е. не достаточно просто на том же JS проверить, что в поле что-то есть и соответствует определённому формату, а нужно убедиться, что в связанной таблице есть такое значение. При этом и просто поставить галочку в настройках таблицы, что поле является обязательным - тоже нельзя, поскольку эта галочка применяется для всех записей в таблице. А мне нужно, чтобы для каждой строки в таблице обязательными для заполнения могли быть разные поля в зависимости от значения одного из полей той же строки. Предусмотрена ли такая возможность в программе?

Можно ли это сделать с помощью вычислений? Могу ли я в вычислении на сохранение данных отклонить запись данных из формы в таблицу и сформировать текст сообщения причины отказа? Не нашёл такой информации в описании вычислений...

#97 dolphin

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

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

Отправлено 13 Март 2014 - 14:30

На сколько я помню, в поле типа "связь" необходимо вносить ID записи связуещего поля. Напомните пожалуйста, как его получить?

#98 CbCoder

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

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

Отправлено 13 Март 2014 - 17:29

Просмотр сообщенияdolphin (13 Март 2014 - 14:30) писал:

На сколько я помню, в поле типа "связь" необходимо вносить ID записи связуещего поля. Напомните пожалуйста, как его получить?

Из поля "ID" связанной записи, вестимо.

#99 CbCoder

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

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

Отправлено 13 Март 2014 - 17:34

Просмотр сообщенияOlegSmirnov (11 Март 2014 - 19:44) писал:

Можно ли это сделать с помощью вычислений? Могу ли я в вычислении на сохранение данных отклонить запись данных из формы в таблицу и сформировать текст сообщения причины отказа? Не нашёл такой информации в описании вычислений...

Отклонить запись через вычисление вы не сможете, она в любом случае сохранится. Так что остается javascript, только проверять надо не значение текстового поля, в котором пользователь забивает текст для поиска, а значение скрытого поля, в которое подставляется id связанной записи. Если там пусто - значит реальное значение из списка выбрано не было.

#100 OlegSmirnov

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

  • Пользователи
  • PipPipPip
  • 36 сообщений
  • Пол:Мужчина
  • Город:Дмитров, МО
  • Интересы:Собаки, путешествия, web-программирование.

Отправлено 13 Март 2014 - 17:51

CbCoder,
благодарю за ответ. Не обратил внимание на наличие скрытого поля с id связанной записи.





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

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