Для того чтобы организовать торговлю в Интернет-магазине компании потребуется наличие всего одного Менеджера, контролирующего процесс автоматической работы магазина как из офиса компании, так и из любого места в Сети.
Каталог прайсов интернет магазинов - разместите свой прайс бесплатно
  Главная  |    О компании  |    Новости  |    Статьи  |    Форум  |    Клиенты  |    Обратная связь  |    Карта сайта
Добро пожаловать, Гость. Для того, чтобы отвечать на сообщения и создавать новые темы, Вам необходимо зарегистрироваться, если Вы уже зарегистрированы, то войдите используя Ваши E-Mail и Пароль.
Запомнить
Пароль
   
Форум
 Программа iNETsHOP » Работа с программой
        Суммирование остатка товара из разных ячеек
Суммирование остатка товара из разных ячеек

18.06.2016 20:49

sonic1978


Пользователь iNETsHOP

Количество сообщений   107
Зарегистрирован:   27-02-2016, 15:29:39
гдето видел на форуме, но не могу уже найти

при установке в схеме импорта ячеек EF к примеру как остаток объединяются строки а не значения.
Пользователь оффлайн Распечатать
 

18.06.2016 21:16

support


Support


Количество сообщений   1199
Зарегистрирован:   11-04-2008, 19:11:57
Объединение остатков по складам
Из-за "сбоя" на хостинге freehost.ua были утеряны данные с 06 по 15 мая 2016 года, возможно что тема которую вы ищите была создана в этот период.

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

Без примера прайса или его скриншота трудно что-то посоветовать конкретное, как вариант, импортируйте остаток из нескольких колонок через какой-то разделитель, скажем символ "/". Затем, в схему импорта добавьте скрипт обработки, который будет разбивать эту строку на части и суммировать значения.

Например функция [dbo].[f_GetTableByList2] (@p_sValue varchar(8000), @p_sDelimeter varchar(100)) - возвращает таблицу со значениями элементов строки разбивая ее по указанному разделителю. Можно в T-SQL скрипте обработки создать курсор по всем строкам прочитанного прайс-листа, а затем получить элементы суммарной строки в которой значения разделены разделителем и суммировать их:
Код

DECLARE
@ID int,
@REST_STR varchar(8000),
@REST_ITEM varchar(100),
@REST_SUMM float;

DECLARE cPrice CURSOR LOCAL FOR
SELECT ID, CAST(REST as varchar(8000)) FROM #TMP_PRICE order by ID;

OPEN cPrice
FETCH NEXT FROM cPrice INTO @ID, @REST_STR;
WHILE (@@FETCH_STATUS <> -1)
BEGIN
SET @REST_SUMM = 0;
DECLARE cRests CURSOR LOCAL FOR
SELECT id FROM [dbo].[f_GetTableByList2](@REST_STR, '/');

OPEN cRests
FETCH NEXT FROM cRests INTO @REST_ITEM;
WHILE (@@FETCH_STATUS <> -1)
BEGIN
IF ISNUMERIC(@REST_ITEM) = 1 SET @REST_SUMM = @REST_SUMM + CAST(@REST_ITEM as float);
FETCH NEXT FROM cRests INTO @REST_ITEM;
END
CLOSE cRests;
DEALLOCATE cRests;

UPDATE #TMP_PRICE SET REST = STR(@REST_SUMM, 10, 2) WHERE ID = @ID;

FETCH NEXT FROM cPrice INTO @ID, @REST_STR;
END
CLOSE cPrice;
DEALLOCATE cPrice;


Пользователь оффлайн Распечатать
 

18.06.2016 23:07

sonic1978


Пользователь iNETsHOP

Тема начата

Количество сообщений   107
Зарегистрирован:   27-02-2016, 15:29:39
считает нормально, осталось только заменить разделитель с точки на запятую, есть готовый скрипт? автозамена не помогает, т.к. срабатывает видимо до суммирования
Пользователь оффлайн Распечатать
 

18.06.2016 23:22

Admin


Администратор


Количество сообщений   135
Зарегистрирован:   23-08-2007, 09:03:21
Автозамена текста срабатывает в момент чтения каждой строки из прайс-листа, потому она работает до SQL-скриптов обработки.
Пользователь оффлайн Распечатать
 

19.06.2016 01:32

sonic1978


Пользователь iNETsHOP

Тема начата

Количество сообщений   107
Зарегистрирован:   27-02-2016, 15:29:39
добавил перед сравнением UPDATE #TMP_PRICE SET REST = REPLACE(REST,'.',',');

теперь все ок
Пользователь оффлайн Распечатать
 

15.10.2016 20:39

Denndy


Пользователь iNETsHOP

Количество сообщений   54
Зарегистрирован:   12-03-2016, 18:32:41
Очень полезная тема при работе с прайсами где несколько колонок по остаткам. Но столкнулся с небольшой проблемой, при суммировании из нескольких ячеек получается программно фильтр поставить на позиции с "0" количеством не получится т.к. колонок несколько, если я правильно понимаю работу программы. Отсюда вопрос, в этой теме вопрос подымался на предмет скрипта для удаления позиций с "0" остатком, насколько он применим в данном случае? Имеется ввиду вот этот скрипт, если вместо "1" поставить "0"
Цитата
DELETE FROM #TMP_PRICE WHERE CAST(REST as varchar(100)) = '1';
Пользователь оффлайн Распечатать
 

15.10.2016 23:35

support


Support


Количество сообщений   1199
Зарегистрирован:   11-04-2008, 19:11:57
Будут удалены товары прайса, в которых в колонку "Остаток" импортирован текст равный "1" или "0" соответственно тексту запроса.



Пользователь оффлайн Распечатать
 

17.10.2016 12:33

Denndy


Пользователь iNETsHOP

Количество сообщений   54
Зарегистрирован:   12-03-2016, 18:32:41
Результатам работы скрипта посвящена тема, на которую я дал ссылку, не стоило повторяться.
Вопрос был несколько о другом.
Пользователь оффлайн Распечатать
 

Распечатать  |  Следующая тема  |  Предыдущая тема
Перейти
 

Статистика форума
Тем: 506, Сообщений: 3222, Пользователей: 2255
Приветствуем новичка по имени Gotit
Ближайшие дни рождения
Сегодня именинников нет


iNETsHOP - программа для формирования каталога товаров интернет-магазина и обработки прайсов Copyright 2007-2015 "Программа iNETsHOP - работа с прайс-листами поставщиков для интернет магазинов ®" iNETsHOP - обработка, объединение, анализ прайсов поставщиков и конкурентов