23.08.2016 12:50 | |
BikemaniacПользователь iNETsHOP Количество сообщений 55 Зарегистрирован: 17-12-2013, 08:47:22 |
Экспорт в XLS
Здравствуйте.Эта тема поднималась много раз,но покопавшись на форуме я не нашел для себя решение проблемы. Интересует полная выгрузка значений полей в эксель из inetshop а именно: артикул,наименование товара,фото,наименование артикула,характеристики,цена,бренд,наличие. Стандартный скрипт запроса экспорта у меня вот такой: SELECT g_sort.sort_param as ["Порядок сортировки"], g.G_ID as ["Внутренний код (артикул)"], g.G_NAME as ["Наименование"], case when (g.G_PRESENT>0) then LTRIM(Str(IsNull(g.G_PRICE, 0), 10, 2)) else '0' end as ["Цена"], case when (g.G_PRESENT >0) and (IsNull(g.G_PRICE, 0) > 0) then 99 else 0 end as ["На складе"], '"' + case when (not g.PHOTO1 is null) and (not g.PHOTO2 is null) and (not g.PHOTO3 is null) then LTRIM(g.PHOTO1) + ',' + LTRIM(g.PHOTO2) + ',' + LTRIM(g.PHOTO3) when (not g.PHOTO1 is null) and (not g.PHOTO2 is null) and (g.PHOTO3 is null) then LTRIM(g.PHOTO1) + ',' + LTRIM(g.PHOTO2) when (not g.PHOTO1 is null) and (g.PHOTO2 is null) and (not g.PHOTO3 is null) then LTRIM(g.PHOTO1) + ',' + LTRIM(g.PHOTO3) when (g.PHOTO1 is null) and (not g.PHOTO2 is null) and (not g.PHOTO3 is null) then LTRIM(g.PHOTO2) + ',' + LTRIM(g.PHOTO3) when (not g.PHOTO1 is null) and (g.PHOTO2 is null) and (g.PHOTO3 is null) then LTRIM(g.PHOTO1) when (g.PHOTO1 is null) and (not g.PHOTO2 is null) and (g.PHOTO3 is null) then LTRIM(g.PHOTO2) when (g.PHOTO1 is null) and (g.PHOTO2 is null) and (not g.PHOTO3 is null) then LTRIM(g.PHOTO3) end + '"' as ["Фотографии"] FROM ( select gr.GR_ID, gr.GR_FULL_NAME, dbo.f_GetGroupLevel(gr.GR_ID) as GR_Level from TBL_GROUPS gr ) gr, ( select g.G_ID, g.G_GR_ID, g.G_NAME, g.G_PRESENT, g.G_PRICE, case when DATALENGTH(g.G_IMAGE)>0 then RTRIM(Str(g.G_ID))+'.jpg' end as PHOTO1, case when DATALENGTH(g.G_IMAGE2)>0 then RTRIM(Str(g.G_ID))+'_2.jpg' end as PHOTO2, case when DATALENGTH(g.G_IMAGE3)>0 then RTRIM(Str(g.G_ID))+'_3.jpg' end as PHOTO3 from TBL_GOODS g ) g, ( select g_1.G_ID, g_1.G_NAME, Str(count (g_2.G_NAME)) AS sort_param from (select G_NAME, G_ID from tbl_goods g) as g_1 inner join (select G_NAME from tbl_goods g) as g_2 on g_1.G_NAME >= g_2.G_NAME group by g_1.G_ID, g_1.G_NAME ) g_sort WHERE gr.GR_ID = g.G_GR_ID and g.G_ID = g_sort.G_ID ORDER BY gr.GR_FULL_NAME, GR_Level Скажите пожалуйста,где я могу посмотреть наименования полей и добавить их в этот код? |
23.08.2016 16:14 | |
supportSupport Количество сообщений 1199 Зарегистрирован: 11-04-2008, 19:11:57 |
Экспорт в XLS
Цитата Написал: Bikemaniac Интересует полная выгрузка значений полей в эксель из inetshop а именно: артикул,наименование товара,фото,наименование артикула,характеристики,цена,бренд,наличие. Стандартный скрипт запроса экспорта у меня вот такой Судя по вашему SQL-запросу экспорта в Эксель у вас большая часть полей экспортируется. По поводу характеристик - они хранятся в формате EAV, т.е. у каждого товара может быть произвольное количество характеристик и файлы CSV не совсем подходят для обмена характеристиками. Лучше рассмотрите обмен через формат XML (YML). Цитата Написал: Bikemaniac Скажите пожалуйста, где я могу посмотреть наименования полей и добавить их в этот код? Карточки товаров хранятся в таблице TBL_GOODS. |
30.08.2016 14:28 | |
BikemaniacПользователь iNETsHOP
Тема начата
Зарегистрирован: 17-12-2013, 08:47:22 |
Все таки необходима на данном этапе выгрузка в excel.Пытался вставить необходимые поля для выгрузки в скрипт,выдавало ошибки. Если вам не сложно добавьте эти поля в код: • [G_ID] [int] IDENTITY(1,1) NOT NULL ID записи, код товара, первичный ключ • [G_NAME] [varchar](250) NOT NULL Название товара • [G_B_ID] [int] NULL ID бренда (TBL_BRANDS.B_ID) • [G_WARRANTY] [varchar](50) NULL Гарантия • [G_PRESENT] [bit] NOT NULL Признак наличия • [G_DESC] [varchar](2048) NULL Краткое описание товара • [G_ACTIVE] [bit] NOT Признак активности товара • [G_ACTION] [bit] NOT Признак акционного товара • [G_NEW] [bit] NOT NULL Признак новинки • [G_MODEL] [varchar](255) NULL Модель • [G_DESC_FULL] [varchar](max) NULL Описание полное • [G_REST] [float] NOT NULL Остаток товара (сумма остатков товаров поставщиков которые есть в наличии) • [price] [money] NULL Цена продажи • [G_PICTURE] [varchar](150) NULL Имя файла рисунка • [G_IMAGE] [image] NULL Фото №1 • [G_IMAGE2] [image] NULL Фото №2 • [G_DATE_IMAGE2] [datetime] NULL Дата изменения/добавления фото №2 • [G_IMAGE3] [image] NULL Фото №3 • [G_DATE_IMAGE3] [datetime] NULL Дата изменения/добавления фото №3 • [G_IMAGE4] [image] NULL Фото №4 • [G_DATE_IMAGE4] [datetime] NULL Дата изменения/добавления фото №4 • [G_IMAGE5] [image] NULL Фото №5 Я думаю что этот скрипт многим пригодится.Спасибо |
30.08.2016 15:33 | |
supportSupport Количество сообщений 1199 Зарегистрирован: 11-04-2008, 19:11:57 |
Какие ошибки "выдавались"? Ваш скрипт экспорта довольно специфический, похож на урезанную версию экспорта для Shop-Script. В перечне полей которые вы хотите добавить, вы не указали названия колонок которые будут в результате. Так же стоит отметить, что поля типа image хранят сами фотографии в двоичном виде и если эти данные экспортировать в файл, то он будет иметь колоссальный размер. |
04.09.2016 15:45 | |
BikemaniacПользователь iNETsHOP
Тема начата
Зарегистрирован: 17-12-2013, 08:47:22 |
Ошибки
Снимок с ошибками во вложении |
04.09.2016 15:46 | |
BikemaniacПользователь iNETsHOP
Тема начата
Зарегистрирован: 17-12-2013, 08:47:22 |
Цитата Написал: support Так же стоит отметить, что поля типа image хранят сами фотографии в двоичном виде и если эти данные экспортировать в файл, то он будет иметь колоссальный размер. В принципе фото можно не выгружать |
04.09.2016 16:03 | |
supportSupport Количество сообщений 1199 Зарегистрирован: 11-04-2008, 19:11:57 |
Ошибки
Цитата Написал: Bikemaniac Снимок с ошибками во вложении У вас явные ошибки синтаксиса SQL, например вы неверно перечислили поля в списке выборки. Посмотрите например синтаксис как они перечислены в sql-запросе который успешно выполняется: Цитата g_sort.sort_param as ["Порядок сортировки"], g.G_ID as ["Внутренний код (артикул)"], g.G_NAME as ["Наименование"], |
08.09.2016 18:27 | |
AdminАдминистратор Количество сообщений 135 Зарегистрирован: 23-08-2007, 09:03:21 |
По вашему изначальному sql-запросу, который формирует таблицу данных для экспорта в csv/Excel видно, что названия колонок в результирующем файле отличаются от названий колонок, которые используются в программе. Поданный вами перечень полей можно добавить в экспорт, но вам лучше сразу указать названия колонок которые вам нужны, т.е. чтобы они соответствовали названиям в вашей CMS. |