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


Вопрос по вычислениям


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

#161 KonRes

    Новичок

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

Отправлено 10 Август 2012 - 09:57

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

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

Понятно. Тогда что посоветуете :

1. Подождать новых версий ?
2. Попытаться задействовать JavaScript ? Там можно будет в обработчике onchange заполнить поля текущей формы из другой таблицы ?

#162 CbCoder

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

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

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

Ну это уж от вас зависит. Новая версия с данным функционалом будет еще нескоро. Попытаться сделать самому можно, например, как описано здесь: http://clientbase.ru...showtopic=3620. Можно заказать доработку у нас

#163 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

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

Отправлено 10 Август 2012 - 10:32

Существует ли возможность заполнять поля с помощью вычислений при создании записи не через дополнительное действие?

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#164 CbCoder

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

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

Отправлено 10 Август 2012 - 10:48

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

#165 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

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

Отправлено 10 Август 2012 - 16:33

можно подробнее про опцию

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#166 Analitic

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

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

Отправлено 10 Август 2012 - 17:17

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

#167 Zver

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

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

Отправлено 20 Август 2012 - 11:23

$new_v['Действие'] = $row['f2045'];
$new_v['Контрагент'] = $agent_id;
$new_v['Срок выполнения'] = $dt->format('Y-m-d H:i:s');
$new_v['Статус'] = 0;
insert_query($new_v, 'Задачи');
Данная запись попадает в архивные. Что не правильно?

#168 CbCoder

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

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

Отправлено 20 Август 2012 - 12:13

Возможно где-то выше в коде есть строка $new_v['Статус записи'] = 1. Правильнее перед тем как заполнять массив новой строкой, явно его обнулять. Добавьте перед указанным фрагментом строку $new_v = array();

#169 zizitopa

    Участник

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

Отправлено 13 Сентябрь 2012 - 14:14

Добрый день!

Подскажите пожалуйста как правильно работать с текстовыми полями в вычислениях.
Необходимо чтобы в текстовое многострочное поле заносилась информация из таблицы.
Например "некоторый стандартный текст" + дата/время + "значение поля из этой же таблицы".

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

#170 CbCoder

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

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

Отправлено 13 Сентябрь 2012 - 14:59

Цитата

Если не сложно поясните пожалуйста как реализован подобный механизм работы с текстом.

Также, как и в любом другом php-коде. Если вы этим не владеете, можно заглянуть в руководство по языку PHP, в частности:
1. Конкатенация строк: http://www.php.net/m...tors.string.php
2. Функции работы с датой/временем: http://www.php.net/m...ok.datetime.php

#171 zizitopa

    Участник

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

Отправлено 14 Сентябрь 2012 - 12:47

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

#172 Дмитрий ЕСП

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

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

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

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

$line['Поле вычисляемое'] = $line['ID Таблицы'] ['ID Записи'] ['ID Поля']; ?

#173 Гость_Roman_*

  • Гости

Отправлено 01 Октябрь 2012 - 07:40

Только запросом к БД.
Например:
$result = data_select_field(89, "`f222`", "`id`=5");
$row = mysql_fetch_assoc($result);
$line['Поле вычисляемое'] = $row['f222'];

Выбор поля с ид 222 из таблицы с ид 89, ид записи - 5.

#174 Дмитрий ЕСП

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

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

Отправлено 01 Октябрь 2012 - 11:48

Просмотр сообщенияRoman (01 Октябрь 2012 - 07:40) писал:

Только запросом к БД.
Например:
$result = data_select_field(89, "`f222`", "`id`=5");
$row = mysql_fetch_assoc($result);
$line['Поле вычисляемое'] = $row['f222'];

Выбор поля с ид 222 из таблицы с ид 89, ид записи - 5.


Возможно ли в запросе не буквально прописывать id таблицы, id поля и id записи, а через переменные?

С id таблицы и id записи через переменную вроде понятно.
А вот как id поля в запрос вставить через переменную???

Как это будет выглядеть?

Благодарю

Сообщение отредактировал Дмитрий ЕСП: 01 Октябрь 2012 - 12:06


#175 Гость_Roman_*

  • Гости

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

$fld_id = 222;
$tbl_id = 89;
$ln_id = 5;

$result = data_select_field($tbl_id, "`f".$fld_id."`", "`id`=",$ln_id);
$row = mysql_fetch_assoc($result);
$line['Поле вычисляемое'] = $row['f'.$fld_id];


#176 Дмитрий ЕСП

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

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

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

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

$fld_id = 222;
$tbl_id = 89;
$ln_id = 5;

$result = data_select_field($tbl_id, "`f".$fld_id."`", "`id`=",$ln_id);
$row = mysql_fetch_assoc($result);
$line['Поле вычисляемое'] = $row['f'.$fld_id];
Отлично!
Благодарю.

#177 Дмитрий ЕСП

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

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

Отправлено 03 Октябрь 2012 - 00:59

Делая вычисления в таблице, как получить ID таблицы и присвоить его переменной?
$tabl_id = ???

Как в вычислениях получить ID поля ( $line['Поле'] ) и присвоить его переменной?
$f_id = ... $line['Поле'] ... ?

Как в вычислениях получить ссылку на запись (гиперссылку на эту запись) и присвоить её переменной?
$back_url = ???

Из документации без примера не разберусь.
Спасибо.

#178 Гость_Roman_*

  • Гости

Отправлено 03 Октябрь 2012 - 10:20

Ид таблиц или полей можно узнать в настройках конфигурации, например, при настройке таблицы в адресной строке браузера будет указан её ид. Тоже самое с полями. Если необходимо, найти ид по названию, то можно воспользоваться запросами к БД.
Для таблиц:
$result = sql_select_field(TABLES_TABLE, "`id`", "`name_table`='Контрагенты'");
$row = mysql_fetch_assoc($result);
$tbl_id = $row['id'];
Для полей с уже полученным значение $tbl_id для выборки данных по конкретной таблице, чтобы избежать дублирования:
$result = sql_select_field(FIELDS_TABLE, "`id`", "`name_field`='Дата' and `table_id`=",$tbl_id);
$row = mysql_fetch_assoc($result);
$fld_id = $row['id'];

ID текущей записи в вычислениях хранится в переменной $ID .

#179 CbCoder

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

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

Отправлено 03 Октябрь 2012 - 10:26

Цитата

Как в вычислениях получить ссылку на запись (гиперссылку на эту запись) и присвоить её переменной?

$url = "view_line2.php?table=".$table_id."&line=".$line_id;

Здесь: $table_id - id текущей таблицы, $line_id - id текущей записи. Они уже есть в вычислениях, как глобальные переменные, самому присваивать ничего не нужно.

#180 teacs

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

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

Отправлено 25 Октябрь 2012 - 16:44

Добрый вечер, подскажите пожалуйста по вычислению.
Суть вопроса вот в чем: есть вычисление по доп. действию, по нажатию кнопку меняются информация в поле 1 с "нет" на "да" и помимо этого мне необходимо подставить в поле 2 тип "пользователь", имя пользователя, который нажал на кнопку этого доп. действия..
$line['Закрыл заявку'] = ????;
На форуме решение вопроса не нашел..





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

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