Программы "Простой софт" www.prostoysoft.ru

ВНИМАНИЕ! РЕКЛАМНЫЕ СООБЩЕНИЯ И ГИПЕРССЫЛКИ В ФОРУМЕ ЗАПРЕЩЕНЫ (посты удаляются автоматически часто с пользователем)
Текущее время: 28.10.2024 15:18

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Импорт из нестандартного файла
СообщениеДобавлено: 30.03.2020 19:32 
Не в сети

Зарегистрирован: 15.12.2014 16:50
Сообщения: 106
Добрый день.
У нас есть Excel-файлы товаров и их компонентов, точнее это один файл где прописаны товары и их компоненты, см.рис. ниже.
Он нестандартный для импорта, т.к. компоненты прописаны не в одном поле, а в разных полях. При этом импортироваться они должны в одно поле "Компонент" в таблице "Компоненты изделия". Связь идёт по артикулу. Нужен простой способ импорта из данного файла в БД. Может кто-то сталкивался с подобной задачей? Как это можно реализовать в программе?


Вложения:
Pic1.png
Pic1.png [ 42.23 КБ | Просмотров: 22077 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Импорт из нестандартного файла
СообщениеДобавлено: 30.03.2020 19:45 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Здравствуйте.
Я думаю так - если не прибегать к созданию каких-то новых форм с гибкой настройкой и возможностью указания каких-то конкретных колонок Excel или даже, может быть, ячеек,
то надо просто импортировать всю эту таблицу в какую-то промежуточную, временную таблицу БД.
А следующим шагом написать скрипт, который будет в цикле по каждой строке раскидывать все по таблицам и по полям как надо. Что-то скрипт будет добавлять(или обновлять) в таблицу "Товары", а что-то в таблицу "Компоненты продукта".

Нечто подобное у нас делается в конфигурации "Банковские документы" - там есть таблица с названием "Банковские документы", а следующим шагом скрипт разбрасывает все платежи по двум таблицам: "Входящие платежи" и "Исходящие платежи".

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Импорт из нестандартного файла
СообщениеДобавлено: 30.03.2020 19:50 
Не в сети

Зарегистрирован: 15.12.2014 16:50
Сообщения: 106
Дело в том, что у товаров разные компоненты и сейчас их может быть 10, а через какое-то время будет 12. Т.е. надо будет добавлять новые поля, записывать это в скрипте.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Импорт из нестандартного файла
СообщениеДобавлено: 30.03.2020 19:52 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Таблица может быть с абстрактными полями Field1, Field2... Field99
То есть мы заранее берем "по максимуму".
А перед каждым новым импортом, мы очищаем эту таблицу.

Переменное количество компонентов - не помеха. Все должно получиться.
Видео презентацию конфигурации "Банковские документы" рекомендую посмотреть.

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Импорт из нестандартного файла
СообщениеДобавлено: 31.03.2020 11:38 
Не в сети

Зарегистрирован: 25.04.2012 10:09
Сообщения: 2233
Откуда: Жуковский, Московская область
helgap писал(а):
Дело в том, что у товаров разные компоненты и сейчас их может быть 10, а через какое-то время будет 12. Т.е. надо будет добавлять новые поля, записывать это в скрипте.
Наверно проще скрипт оформить в виде VBScript-файла и работать из него напрямую с вашим Excel-файлом (возможно, открыв его в режиме БД) и базой данных (минуя промежуточный импорт во временную таблицу)

_________________
90% ответов на ваши вопросы находятся в руководстве, разделах "Вопросы" и "Видео" на нашем сайте.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Импорт из нестандартного файла
СообщениеДобавлено: 01.04.2020 02:09 
Не в сети

Зарегистрирован: 31.05.2019 11:58
Сообщения: 19
helgap писал(а):
При этом импортироваться они должны в одно поле "Компонент" в таблице "Компоненты изделия"
Немного не понял?В подчиненной таблице получается есть соответственно поле Артикул товара и поле Компонент
Соответственно содержимое должно получится такое ?
101001|4,388
101001|2
101001|4
101001|4
........
101002|6,582
101002|4
101002|6
........
У меня на SQL базе часто приходится импортировать данные с "нестандартных" по форме для меня файлов Excel(разные организации-разные "номенклатуры" и оформление таблиц) и причем импортировать нужно в разные таблицы , как правило они очень похожи на вашу ситуацию, если я правильно понял конечный результат вашего примера(см выше), если да - то у меня сделано так: промежуточная таблица для импорта данных с запасом по полям (15),на неё представление с UNION типа
Код:
SELECT Artikul, Komponent1 FROM [tblTestUn] UNION SELECT Artikul, Komponent2 FROM [tblTestUn] UNION SELECT Artikul, Komponent3 FROM [tblTestUn] UNION SELECT Artikul, Komponent4 FROM [tblTestUn]

а из неё экспорт в CSV (для скорости) а потом снова импорт ну уже в нужную мне таблицу.
"Костыль" конечно но сильно упрощает и ускоряет работу
Ранее пользовался макросами для Excel c профильных ресурсов которые производили преобразование файла к нужному виду,но при количестве строк более ограничения Excel пришлось сделать так......


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB