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


Вычисления


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

#1 VladMgn

    Новичок

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

Отправлено 10 Ноябрь 2009 - 21:09

как сделать в счетах несколько полей чтоб не один товар/услуга были а несколько с разными количествами и суммами, общей суммой, под одним номером счета, можно еще как нибудь автономера сбросить, а то начинаются с 6xxx ? Еще по поводу расчетов, можно ли сделать как то чтобы например есть таблица с остатками на складе, как сделать чтобы в услугах вычитался товар со склада ? Как вычисления делать ? ) Спасибо

#2 CbCoder

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

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

Отправлено 11 Ноябрь 2009 - 16:16

Просмотр сообщенияVladMgn (10.11.2009, 21:09) писал:

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

Просмотр сообщенияVladMgn (10.11.2009, 21:09) писал:

можно еще как нибудь автономера сбросить, а то начинаются с 6xxx ?
Пока никак. Номера собросим в одной из следующий версий.

Просмотр сообщенияVladMgn (10.11.2009, 21:09) писал:

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

#3 DarkNight

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

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

Отправлено 12 Ноябрь 2009 - 19:04

Здравствуйте.
Напишите как пользоваться Вычислениями в свойствах поля для версии 1.5.

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

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

Такая же картина и при поиске в таблице задач по полю клиент.

Вторая ситуация, я хочу чтоб в таблице заданий отображался телефон и контактное лицо для выбранного клиента в поле клиент.

#4 CbCoder

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

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

Отправлено 13 Ноябрь 2009 - 11:00

Просмотр сообщенияDarkNight (12.11.2009, 19:04) писал:

Теперь вопрос в другом как ограничить список клиентов, согласно фильтрам, при редактировании ссылки на таблицу клиентов, т.е. в таблице задач есть поле клиент в котором выбирается клиент при этом в выпадающем списке выдает всех клиентов.
Это реализовано в версии 1.5.1 в виде фильтров на поля связи. Версия будет выложена на следущей неделе на сайт и вы сможете обновить ее самостоятельно.

Просмотр сообщенияDarkNight (12.11.2009, 19:04) писал:

Вторая ситуация, я хочу чтоб в таблице заданий отображался телефон и контактное лицо для выбранного клиента в поле клиент.
Создаете поля Телефон и Контактное лицо (обычные текстовые) и в вычислениях у них записывате следущий код:
$zadanie = data_table("Задания","id={ID}");
$client = data_table("Клиенты", "id='".$zadanie['Компания']."'");
return $client['Телефон'];  // для контактного лица соответственно Контактное лицо


#5 Tony999

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

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

Отправлено 22 Декабрь 2009 - 04:08

Поясните, пожалуйста, примером как поставить фильтр на поле связи?
Умные сайты на заказ
https://info.crm-master.info

#6 CbCoder

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

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

Отправлено 22 Декабрь 2009 - 09:23

Просмотр сообщенияTony999 (22.12.2009, 4:08) писал:

Поясните, пожалуйста, примером как поставить фильтр на поле связи?
Заходите в настройки поля связи и ставите фильтр. Какого вида пример вам нужен?

#7 Tony999

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

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

Отправлено 22 Декабрь 2009 - 17:31

Я наверное неправильно вопрос поставил...
Вообще-то цель, например, сохранить (перенести) значение названия клиента в несколько последовательно подчиненных таблиц, где связи уже не через поле клиента делаются.
Например, такие связи:
"Клиент"(название)-"Оборудование"(серйный номер)-"Процедуры с оборудованием".
Вот как здесь в последней таблице "Процедуры с оборудованием" отобразить название клиента?
Спасибо!
Умные сайты на заказ
https://info.crm-master.info

#8 CbCoder

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

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

Отправлено 22 Декабрь 2009 - 17:51

Тогда я не совсем понял причем тут фильтры. Вам необходимо вычисляемое поле, которое берет id Клиента из таблицы Оборудование.

#9 Tony999

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

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

Отправлено 22 Декабрь 2009 - 20:16

Ок, вот я попробовал в таблице "Оборудование" сделать скрытое поле Клиент1, чтобы в нем запоминать название клиента, а не его номер.
Затем, используя поле Клиент1, я смогу сделать связь с таблицей "Процедуры с оборудованием".
Также в таблице оборудование есть поле Клиент, через которое установлено подчинение таблице "Клиенты".

$client = data_table("Оборудование","id={ID}"); // запоминаем текщую строку таблицы "Оборудование"
$cl = data_table("Клиенты", "id='".$client['Клиент']."'"); // находим в таблице "Клиенты" по полю Клиент "Оборудование" название и запоминаем его.
return $cl['Клиент1']; //возвращаем значение в скрытое поле Клиент1

Вроде все верно, но не работает((
Умные сайты на заказ
https://info.crm-master.info

#10 CbCoder

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

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

Отправлено 23 Декабрь 2009 - 09:36

У вас логическая ошибка. Долно быть не "return $cl['Клиент1']", а "return $cl['Название']", т.е. после слова return пишем откуда возвращаем значение, а не куда.

Хотя я не совсем понял зачем вам создавать вычисляемое поле в таблице Оборудование, когда вам нужно получить клиента в таблице "Процедуры с оборудованием", как я понял. Для этого вам нужно: а) создать поле связи Клиент в таблице "Процедуры с оборудованием"; б) забить в вычисления этого поля код который возвращает клиента из вышестоящей таблицы, т.е. из Оборудования.

#11 DarkNight

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

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

Отправлено 23 Декабрь 2009 - 11:07

Просмотр сообщенияTony999 (22.12.2009, 20:16) писал:

Ок, вот я попробовал в таблице "Оборудование" сделать скрытое поле Клиент1, чтобы в нем запоминать название клиента, а не его номер.
Затем, используя поле Клиент1, я смогу сделать связь с таблицей "Процедуры с оборудованием".
Также в таблице оборудование есть поле Клиент, через которое установлено подчинение таблице "Клиенты".

$client = data_table("Оборудование","id={ID}"); // запоминаем текщую строку таблицы "Оборудование"
$cl = data_table("Клиенты", "id='".$client['Клиент']."'"); // находим в таблице "Клиенты" по полю Клиент "Оборудование" название и запоминаем его.
return $cl['Клиент1']; //возвращаем значение в скрытое поле Клиент1

Вроде все верно, но не работает((

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

#12 Tony999

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

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

Отправлено 23 Декабрь 2009 - 11:12

Спасибо, со всем этим разобрался, все работает!)
Умные сайты на заказ
https://info.crm-master.info

#13 Denis A. Sokolov

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

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

Отправлено 14 Май 2010 - 15:46

Есть 2 таблицы: «Жильцы квартир» и «Активности». Таблица «Активности» - подчиненная и имеет связь с таблицей «Жильцы квартир» по полю «Адрес».

Сначала заводится «Жилец квартиры» с квартирой и привязкой к Адресу, а затем, по «Квартире», добавляются «Активности». У нас возникала потребность перестроить работу с использованием новых возможностей программы и отобразить в таблице «Активности» Адреса квартир (для экспорта, удобства работы и фильтрации).

Код Вычисляемого поля такой:

$act = data_table("Активности","id={ID}");
$git = data_table("Жители","id='".$act['Квартира']."'");
return $git['Адрес'];

Все работает, только возвращает не Адрес, а индекс Адреса.
Можно ли сделать так, чтобы возвращался Адрес?

(веб 1.6.4.)

Спасибо!

#14 CbCoder

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

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

Отправлено 14 Май 2010 - 18:31

Поле Адрес тоже является полем связи?

#15 Denis A. Sokolov

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

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

Отправлено 14 Май 2010 - 19:05

Просмотр сообщенияРазработчик (14.5.2010, 18:31) писал:

Поле Адрес тоже является полем связи?
Да, поле "Адрес" является полем связи

#16 CbCoder

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

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

Отправлено 17 Май 2010 - 08:42

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

$act = data_table("Активности","id={ID}");
$git = data_table("Жители","id='".$act['Квартира']."'");
$adr = data_table("Таблица с адресами","id='".$git['Адрес']."'");
return $adr['Поле с адресом'];

Вместо Таблица с адресами и Поле с адресом ставите реальные имена.

#17 Alexander

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

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

Отправлено 09 Июнь 2010 - 09:29

Доброе утро,
Создал новую таблицу "Тест"
В нее занес поле "контрагент" связь с таблицей "Контрагенты" по полю "название"
Создал поле "тест" в которое хочу записывать данные с таблицы "истории" - "последний" разговор.. то что я сделал это скопировал вычисления из базовой установки из поля "последний разговор" в таблице "контрагенты" (версия 1,7,0)

$sqlQuery = "SELECT * FROM ".DATA_TABLE."62 WHERE f723='{ID}' ORDER BY f724 desc LIMIT 1";
$result = mysql_query($sqlQuery);
$row = mysql_fetch_array($result);
return $row['f725'];

Почему-то не работает, в чем косяк?

#18 Timur

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

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

Отправлено 09 Июнь 2010 - 11:27

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

В частности в данном примере в запросе идет выборка по ID текущей строки таблицы Контрагенты (f723='{ID}'). Т.к. у вас другая таблица - данный код бессмысленен. Замените {ID} на значение из связанного с таблицей Контрагенты поля.

#19 Alexander

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

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

Отправлено 09 Июнь 2010 - 12:49

Не совсем мне понятен ответ.
Я добавил в сообщении доп данные
Создал новую таблицу "Тест" номер таблицы 85
В нее занес поле "контрагент" (поле 921 таблица 85) связь с таблицей "Контрагенты" (таблица 42) по полю "название" (поле 435)
Создал поле "тест" (поле 924 таблица 85) в которое хочу записывать данные с таблицы "истории" (таблица 62) - "последний разговор" (поле 725, таблица 62) .


При этих данных как должен выглядеть код в поле "тест"?

#20 Timur

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

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

Отправлено 09 Июнь 2010 - 14:04

Просмотр сообщенияAlexander (9.6.2010, 12:49) писал:

Не совсем мне понятен ответ.
Я добавил в сообщении доп данные
Создал новую таблицу "Тест" номер таблицы 85
В нее занес поле "контрагент" (поле 921 таблица 85) связь с таблицей "Контрагенты" (таблица 42) по полю "название" (поле 435)
Создал поле "тест" (поле 924 таблица 85) в которое хочу записывать данные с таблицы "истории" (таблица 62) - "последний разговор" (поле 725, таблица 62) .
При этих данных как должен выглядеть код в поле "тест"?
Этот вопрос уже выходит за рамки тех.поддержки. Создание вычисляемых полей у нас является платной услугой.





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

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