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


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


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

#141 teacs

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

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

Отправлено 20 Июль 2012 - 14:56

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

#142 CbCoder

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

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

Отправлено 20 Июль 2012 - 15:12

Откройте в браузере консоль ошибок яваскрипта и проверьте в чем дело.

#143 arsenal

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

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

Отправлено 21 Июль 2012 - 08:31

У вас в вычислениях есть переменная $line['Позиция номенклатуры']['raw'].
Что это за переменная?

#144 teacs

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

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

Отправлено 26 Июль 2012 - 15:25

Просмотр сообщенияCbCoder (20 Июль 2012 - 13:28) писал:

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

$sel = $_REQUEST['sel']; // массив из id выделенных строк
foreach ($sel as $id)
{ // проходим по всем выделенным строкам и меняем статус
  $cur_line = data_table("Ваша таблица", "id=$id");
  $cur_line['Статус'] = "новый статус";
  update_query($cur_line, "Ваша таблица", "id=$id");
}
$_SESSION[$ses_id]["sel".$table_id] = $sel; // заносим id в переменную сессии для передачи в шаблон печати
header("Location:forms.php?table=".$table_id."&mode=print"); // переходим в список шаблонов печати
exit;
Добрый день!
Подскажите пожалуйста как встроить в код, чтобы кнопка доп. действия исчезала (меняла пользователя на администратора). Вставляю JavaScript в любое поле :

$(document).ready(function(){
  if (document.getElementById('view_cell_50').innerHTML == 'Замер распечатан')
	{
		  document.getElementById("user_button_div_15").style.display = 'none';
		  document.getElementById("e_user_button_div_15").style.display = 'none';
	}
});

Кнопка исчезает, но в самой таблице выпадающее меню "дополнительно" остается.

Сообщение отредактировал teacsrem: 26 Июль 2012 - 15:25


#145 arsenal

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

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

Отправлено 27 Июль 2012 - 07:10

Просмотр сообщенияarsenal (21 Июль 2012 - 08:31) писал:

У вас в вычислениях есть переменная $line['Позиция номенклатуры']['raw'].
Что это за переменная?


#146 Гость_Roman_*

  • Гости

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

Просмотр сообщенияteacsrem (26 Июль 2012 - 15:25) писал:

Добрый день!
Подскажите пожалуйста как встроить в код, чтобы кнопка доп. действия исчезала (меняла пользователя на администратора). Вставляю JavaScript в любое поле :

$(document).ready(function(){
  if (document.getElementById('view_cell_50').innerHTML == 'Замер распечатан')
	{
		  document.getElementById("user_button_div_15").style.display = 'none';
		  document.getElementById("e_user_button_div_15").style.display = 'none';
	}
});

Кнопка исчезает, но в самой таблице выпадающее меню "дополнительно" остается.
Кнопка скрывается только на странице просмотра/редактирования записи, т.е. там, где работает JavaScript.

#147 Гость_Roman_*

  • Гости

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

Просмотр сообщенияarsenal (27 Июль 2012 - 07:10) писал:

У вас в вычислениях есть переменная $line['Позиция номенклатуры']['raw'].
Что это за переменная?

В данной переменной хранится ID целевой записи поля связи.

#148 arsenal

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

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

Отправлено 27 Июль 2012 - 12:22

Просмотр сообщенияRoman (27 Июль 2012 - 11:22) писал:

В данной переменной хранится ID целевой записи поля связи.
А для чего вводилась эта переменная?
Почему нельзя написать $line['Поле1']['ID']?

#149 Гость_Roman_*

  • Гости

Отправлено 28 Июль 2012 - 11:17

Можно и так, но иногда такая конструкция работать не будет.

#150 arsenal

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

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

Отправлено 31 Июль 2012 - 00:51

У вас в демобазе есть строка
location.href='".$config["site_root"]."/view_line.php?table=81&line=".$akt['ID']."&back_url=".$base64_current_url."'</script>";

Для чего нужна конструкция
&back_url=".$base64_current_url
?

#151 Гость_Roman_*

  • Гости

Отправлено 31 Июль 2012 - 06:52

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

#152 Analitic

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

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

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

Просмотр сообщенияarsenal (27 Июль 2012 - 12:22) писал:

А для чего вводилась эта переменная?
Почему нельзя написать $line['Поле1']['ID']?
В случае если строка по полю связи не существует, поле $line['Поле1'] не будет развернуто в $line['Поле1']['ID']. Но при этом всегда будет иметь $line['Поле1']['raw'].

#153 zizitopa

    Участник

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

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

Добрый день.
Разбираюсь с вычислениями.
При срабатывании простого вычисления выходит сообщение "доступ к данной строке запрещен".
Это связано с тем что я пробую делать вычисления в бесплатной версии или ошибка в самом вычислении?
Т.е. нельзя потренироваться в вычислениях на бесплатной версии или у меня ошибка где-то?

p.s. Делал вычисление из документации (заполнение номера телефона из карточки клиента)
Вычисления в таблице заказы. в ней есть поле типа связь "Заказчик".
Вычисление при событии "сохранение в таблице"
код вычисления

$line['Телефон']=$line['Заказчик']['Телефон'];


В итоге при попытке сохранить новую запись в таблице "Заказы" выдает вышеуказанную ошибку.

Сообщение отредактировал zizitopa: 02 Август 2012 - 08:48


#154 Analitic

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

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

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

В вычислениях не работают права доступа. В вычислениях доступны все данные.

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

#155 zizitopa

    Участник

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

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

Благодарю за помощь.
Во вновь созданной таблице не была установлена галочка "Расширенные права доступа".
Все отлично работает.

#156 KonRes

    Новичок

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

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

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

В таблице "Оплаты" завел вычисление "Новая оплата", для начала только одно поле :


$line['Сумма']=$line['Счет']['Сумма'];

Поставил вычислять при условии "изменение поля Счет".

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

А хочется, чтобы сразу в форме, после выбора из списка связи счета для отметки оплаты, выполнялось это вычисление и данные в форме отображались.

Что посоветуете ?

#157 Гость_Roman_*

  • Гости

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

Поставьте условие выполнения вычисления при сохранении в таблице.

#158 KonRes

    Новичок

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

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

Не годится. Идея в том, что при первичном выборе счета для оплаты из него берутся некие данные (сумма - это только часть данных). Далее, если оплата частичная, то данные правятся и потом сохраняются. Если поставить условие "при сохранении", то вычисления будут выполняться при каждом редактировании - введенные изменения потеряются

А почему не срабатывает в данном случае условие "изменение поля" ?

#159 KonRes

    Новичок

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

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

Еще, вот что интересно:

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


$line['Код']=$line['Наименование']['Код'];
$line['Ед.изм.']=$line['Наименование']['Ед.изм.'];
$line['Цена']=$line['Наименование']['Цена'];

И все работает !

Отличия вижу в формах:

- Позиции счета вводятся в табличном редактировании в виде строк. Это ваш стандартный блок "позиции счета" в нижней части формы редактирования счета.
- Оплата проставляется кнопкой "отметить оплату" и данные выводятся в форме по полям

#160 CbCoder

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

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

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

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

А почему не срабатывает в данном случае условие "изменение поля" ?

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





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

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