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


Публикации Nikoff

8 публикаций создано Nikoff (учитываются публикации только с 29-Март 23)


#15839 Шаблоны печати (подтаблица)

Отправлено от Nikoff в 17 Ноябрь 2012 - 14:13 in Как это сделать

Пытаюсь сделать шаблон печати аналогичный шаблону печати Счета.

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

Но при создании шаблона печати для основной таблицы в выпадающем списке "Вставить в шаблон поле:" отображаются только два поля из подтаблицы типа связь (связанные с основной таблицей).

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



#15795 Добавление записи через вычисление

Отправлено от Nikoff в 15 Ноябрь 2012 - 19:06 in Как это сделать

Просмотр сообщенияCbCoder (15 Ноябрь 2012 - 16:16) писал:

Нет, это пример не для вас. Ваш пример выглядит так:

$ins_data['ПолеБ1'] = $line['ПолеА1'];
$ins_data['ПолеБ2'] = $line['ПолеА2'];
$ins_data['ПолеБ3'] = $line['ПолеА3'];
.........
insert_query("Вторая таблица", $ins_data)

Поясняю:
1) заполняете массив $ins_data (это произвольное имя переменной) значениями полей из текущей строки. "ПолеБ1", "ПолеБ2" и т.д. - это поля второй таблицы, "ПолеА1", "ПолеА2" - из текущей.
2) добавляете новую строку во вторую таблицу через функцию insert_query, со значениями полей из массива $ins_data

Таблица 2 должна быть подчиненной таблице 1? Или это не принципиально?

И сразу в догонку вопрос: как сделать так что бы после первого создания строки в таблице 2, при последующем сохронении строки в таблице 1 система обновляла строку в таблице 2, а не создавала новую. Проще говоря как привязать строки друг к другу?



#15784 Добавление записи через вычисление

Отправлено от Nikoff в 15 Ноябрь 2012 - 14:06 in Как это сделать

Просмотр сообщенияCbCoder (15 Ноябрь 2012 - 13:57) писал:

$line - это текущая строка, точнее переменная-массив с данными текущей строки. Например, $line['Сумма'] вернет значение из поля Сумма текущей строки. $line является зарезервированной переменной, создается программой и менять ее нельзя.

Переменная $data не является зарезервированной, поэтому в ней может быть что угодно, в зависимости от того что вы сами в нее занесете в своем вычислении.

Спасибо, быстрый ответ.

Вернемся к моему первому вопросу:

Цитата

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

И Вашему ответу:

Цитата

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

В документации я нашел пункт: 3. Использование данных из другой таблицы
Где приводится следующий пример:

$line['Телефон'] = $line['Компания']['Телефон'];

Я так понимаю это как раз для меня. Но мне кажется или в примере описано обновление уже существующей строки? Какой командой мне создать новую строку в другой таблице?



#15779 Добавление записи через вычисление

Отправлено от Nikoff в 15 Ноябрь 2012 - 13:36 in Как это сделать

Просмотр сообщенияCbCoder (15 Ноябрь 2012 - 13:31) писал:

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

Спасибо, сейчас попробую.

Скажите, а за что отвечает $data?
$line - это как я уже понял "поле". А что такое дата?



#15770 Добавление записи через вычисление

Отправлено от Nikoff в 15 Ноябрь 2012 - 13:19 in Как это сделать

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



#15732 Добавление записи через вычисление

Отправлено от Nikoff в 14 Ноябрь 2012 - 14:31 in Как это сделать

Победил. Только оказывается пример в мануале устаревший. Не такой:

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

$res = mysql_query($sqlQuery);
$row = mysql_fetch_array($res);
$line['Счет']['Сумма'] = $row['summa'];

В реальности сейчас вот такой, по нему все работает.

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



#15684 Добавление записи через вычисление

Отправлено от Nikoff в 13 Ноябрь 2012 - 08:48 in Как это сделать

Просмотр сообщенияRoman (13 Ноябрь 2012 - 07:56) писал:

В последней строке кода у Вас содержится название таблицы, а не название поля связи. Скорее всего, строка должна выглядеть так
$line['Позиции заявки']['Общая площадь, м2'] = $row['summa'];

Попрежнему ошибка.

А ничего что ['Позиции заявки'] и ['Общая площадь, м2'] из разных таблиц? Их можно писать в один $line?



#15678 Добавление записи через вычисление

Отправлено от Nikoff в 12 Ноябрь 2012 - 15:21 in Как это сделать

Помогите пожалуйста сделать простое вычесление. Плохо знаком с php и самому сделать не получается.
Аналог расчета общей суммы счета в стандартном вычеслении.

Есть таблица "Заявка на производство" и подчиненная ей таблица "Описание фасада" (аналог стандартной таблицы Позиции счета).
В таблице "Описание фасада" есть поле "Площадь, м2" которые высчитывается простым умножением полей высота и ширина из этой же таблицы.

Мне нужно вывести сумму полей "Площадь, м2" из таблицы "Описание фасада" в поле "Общая площадь, м2" в таблице "Заявка на производство".

На основе примера из мануала на сайте я взял код:

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

$res = mysql_query($sqlQuery);
$row = mysql_fetch_array($res);
$line['Счет']['Сумма'] = $row['summa'];

И переделал его под свой:

// Получаем сумму содержимого полей "Сумма" таблицы "Позиции счета", где поле "Счет" равно номеру счета.
$sqlQuery = "SELECT sum(f1197) as summa FROM ".DATA_TABLE."95
WHERE status=0 AND f1203='".$line['Позиции заявки']['id']."'";

$res = mysql_query($sqlQuery);
$row = mysql_fetch_array($res);
$line['Заявка на производство']['Общая площадь, м2'] = $row['summa'];

Где,
f1197 - "Площадь, м2" таблицы "Описание фасада"
95 - таблица "Описание фасада"
f1203 - "Позиции заявки" таблицы "Описание фасада", поле связь с полем "Номер заявки" таблицы "Заявка на производство" (тип поля Номер)

При включение вычисления, выдает ошибку. Скриншоты в приложении.

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

  • Прикрепленное изображение: screen1.jpg
  • Прикрепленное изображение: screen2.jpg