#1
Отправлено 25 Апрель 2012 - 08:56
Пример:
Есть таблица "Счет" с полями (Контрагент, номер договора и т.д.). Вторая таблица "Позиции счета" с полями (номер счета, наименование товара, кол-во, цена, сумма). Соответственно вторая таблица подчинена первой и отображается внизу.
Надо при изменении поля цена вычислять поле сумма. А если редактировать сумму то вычислять цену.
#3
Отправлено 25 Апрель 2012 - 09:03
{ // Функция по событию "изменение поля"
var a = $("#value1743").val(); // Цена
var b = $("#value1742").val(); // Кол-во
if (isFloat(a) && isFloat(
}
addHandler(document.getElementById("value1743"), "onchange", onchange_1743);
не работает
Сообщение отредактировал Zver: 25 Апрель 2012 - 09:07
#4
Отправлено 25 Апрель 2012 - 09:11
#5
Отправлено 25 Апрель 2012 - 10:12
На сколько я понял редактировать эти поля ни как не получится?
#6
Отправлено 25 Апрель 2012 - 10:15
CbCoder (25 Апрель 2012 - 09:11) писал:
CbCoder (25 Апрель 2012 - 09:11) писал:
Я и забыл что это слово зарезервировано. :-) Имел ввиду автоматические расчеты при редактировании полей.
Прилагаю скриншот.
Сообщение отредактировал Zver: 25 Апрель 2012 - 10:39
#7
Отправлено 25 Апрель 2012 - 13:40
Цитата
Цитата
Цитата
Цитата
#8
Отправлено 17 Август 2012 - 14:07
#9
Отправлено 21 Август 2012 - 06:38
arsenal (17 Август 2012 - 14:07) писал:
#10
Отправлено 22 Август 2012 - 16:02
arsenal (17 Август 2012 - 14:07) писал:
#11
Отправлено 22 Август 2012 - 16:50
#12
Отправлено 23 Август 2012 - 06:40
В подчиненной таблице есть поле "Заключительный документ". Запись с пометкой "Закл. док." должна быть только одна. Для этого создаю вычисление, которое срабатывает при изменении поля "Закл. док." Если в какой-то записи выбрали "Закл. док" = "ДА", то вычисление сбрасывает эту отметку у других записей. Также это вычисление меняет значение поля в родительской записи.
Вычисление работает, но отметки "Закл. док." у других записей в подчиненной таблице пропадают только при принудительном обновлении страницы через F5. А изменения в родительской записи отображаются сразу.
Можно ли как-то сделать, чтобы данные в подчиненной таблице то же обновлялись в режиме реального времени?
Вот код вычисления
if ($line['Наименование']['Название']=="Счет-фактура" && $line['зак-док']=="ДА")
{
// Выбираем запись в таблице "Документация" с названием="Счет-фактура"
$sqlQuery = "SELECT * FROM `".DATA_TABLE."90` WHERE `status`='0' AND `f972`='Счет-фактура'";
$result = sql_query($sqlQuery) or user_error(mysql_error()."<br>".$sqlQuery."<br>", E_USER_ERROR);
$row_sf = mysql_fetch_assoc($result);
// Выбираем запись в таблице "Процентовки" с названием="Счет-фактура" и заключительный элемент="ДА" и это не текущая запись
$sqlQuery = "SELECT * FROM `".DATA_TABLE."101` WHERE `status`='0' AND `f1487`='".$row_sf['id']."' AND `f1486`='".$line['Договор']['raw']."' AND `f1503`='ДА' AND `id`<>'$ID'";
$result = sql_query($sqlQuery) or user_error(mysql_error()."<br>".$sqlQuery."<br>", E_USER_ERROR);
while($row_sf = mysql_fetch_assoc($result))
{
$data['зак-док']="";
update_query($data, "Процентовки", "id=".$row_sf['id']);
}
$line['Договор']['Дата закрытия'] = $line['Дата'];
}
#13
Отправлено 23 Август 2012 - 08:51
#14
Отправлено 23 Август 2012 - 09:31
echo "<script>location.href='".$config['site_root']."/view_line2.php?table=84&line=$ID'</script>"; // Перезагружаем родительское окночтобы принудительно обновить страницу. Но не обновляется. Мало того и обновление через $line перестает срабатывать.
Все таки можно как-то сделать принудительное обновление страницы?
Сообщение отредактировал arsenal: 24 Август 2012 - 10:10
#15 Гость_Roman_*
Отправлено 24 Август 2012 - 10:36
$line['Script'] = "<script>location.href='".$config['site_root']."/view_line2.php?table=84&line=$ID'</script>";
Срабатывать это вычисление должно только при изменении поля, при отображение записи необходимо каждый раз обнулять его значение, иначе обновление страницы просто зациклится при открытии записи.
#16
Отправлено 24 Август 2012 - 10:56
#17 Гость_Roman_*
Отправлено 24 Август 2012 - 11:04
#18
Отправлено 24 Август 2012 - 11:57
Если вычисление, которое обнуляет поле, выключить, то происходит зацикливание, как вы и сказали.
Но если это вычисление включить, то страница не перезагружается.
#19 Гость_Roman_*
Отправлено 24 Август 2012 - 13:00
#20
Отправлено 25 Август 2012 - 07:44
Поле с JS назвается "Код". Если включить обнуление поля (для наглядности обнуляю не пустой строкой, а словом "пусто"), то код такой
Если отключить обнуление поля, то происходит зацикливание. Код в поле такой
Вычисление имеет следующий вид
if ($line['Наименование']['Название']=="Счет-фактура" && $line['зак-док']=="ДА")
{
// Выбираем запись в таблице "Документация" с названием="Счет-фактура"
$sqlQuery = "SELECT * FROM `".DATA_TABLE."90` WHERE `status`='0' AND `f972`='Счет-фактура'";
$result = sql_query($sqlQuery) or user_error(mysql_error()."<br>".$sqlQuery."<br>", E_USER_ERROR);
$row_sf = mysql_fetch_assoc($result);
// Выбираем запись в таблице "Процентовки" с названием="Счет-фактура" и заключительный элемент="ДА" и это не текущая запись
$sqlQuery = "SELECT * FROM `".DATA_TABLE."101` WHERE `status`='0' AND `f1487`='".$row_sf['id']."' AND `f1486`='".$line['Договор']['raw']."' AND `f1503`='ДА' AND `id`<>'$ID'";
$result = sql_query($sqlQuery) or user_error(mysql_error()."<br>".$sqlQuery."<br>", E_USER_ERROR);
while($row_sf = mysql_fetch_assoc($result))
{
$data['зак-док']="";
update_query($data, "Процентовки", "id=".$row_sf['id']);
}
$line['Договор']['Дата закрытия'] = $line['Дата'];
$line['Код'] = "<script>location.href='".$config['site_root']."/view_line2.php?table=84&line=".$line['Договор']['ID']."'</script>";
}
elseif ($line['Наименование']['Название']=="Счет-фактура" && $line['зак-док']!="ДА")
{
$line['Договор']['Дата закрытия'] = "";
}
Что не так?
Количество пользователей, читающих эту тему: 13
0 пользователей, 13 гостей, 0 анонимных













