PCBExp 0 7 октября, 2017 Опубликовано 7 октября, 2017 · Жалоба Например есть изделие из трех плат. На каждой плате есть одни и те же компоненты и какие то уникальные. Материнская плата содержит к примеру 200 уникальных строк/позиций а дочки строк по по 50-100. Закупер хочет получить сводный BOM на все изделие. То есть если на основной плате стоит 5 штук на все времена любимых BAV99 а на двух дочках по одному то в сводном BOMе должна быть одна строчка где их 7 штук указано. Как их потом монтажное производство делит на три потока не наша забота. Сейчас все это руками делается и ошибки вычищаются с гарантией со второго третьего раза. А хочется один раз автоматом окучить три файла. Голову сломал, но как это в Excel сделать не понимаю. Если только макрос привлечь? Потом (если решим эту задачу) усложним задачу! На одном таком изделии может быть 2 одинаковых дочки и одна непохожая - то есть надо количество дочек как то учесть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 7 октября, 2017 Опубликовано 7 октября, 2017 · Жалоба Программу TDD видели? ВП документик называется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 7 октября, 2017 Опубликовано 7 октября, 2017 · Жалоба Если только макрос привлечь? Макрос будет ваш довольно сложным. По уму это делается в Access Сначала в Access вставляются все ваши внешние BOM-ы сделанные в Excel. Потом нажимется конопка и генерируется таблица плат. В ней после генерации указываете количестов плат каждого типа. Потом жмете кнопку и происходит обновление содержимого SQL запросов в базе данных. Данные собираются несколькими специальными запросами текст которых зависит от таблицы плат. В результате генерируется сводная таблица консолидированного BOM-а Т.е. в этой базе динамически меняется структура SQL запросов. Вряд ли вы в голом Excel-е это так просто сделаете. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x736C 0 7 октября, 2017 Опубликовано 7 октября, 2017 · Жалоба По уму в Access, но если нет желания с ним связываться, то легко реализуется на VB script в самом Excel. Единственная трудность может возникнуть, если один компонент будут слегка отличаться в записи в двух таблицах, то простой скрипт занесет их как два разных компонента. Я бы так и сделал, честно говоря. Слишком узкая задача, чтобы подключать сюда еще и Access. Тем более, что он в самые распространенные и доступные пакты Офиса не входит. Хотя для многих это спорный аргумент. Макрос будет ваш довольно сложным. Я вас умоляю:) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 7 октября, 2017 Опубликовано 7 октября, 2017 · Жалоба По уму в Access, но если нет желания с ним связываться, то легко реализуется на VB script в самом Excel. VB script в Excel? Я не помню уже тех времен когда в Excel можно было что-то написать на VB script если это в принципе было возможно. Сейчас пишут на VBA. API VBA одинаковое что в Excel, что в Access. Поэтому для разроботчика на API VBA в принципе нет разница в Excel или в Access писать. Только в шитах в Excel программист вынужден будет делать бескорнечные циклы по ячейкам и промежуточные таблицы вместо того чтобы написать короткие SQL команды. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x736C 0 7 октября, 2017 Опубликовано 7 октября, 2017 (изменено) · Жалоба Да, имел в виду VBA. В общем, несложный скрипт для такой задачи. Не спорю, что с Access все удобнее и проще. Только в шитах в Excel программист вынужден будет делать бескорнечные циклы по ячейкам и промежуточные таблицыВы просто не умеете его готовить:) Никаких бесконечных циклов, и без промежуточных можно обойтись. Изменено 7 октября, 2017 пользователем x736C Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 7 октября, 2017 Опубликовано 7 октября, 2017 · Жалоба В общем, несложный скрипт для такой задачи. Да конечно он не сложный для профессионала. А написал за час в Access. В Excel написал бы за день, но не буду. Напишите в Excel если вам так нравиться. Будет чем помериться. :smile3009: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x736C 0 7 октября, 2017 Опубликовано 7 октября, 2017 · Жалоба Кстати, у меня Excel честно купленный. А Ваш Access? Ну ладно, это я придираюсь:) А так да, денек я бы может и убил бы на такой скрипт. Но может и быстрее. Мне почему-то представляется все совсем просто. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 7 октября, 2017 Опубликовано 7 октября, 2017 · Жалоба Кстати, у меня Excel честно купленный. А Ваш Access? Ну ладно, это я придираюсь:) Даю совет. Приложения Access работают без MS Office - под голой виндой. Поэтому спокойно качайте триал, делайте приложение и раздавайте всем желающим. Вот мой проект - https://github.com/Indemsys/Consolidated-BO...dated_BOM.accdb Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dvf 1 8 октября, 2017 Опубликовано 8 октября, 2017 · Жалоба Вот мой проект - https://github.com/Indemsys/Consolidated-BO...dated_BOM.accdb И все? А, где хелп для начинающих? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 8 октября, 2017 Опубликовано 8 октября, 2017 · Жалоба И все? А, где хелп для начинающих? Предполагается, что пользователь имеет представление об SQL и редакторах таблиц в Access. Если нет, то читать мануал на Access. Самое сложное действие пользователя здесь - вставить в базу данных ссылки на внешние таблицы в Excel Это делается в закладке "Внешние данные" -> "Создать источник данных" -> "Из файла" -> "Excel", а там выбрать опцию "Создать связанную таблицу для связи с источником данных" Далее нажать последовательно три кнопки слева на право в форме. После редактирования названия плат нажимать вторую кнопку. После редактировании количества плат нажимать только третью кнопку. Какие поля должны быть в BOM-е можно посмотреть в таблице BOM_table_template Такие же поля должны быть в BOM-ах в Excel. Но могут быть и дополнительные, они просто не попадут в консолидированный BOM. Если поля не нравятся, то придеться редактировать запросы quElements_by_Boards, quBOM_, quBOM, quAllBomsUnion_w_Total Группировка производится по полям LibRef и PartNum. Они должны иметь уникальные значения для разных деталей. Но опять же, это не сложно изменить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
PCBExp 0 8 октября, 2017 Опубликовано 8 октября, 2017 · Жалоба Кстати, у меня Excel честно купленный. А Ваш Access? Ну ладно, это я придираюсь:) А так да, денек я бы может и убил бы на такой скрипт. Но может и быстрее. Мне почему-то представляется все совсем просто. Мне Excel тоже ближе. О базах типа Access я совсем поверхностное представление имею и разбираться в этом нет ни малейшего желания. Интересно а сколько может такая работа стоить если ее профессионалам заказать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x736C 0 8 октября, 2017 Опубликовано 8 октября, 2017 (изменено) · Жалоба PCBExp, подозреваю, что не очень много. Тем более, что не нужно быть особо профессионалом. По VBA есть отдельные форумы, там такие задачки решают чуть ли не студенты. Это в общем-то студенческая задачка. В Excel встроены удобные функции, которые позволяют сильно упростить определение каких-то вещей. Например, абсолютные адреса начала или конца таблицы вычисляются одной простой командой. Ну и так далее. Потом (если решим эту задачу) усложним задачу! На одном таком изделии может быть 2 одинаковых дочки и одна непохожая - то есть надо количество дочек как то учесть.Этот момент не очень понятен. Приведите конкретный пример, как вручную это делается сейчас. Изменено 8 октября, 2017 пользователем x736C Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
PCBExp 0 8 октября, 2017 Опубликовано 8 октября, 2017 (изменено) · Жалоба PCBExp, Этот момент не очень понятен. Приведите конкретный пример, как вручную это делается сейчас. Я в этой теме закупщику помочь хотел. Например он получает задачу произвести оборудование для 250 шкафов управления освещением. В каждом шкафу 2 одинаковых изделия и 3 разных. Всего 4 типа. Для простоты скажем что каждое изделие это одноплатная конструкция. На каждую плату есть BOM. Отсуда надо: три типа по штуке и четвертый тип 2 штуки на шкаф. И всего этого добра на 250 шкафов. Изменено 8 октября, 2017 пользователем PCBExp Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x736C 0 8 октября, 2017 Опубликовано 8 октября, 2017 (изменено) · Жалоба Закупщик получает задачу произвести оборудование? Очень размыто. С первой частью задачи все понятно. Есть пересекающиеся позиции и уникальные. Пересекающиеся надо просуммировать и записать одной записью. 1. Что такое «дочка»? Дочерняя плата или что? Я просто не в теме. При аббревиатуре BOM я представляю себе список из резисторов, конденсаторов и прочей комплектухи. Понятно, что это может быть что угодно. Но тогда нужно более конкретный пример. 2. Что значит «надо как-то учесть»? Как вы ее сейчас учитываете? 3. 250 шкафов — это 250 отдельных Excel-таблиц, которые надо свести в одну? Изменено 8 октября, 2017 пользователем x736C Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться