 0
 0
 
#1
Отправлено 01 Апрель 2017 - 18:20
Пример, сейчас в поле Описание таблицы Счета объединяются значения полей названий товаров, которые указаны в счете (если товаров несколько, то поле равно Товар 1, Товар 2, Товар 3...).
Нужно чтобы значение поля принимало значения Товар 1 - Цена 1; Товар 2 - Цена 2; Товар 3 - Цена 3.
#2
Отправлено 04 Апрель 2017 - 23:01
 $thatTxt = $row['f1440'];
	}
	if (!in_array($thatTxt, $txt) && $thatTxt) {
		$txt[] = $thatTxt;
	}
}
$line['Описание'] = implode(", ", $txt);
... вот в этой части.
В переменную $thatTxt кроме $row['f1440'] (это поле Описание из подтаблицы Позиции счета) добавить нужные поля из этой же подтаблицы.
В последней строке implode(", " запятая - это разделитель, замените на нужное.
Сообщение отредактировал Tony999: 04 Апрель 2017 - 23:14
https://info.crm-master.info
#3
Отправлено 05 Апрель 2017 - 08:56
 Tony999 (04 Апрель 2017 - 23:01) писал:
Tony999 (04 Апрель 2017 - 23:01) писал:
В последней строке implode(", " запятая - это разделитель, замените на нужное.
Сделал новое поле Описание 2, чтобы протестировать. Добавил туда код с самого начала вычисления Сохранение счета, изменив переменные. Получилось следующее:
$result1 = data_select(74, 'f807=', $ID, ' and status=0');
$txt1 = array();
while ($row = sql_fetch_assoc($result1)) {
	$thatTxt1 = "";
	// если есть прайс, название товара
	if ($row['f2331']) {
		$numen1 = data_select_array(91, "status=0 AND id=", $row['f2331']);  //2331 - Прайс-лист из таблицы Позиции счета
		$thatTxt1 = $numen1['f1158'] && " - " && $numen1['f1169'];  //1158 - Наименование товара, 1169 - Цена товара
	}
  
	// нет прайса - описание
	elseif ($row['f1440']) {
		$thatTxt1 = $row['f1440'];
	}
	  
		if (!in_array($thatTxt1, $txt1) && $thatTxt1) {
				$txt1[] = $thatTxt1;
		}
}
$line['Описание 2'] = implode("; ", $txt1);
Строку $thatTxt1 = $numen1['f1158'] && " - " && $numen1['f1169']; вставил не туда, куда указывали, так как тут есть проверка на заполненность поля 1158 (Прайс-лист из таблицы Позиции счета). В Вашем варианте поле Описание 2 заполнялось как раньше, только названием товара, так как поле прайс-лист было заполнено.
Думаю я неправильно указал строку
$thatTxt1 = $numen1['f1158'] && " - " && $numen1['f1169'];так как сейчас в поле Описание 2 выводится единица.
#4
Отправлено 05 Апрель 2017 - 11:03
$thatTxt1 = $numen1['f1158']." - ".$numen1['f1169'];
https://info.crm-master.info
#5
Отправлено 07 Апрель 2017 - 11:34
#6
Отправлено 21 Март 2018 - 20:09
У таблицы 111 есть подтаблица Прайс-лист. К каждой записи таблицы 111 прикреплено несколько строк из Прайс-листа.
В поле таблицы 111 нужно вывести объединенные данные из подтаблицы, в формате Наименование 1 - Группа 1; Наименование 2 - Группа 2; и т.д.
Изменил вычисление выше, получилось следующее:
$result2 = data_select(91, 'f7381=', $ID, ' and status=0'); // таблица Прайс-лист 91, поле 7381 является связью с текущей таблицей 111
$txt2 = array();
while ($row = sql_fetch_assoc($result2)) {
		$thatTxt1 = "";
		$numen1 = data_select_array(91, 'f7381=', $ID, ' and status=0');	
		$thatTxt1 = $numen1['f6811']." - ".$numen1['f6501'];  // "Сложить" через тире поля Наименование 6811 и Группа 6501
		}
				
$txt2[] = $thatTxt1;
$line['9011'] = implode("; ", $txt2); // Вывести данные "сложения" через разделитель в поле 9011
Код, который у меня получился выводит значение только для первой строки подтаблицы, Наименование 1 - Цена 1. Дальше почему-то не идет. Пожалуйста. помогите разобраться.
Сообщение отредактировал Александр Jet: 21 Март 2018 - 20:13
#7
Отправлено 22 Март 2018 - 09:08
 Александр Jet (21 Март 2018 - 20:09) писал:
Александр Jet (21 Март 2018 - 20:09) писал:
У таблицы 111 есть подтаблица Прайс-лист. К каждой записи таблицы 111 прикреплено несколько строк из Прайс-листа.
В поле таблицы 111 нужно вывести объединенные данные из подтаблицы, в формате Наименование 1 - Группа 1; Наименование 2 - Группа 2; и т.д.
Изменил вычисление выше, получилось следующее:
$result2 = data_select(91, 'f7381=', $ID, ' and status=0'); // таблица Прайс-лист 91, поле 7381 является связью с текущей таблицей 111
$txt2 = array();
while ($row = sql_fetch_assoc($result2)) {
		$thatTxt1 = "";
		$numen1 = data_select_array(91, 'f7381=', $ID, ' and status=0');	
		$thatTxt1 = $numen1['f6811']." - ".$numen1['f6501'];  // "Сложить" через тире поля Наименование 6811 и Группа 6501
		}
				
$txt2[] = $thatTxt1;
$line['9011'] = implode("; ", $txt2); // Вывести данные "сложения" через разделитель в поле 9011
Код, который у меня получился выводит значение только для первой строки подтаблицы, Наименование 1 - Цена 1. Дальше почему-то не идет. Пожалуйста. помогите разобраться.
$thatTxt1 = $row['f6811']." - ".$row['f6501'];Вы же в него уже положили ассоциированный массив с данными из извлеченной записи.
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#8
Отправлено 24 Март 2018 - 12:56
$result2 = data_select(91, 'f7381=', $ID, ' and status=0');  // таблица Прайс-лист 91, поле 7381 является связью с текущей таблицей 111
$txt2 = array();
while ($row = sql_fetch_assoc($result2)) {
		$thatTxt1 = "";
		$thatTxt1 = $row['f6811']." - ".$row['f6501'];  // "Сложить" через тире поля Наименование 6811 и Группа 6501
		}
				
$txt2[] = $thatTxt1;
$line['9011'] = implode("; ", $txt2);  // Вывести данные "сложения" через разделитель в поле 9011
Теперь код выводит значение не для первой, а для последней записи в подтаблице
					
					#9
Отправлено 30 Март 2018 - 11:21
 Александр Jet (24 Март 2018 - 12:56) писал:
Александр Jet (24 Март 2018 - 12:56) писал:
$result2 = data_select(91, 'f7381=', $ID, ' and status=0');  // таблица Прайс-лист 91, поле 7381 является связью с текущей таблицей 111
$txt2 = array();
while ($row = sql_fetch_assoc($result2)) {
		$thatTxt1 = "";
		$thatTxt1 = $row['f6811']." - ".$row['f6501'];  // "Сложить" через тире поля Наименование 6811 и Группа 6501
		}
				
$txt2[] = $thatTxt1;
$line['9011'] = implode("; ", $txt2);  // Вывести данные "сложения" через разделитель в поле 9011
Теперь код выводит значение не для первой, а для последней записи в подтаблице 
$result2 = data_select(91, 'f7381=', $ID, ' and status=0');  // таблица Прайс-лист 91, поле 7381 является связью с текущей таблицей 111
$txt2 = array();
while ($row = sql_fetch_assoc($result2)) {
                $thatTxt1 = "";
                $thatTxt1 = $row['f6811']." - ".$row['f6501'];  // "Сложить" через тире поля Наименование 6811 и Группа 6501
                $txt2[] = $thatTxt1;//Вот СЮДА
                }
//$txt2[] = $thatTxt1; //Перенести ЭТО выше - в цикл WHILE
$line['9011'] = implode("; ", $txt2);  // Вывести данные "сложения" через разделитель в поле 9011
					
					Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных



 
				
				 
				
				 
				
				










