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


Как обратится к полю в родительской/связанной таблице


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

#21 Dobrinya

    Участник

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

Отправлено 06 Август 2014 - 09:29

Просмотр сообщенияCbCoder (05 Август 2014 - 17:02) писал:

Тогда, возможно, проблема в символе "№". Попробуйте заменить его на "Номер".
Доброго здравия!
Попробовал поменять, опять ошибку выдаёт.
Error generated:

/home/dobrynya/public_html/include/functions1.php(449) : data_update()

/home/dobrynya/public_html/include/functions1.php(512) : form_event_recurs()

/home/dobrynya/public_html/fields.php(1700) : calc_line()

Ошибка SQL запроса:
UPDATE f_data371 SET Номер карты='' WHERE id=9
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'карты='' WHERE id=9' at line 1
Выручайте пожалуйста.....!!!


#22 CbCoder

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

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

Отправлено 06 Август 2014 - 10:15

А в какую таблицу то вы добавили это вычисление?

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

#23 Dobrinya

    Участник

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

Отправлено 06 Август 2014 - 12:38

Просмотр сообщенияCbCoder (06 Август 2014 - 10:15) писал:

А в какую таблицу то вы добавили это вычисление?

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

Спасибо, точно вычисления не в той таблице делал. Но пока всё равно не получается! :unsure: Как заносится сумма в поле "сумма" родительской таблицы, обращаясь через поле связи "Покупатель" я разобрался.
// Заносим полученную сумму в поле "Сумма" родительской таблицы, обращаясь через поле связи "Покупатель"
$line['Покупатель']['Сумма'] = $summa ;

Я убрал поле "№ карты" совсем....не получается с ним....
И попробовал с начало.
Нужно в поле "Сумма" таблице "Покупатели" отображалась общая сумма поля "Сумма" из подтаблицы "История продаж" Поле связи между таблицами "Покупатель".
Я сделал вот так.
//Вычисляем сумму в покупке.
$line['Сумма'] = $line['Количество'] * $line['Цена'];

// Получаем сумму содержимого полей "Сумма" таблицы "История продаж", где поле "Покупатель" равно Покупателю.
$sqlQuery = "SELECT sum(f810) as summa FROM ".DATA_TABLE."74 WHERE status=0 AND f807='".$line['Покупатель']['ID']."'";
$res = sql_query($sqlQuery);
$row = sql_fetch_array($res);
$summa = $row['summa'];

// Заносим полученную сумму в поле "Сумма" родительской таблицы, обращаясь через поле связи "Покупатель"
$line['Покупатель']['Сумма'] = $summa ;
Не получается(((
Заранее благодарю за ответ и терпение!

Сообщение отредактировал Dobrinya: 06 Август 2014 - 12:40


#24 CbCoder

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

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

Отправлено 06 Август 2014 - 13:10

А это зачем?:

//Вычисляем сумму в покупке.
$line['Сумма'] = $line['Количество'] * $line['Цена'];

Это никак не относится к данному вычислению.

Второе: на какое событие у вас настроено вычисление на перенос суммы?

#25 Dobrinya

    Участник

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

Отправлено 06 Август 2014 - 13:37

Событие настроено на вычисление переноса суммы всех занчений сумм...в прикреплённом файле образец

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

  • Прикрепленное изображение: Рисунок1.jpg


#26 CbCoder

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

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

Отправлено 06 Август 2014 - 14:06

Просмотр сообщенияCbCoder (06 Август 2014 - 13:10) писал:

на какое событие у вас настроено вычисление на перенос суммы?

Просмотр сообщенияDobrinya (06 Август 2014 - 13:37) писал:

Событие настроено на вычисление переноса суммы

:blink: Вы зачем мою фразу просто переиначили?) Это не событие, а действие вычисления.

В настройках вычисления есть пункт - "вычислять при условии", вот это и есть "событие", т.е. причина, от которой вычисление работает.

#27 Dobrinya

    Участник

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

Отправлено 06 Август 2014 - 14:14

:rolleyes: упс я сразу не понял

#28 Dobrinya

    Участник

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

Отправлено 06 Август 2014 - 14:22

Просмотр сообщенияCbCoder (06 Август 2014 - 14:06) писал:

В настройках вычисления есть пункт - "вычислять при условии", вот это и есть "событие", т.е. причина, от которой вычисление работает.

Вычислять при условии "Отображение поля" - "Сумма"

#29 CbCoder

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

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

Отправлено 06 Август 2014 - 14:36

Вообще, данное вычисление скорее предназначено для события изменения поля Сумма, но в этом случае оно будет работать только для новых записей, т.е. в старых общая сумма не рассчитается.

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

$sqlQuery = "SELECT sum(f810) as summa FROM ".DATA_TABLE."74 WHERE status=0 AND f807='".$line['ID']."'";
$res = sql_query($sqlQuery);
$row = sql_fetch_array($res);
$summa = $row['summa'];
$line['Сумма'] = $summa ;

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

#30 Dobrinya

    Участник

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

Отправлено 06 Август 2014 - 15:27

Если я Вас правильно понял я сделал вычисление в род.таблице на событие отображение поля суммы

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

  • Прикрепленное изображение: Рисунок1.jpg

Сообщение отредактировал Dobrinya: 06 Август 2014 - 15:27


#31 Dobrinya

    Участник

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

Отправлено 06 Август 2014 - 15:29

Просмотр сообщенияDobrinya (06 Август 2014 - 15:27) писал:

Если я Вас правильно понял я сделал вычисление в род.таблице на событие отображение поля суммы

Всё равно не отображает ((( :unsure:

Сообщение отредактировал Dobrinya: 06 Август 2014 - 15:40


#32 CbCoder

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

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

Отправлено 06 Август 2014 - 15:51

Значит запрос неверный у вас, не к той таблице или полю которые нужны. Сам код 100% действующий.

#33 CbCoder

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

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

Отправлено 06 Август 2014 - 15:54

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

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

Цитата

В этом вычислении:
f810 — поле "Сумма" в таблице "Позиции счета",
74 — id таблицы "Позиции счета",
f807 — поле связь указывающее на счет в таблице "Позиции счета".

Соответственно, для таблицы "История продаж" данные естественно заменяются на другие, т.к. там свои id таблицы и полей.

#34 Dobrinya

    Участник

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

Отправлено 06 Август 2014 - 17:44

Просмотр сообщенияCbCoder (06 Август 2014 - 15:54) писал:

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

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



Соответственно, для таблицы "История продаж" данные естественно заменяются на другие, т.к. там свои id таблицы и полей.
Конечно я обратил внимание.
Я не особо знаю программирование. Где можно посмотреть данные по таблице (id таблицы и полей)??? и f....????

#35 CbCoder

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

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

Отправлено 06 Август 2014 - 18:23

ID таблиц и полей можно увидеть в адресной строке настроек соответствующих таблиц и полей.

#36 Dobrinya

    Участник

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

Отправлено 07 Август 2014 - 16:11

Просмотр сообщенияCbCoder (06 Август 2014 - 18:23) писал:

ID таблиц и полей можно увидеть в адресной строке настроек соответствующих таблиц и полей.

Доброго здравия. Разобрать не получается.
В документации

Цитата

В этом вычислении:
f810 — поле "Сумма" в таблице "Позиции счета",
74 — id таблицы "Позиции счета",
f807 — поле связь указывающее на счет в таблице "Позиции счета".

Захожу в настройку поля "Сумма" таблицы "Позиции счета" (стандартная конфигурация) и адресной строке
https://stroyelement...le=74&field=812

А в примере f810 — поле "Сумма" в таблице "Позиции счета",

Я запутался....куда смотреть?

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

  • Прикрепленное изображение: Рисунок1.jpg


#37 CbCoder

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

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

Отправлено 07 Август 2014 - 17:40

Причем тут таблица Позиции счета?? Это раскладка к примеру кода! Вам нужно подставить свои поля и таблицы:

$sqlQuery = "SELECT sum(f111) as summa FROM ".DATA_TABLE."222 WHERE status=0 AND f333='".$line['ID']."'";

f111 — поле "Сумма" в таблице "История продаж",
222— id таблицы "История продаж",
f333 — поле связь указывающее на счет в таблице "История продаж", т.е. поле "Покупатель"

Вместо 111, 222 и 333 подставляете реальные значения id этих полей и таблиц.

#38 Gnome

    Участник

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

Отправлено 14 Декабрь 2014 - 11:29

что бы не плодить темы, задам вопрос здесь:
имеется подчиненная таблица по определенному полю. как сделать так что бы ширину некоторых полей можно было бы увеличить для удобства?
может быть объяснил не совсем понятно, на вложении выделил "красным" тот столбец, который хочу "расширить"
Прикрепленное изображение: Безымянный.png

Сообщение отредактировал Gnome: 14 Декабрь 2014 - 11:53


#39 maksn

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

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

Отправлено 14 Декабрь 2014 - 12:34

Просмотр сообщенияGnome (14 Декабрь 2014 - 11:29) писал:

что бы не плодить темы, задам вопрос здесь:
имеется подчиненная таблица по определенному полю. как сделать так что бы ширину некоторых полей можно было бы увеличить для удобства?
может быть объяснил не совсем понятно, на вложении выделил "красным" тот столбец, который хочу "расширить"
Прикрепленный файл Безымянный.png
"Настройки"->"Конфигурация"->"Категория"->"Таблица"->"Поле"->"Дополнительно"->"Ширина поля"
"...Сижу, паяю. CRM починяю..."
Мои разработки

#40 Gnome

    Участник

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

Отправлено 14 Декабрь 2014 - 17:08

Просмотр сообщенияmaksn (14 Декабрь 2014 - 12:34) писал:

"Настройки"->"Конфигурация"->"Категория"->"Таблица"->"Поле"->"Дополнительно"->"Ширина поля"
премного благодарен





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

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