Программа iNETsHOP - обработка, сравнение, анализ прайс листов поставщиков, создание каталога товаров интернет магазина Форум - Всё о ниочём - Обо всём - Записки чайника


http://inetshop.in.ua/index.php?p=showtopic&toid=312&area=1&print_post=1810
18.07.2016 12:49

support


Support


Количество сообщений   1199
Зарегистрирован:   11-04-2008, 19:11:57
Цитата
Написал: Novaxx
Итак что получилось: Найти скрипт для экселя который отлавливает жирный текст и переносит в другуюб колонку (или только копирует?) Потестить никак не удалось пока, так как саппорт за что ему премного благодарен решил глянуть мой прайс, ждемс что скажут. Далее оказалось совсем легко добавить бренд по инструкции саппорта.

Преобразовать лист вашего прайса в более удобный вид для импорта в программу можно следующим скриптов обработки:
Код

DECLARE
@ID int,
@NAME varchar(8000),
@BRAND varchar(8000),
@ARTIKUL varchar(8000),
@DESCRIPTION varchar(8000),
@DESC_FULL varchar(max),
@NOTES varchar(8000),
@PRICE varchar(8000),
@WARRANTY varchar(8000),
@PRESENT varchar(8000),
@CATEGORY varchar(8000),
@SID varchar(8000)
;

DECLARE @LAST_CATEGORY varchar(8000), @Pos int;

SELECT @LAST_CATEGORY = '';

DECLARE cPrice CURSOR LOCAL FOR
Select
ID,
CAST(NAME as varchar(8000)),
CAST(BRAND as varchar(8000)),
CAST(ARTIKUL as varchar(8000)),
CAST(DESCRIPTION as varchar(8000)),
ISNULL(DESC_FULL, ''),
CAST(NOTES as varchar(8000)),
IsNull(LTRIM(RTRIM(CAST(PRICE as varchar(8000)))), ''),
CAST(WARRANTY as varchar(8000)),
CAST(PRESENT as varchar(8000)),
LTRIM(LTRIM(CAST(CATEGORY as varchar(8000)))),
LTRIM(LTRIM(CAST(SID as varchar(8000))))
from #TMP_PRICE order by ID;

OPEN cPrice
FETCH NEXT FROM cPrice INTO @ID, @NAME, @BRAND, @ARTIKUL, @DESCRIPTION, @DESC_FULL, @NOTES, @PRICE, @WARRANTY, @PRESENT, @CATEGORY, @SID;
WHILE (@@FETCH_STATUS <> -1)
BEGIN

SET @Pos = CHARINDEX(CHAR(10), @DESC_FULL);

IF (IsNull(@NAME, '') = '')
BEGIN
SELECT @LAST_CATEGORY = LTRIM(RTRIM(@DESC_FULL)) ;
DELETE FROM #TMP_PRICE WHERE ID = @ID;
END
ELSE IF (@DESC_FULL <> '')
BEGIN
UPDATE #TMP_PRICE
SET
DESCRIPTION = LEFT(@DESC_FULL, @Pos),
DESC_FULL = RIGHT(@DESC_FULL, LEN(@DESC_FULL) - @Pos)
WHERE
ID = @ID;
END;

IF (IsNull(@LAST_CATEGORY, '') <> '')
BEGIN
UPDATE #TMP_PRICE
SET CATEGORY = @LAST_CATEGORY
WHERE ID = @ID;
END
ELSE
BEGIN
UPDATE #TMP_PRICE
SET CATEGORY = ''
WHERE ID = @ID;
END;

FETCH NEXT FROM cPrice INTO @ID, @NAME, @BRAND, @ARTIKUL, @DESCRIPTION, @DESC_FULL, @NOTES, @PRICE, @WARRANTY, @PRESENT, @CATEGORY, @SID;
END
CLOSE cPrice;
DEALLOCATE cPrice;

DELETE FROM #TMP_PRICE
WHERE IsNull(LTRIM(RTRIM(CAST(PRICE as VARCHAR(8000)))), '') = ''
OR ISNUMERIC(IsNull(LTRIM(RTRIM(CAST(PRICE as VARCHAR(8000)))), '')) = 0;


Его нужно вставить в схему импорта в соответствующее поле для дополнительных скриптов обработки данных:


Тогда данные с листа прайса будут преобразованы в такой вид


Цитата
Написал: Novaxx
Теперь печалька, что не получилось: Не получилось найти чекбоксы (галочки)которыми можно убрать лишние столбцы. Прикладываю скрин.

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