Страница: 1 |
Страница: 1 |
Вопрос: Помогите с алгоритмом проги.
Добавлено: 11.07.07 09:16
Автор вопроса:
fuzytsfcrew | Web-сайт:
Есть базы данных в BDF которые можно только читать (менять ее низя). Это что-то на подобии тех. процесса. В них есть следующие поля: "Серийный № детали", "название детали", "назв.професии (имеется ввиду профессия рабочего, который выполняет некую операцию по изготовлению этой детали. для одной детали - несколько профессий)", "цех (рабочего, который - смотри выше.)", "Розряд (рабочего)" и "Трудоемкость (за операцию конкретного рабочего для конкретной детали)".
Цель: Сделать некий план по производству за определенны период. Т.е. выбираем деталь по №, -> вводим колличество этих деталей, -> вводим временные рамки в два DBPicer-a (от и до) - когда план всех деталей набран - произвести расчет с выдачей на ведомости.
Содержание вых. данных:
Для всего плана должна быть таблицы в виде:
1. ОБЩИЙ: Профессия, цех, розряд, трудоемкость умноженная на количество деталей, зарплата умноженная на количество деталей.
(профессии могут повторятся, если у них отличия в №цеха или розряде. Для одинаковых профессий трудоемкость и зарплата суммируется)
2. ЦЕХ: Профессия, трудоемкость умноженная на количество деталей и зарплата умноженная на количество деталей.
(профессии могут повторятся, если у них отличия в розряде. Для одинаковых профессий трудоемкость и зарплата суммируется)
Чего я уже сделал:
Примитивную форму с комбобоксом (combo1) и двумя DAO - Data1, Data2 т.к. базы 2 шт. и текстбокс (text1) для ввода количества деталей.
Заполняю combo1 значениями Серийный № детали (NAME_CH) из 2-х баз.
Data1.RecordSource = "SELECT DISTINCT baz_ip.NAME_CH FROM baz_ip ORDER BY NAME_CH"
Data1.Refresh
Data2.RecordSource = "SELECT DISTINCT baz_msp.NAME_CH FROM baz_msp ORDER BY NAME_CH"
Data2.Refresh
With Data1.Recordset
Do Until .EOF
If Not IsNull(!NAME_CH) Then Combo1.AddItem !NAME_CH
.MoveNext
Loop
End With
With Data2.Recordset
Do Until .EOF
If Not IsNull(!NAME_CH) Then Combo1.AddItem !NAME_CH
.MoveNext
Loop
End With
А вот как дальше расставить по полкам задачи которые нужно сделать? Каким путем лучше пойти? Может ложить данные этого "Плана производства" в свежесозданную базу?
Как потом чего? Может кто-то разъяснить по пунктам - типа - выделил в базе все записи у которых ..., перенес их..., создал...., объеденил записи,где ...., и т.д.???
Просто на словах...
Моя форма - http://www.visual-basic.by.ru/pictures/form_trud.gif
Пример данных базы - http://www.visual-basic.by.ru/pictures/baza_trud.gif
Огромное спасибо заранее.
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа: fuzytsfcrew
ICQ: 314339
Вопросов: 30
Ответов: 102
Web-сайт:
Профиль | | #1
Добавлено: 11.07.07 14:55
Народ! Я ж не прошу писать прогу за меня....
Хоть натолкните на мысль, как это лучше сделать..
План производства я уже набираю в таблицу Access (time1, time2, detaL_name, kollichestvo)
Как быть дальше?
Номер ответа: 2
Автор ответа: KreAtoR
Вопросов: 120
Ответов: 438
Профиль | | #2
Добавлено: 11.07.07 15:52
мммм очень на это похоже
создай таблицы в SQL которой прописана каждая часть (класс)
начнем что производят!!!
таблица продукция:
название_ "Коробок спичек"
номер_на_производстве_ 1Q3er5h
колво_операций_ 3
названия_операций_ сделатьСпички, сделатьКоробку, наклеитьФосфор
описываем операции:
название "Сделать Спички"
номер_цеха 23у
колво_человек 1
имя_человека "Вася Петичкин"
время_на_деталь 5 сек
стоимость_секунды_работы)на_человека 1$
название "Сделать Коробку"
номер_цеха 68п
колво человек 2
имя_человека "Коля Коровин" "Маша Баянина"
время_на_деталь_для_одного_человека 1 день
стоимость_секунды_работы_на_человека 1$
название "Наклеить Фосфор"
номер_цеха 23в
колво_человек 1
имя_человека "Имма Петровна"
время_на_деталь_для_одного_человека 3 часа
стоимость_секунды_работы_на_человека 2$
перечисляем персонал (или идем в отдел кадров)
имя_рабочего "Вася Петичкин"
стаж 45 лет
уровень 4 разряд
до пенсии 99 лет
сколько_детей 7 по полкам
и т.д.
потом соединяешь все таблицы вместе и запрашиваешь вот этот номер "1Q3er5h"
выводится вся информация по этому продукту вплоть сколько детей у того или иного рабочего. Можно и штрафы за парковку приплести.
Надеюсь чем нибудь тебе помог
Номер ответа: 3
Автор ответа: Серёга
ICQ: 262809473
Вопросов: 17
Ответов: 561
Web-сайт:
Профиль | | #3
Добавлено: 11.07.07 17:05
Если я всё правильно понял - тебе нужно посчитать количество рабочих и зарплату. Так?
Если так, то не вижу препятствий.
1. У тебя есть необходимое кол-во деталей и трудоемкость для каждой операции. Умножаем. Получилась суммарная трудоемкость для каждой операции - ТО_с
2. У тебя есть время производства (между времеными рамками) - Т_пр. Делим ТО_с на Т_пр. Получилось количество рабочих для каждой операции - К_р.
3. Каждой операции соответствует профессия, но иногда можно совмещать операции, задействую при этом одного рабочего. Например фрезеровщик 5 разряда запросто может выполнять работу сверловщика 2 разряда. Слесарь может делать распиловку проката и т.д. Так вот на следующем этапе мы смотрим как можно совместить просессии. Например у нас получилось что нужно 2.6 слесаря и 0.3 распиловщика. Совмещаем. Берем для проиводства 2.9 слесаря, но т.к. слесаря бывают только целыми - берем 3.0 Начинай с наивысших разрядов (6,5) и определяй количество рабочих. Потом смотри, если кто - то недозагружен - впаривай ему работу долее низкого разряда и т.д.
4. В результате мы имеем некую таблицу, в которой напротив каждой операции стоит фамилия (ID) рабочего. Т.к. нам изветсна трудоемкость каждой операции и разряд работы - мы можем подсчитать зарплату каждого рабочего.
Кажись всё
Номер ответа: 4
Автор ответа: fuzytsfcrew
ICQ: 314339
Вопросов: 30
Ответов: 102
Web-сайт:
Профиль | | #4
Добавлено: 12.07.07 07:45
To Серёга...
Вы все правильно поняли.
На самом деле этот процесс уже идет полным ходом, но вручную...Тетки в бухгалтерии и в плановом и в производственном отделе пыхтят над этим с калькуляторами и бумажками..
Процесс теперь стоит только в автоматизации всего этого ...
Допустим я этот план производства (количество дет., название дет., период с и до) заполняю в новую БД Accessa в виде (time1, time2, number, kolichestvo)
теперь я так понимаю мои действия - выделить (SELECT) все записи у которых №детали = которая есть в БД Accessa со всеми ее атребутами и ГЛАВНОЕ - Трудоёмкость и Зарплата сразу должны быть умножены на количество деталей. Потом наверное нужно все эти записи в таблицу реальную помещать, чтоб к след. детали перейти. И так до EOF БД Accessa. Потом эту новую таблицу, в которой будет (Профессия, Цех, Розряд, Трудоемкость, Зарплата) каким-то чудом объеденить записи где Профессия, Цех, Розряд ОДИНАКОВЫЕ и для них значения Трудоемкость, Зарплата ПРОСУММИРОВАТЬ.
Это только первая часть всего этого... - Может есть какой-то другой путь реализации всего этого?
Номер ответа: 5
Автор ответа: VisualPaul
ICQ: 402519798
Вопросов: 12
Ответов: 111
Профиль | | #5
Добавлено: 12.07.07 09:31
Эта пять! И +1.
Номер ответа: 6
Автор ответа: fuzytsfcrew
ICQ: 314339
Вопросов: 30
Ответов: 102
Web-сайт:
Профиль | | #6
Добавлено: 12.07.07 09:36
To VisualPaul
- это Вы о чем?
Номер ответа: 7
Автор ответа: Серёга
ICQ: 262809473
Вопросов: 17
Ответов: 561
Web-сайт:
Профиль | | #7
Добавлено: 12.07.07 16:19
ИМХО нет.
Номер ответа: 8
Автор ответа: fuzytsfcrew
ICQ: 314339
Вопросов: 30
Ответов: 102
Web-сайт:
Профиль | | #8
Добавлено: 12.07.07 16:34
Понятно. Значит и буду так действовать.
Но никак не выходит в одну таблицу новой базы Accessa засунуть определенные столбци из нескольких баз БДФ.