1 (edited by Kirs 2016-12-04 23:00:17)

Topic: ну и задачка

Приветствую ребята!

Подскажите, или помогите с решением, может кто сталкивался с подобным.

Есть очень емкий проект. Выкладываю краткое его применение.

(описание)
Проект для производства механообработки.
на станках работают наладчики, допустим 2 человека, в смену делают разные детали, допустим на 3х разных станках.
в смене 600 минут рабочего времени и есть нормы времени на каждую деталь.
Необходимо рассчитывать выработку наладчиков в смену на каждом станке и зарплату.
Также необходимо вести записи количества сделанных деталей,
потому как, в проекте учитывается все: брак, исправленный брак, время наладки станка, простоя, освоения новых деталей и прочее прочее.

Не получается осуществить следующее:
    1) На форме добавления записи наладчиком 2 комбобокса в которые он вносит свою фамилию и напарника, количество деталей которое они сделали, дату  и на каком станке делали детали.
все фамилии наладчиков хранятся в словаре, таблица.поле -( tab_naladchik.naladchik).
все данные с формы сохраняются в таблицу tab_zhurnal. В таблице tab_zhurnal 2 связи с таблицей
наладчиков id_tab_naladchik [tab_naladchik] и id_tab_naladchik1 [tab_naladchik] и создано вычисляемое поле calcnaladchik

(SELECT tab_naladchik.naladchik FROM tab_naladchik WHERE tab_naladchik.id=tab_zhurnal.id_tab_naladchik1)


все сохраняется, работает поиск (по двум комбобоксам), Но как сделать так, чтобы при поиске можно было использовать 1 комбобокс. Т.е. не важно какую фамилию я ввожу в один комбобокс 1го наладчика или его напарника я могу найти записи их смены.



  2) Расчет выработки .Эту задачу я вообще не имею представления как решить.
расчет ведется так: количество сделанных деталей умножается на время обработки деталей и делится на фонд времени и умножить на 100% .

Необходимо видеть в ТэйблГрид выработку за всю смену на одном станке
Наладчик сохраняет запись подетально, т.е. он в день может делать 2 или 3 разных детали на одном станке и столько же записей.
и на каждую деталь у него в расчете будет фонд времени 600 минут
тогда получится, что на каждую деталь у него низкая выработка, но в сумме за всю смену работы она будет 100%
Каким образом можно просматривать сумму выработки.
Возможно это будет еще один tableGrid с SQL-запросом, где каким-то образом будет учитываться связь даты станка и работников
или надо какойто идентификатор для каждой записи, например Ставить галочку на форме записи бригада 1 или бригада 2, чтобы различать записи разных смен и както сравнивать id станков и дату.

http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=2630&preview&secure_str=1149t2928
3) Ну и 3 задачка наверно она вытечет из решения задачи 2
Еще есть ТэйблГрид с Планом заказов
Там отображается информация о том какая деталь будет делаться на каком станке и установлена партия.
Необходимо как-то вычленять информацию из записей наладчиков сколько они деталей сделали и  в Плане заказов отображать остаток деталей до конца партии.
     Пожалуйста у кого какие мысли есть как это проще или удобнее реализовать пишите, готов испробовать все.

Post's attachments

Attachment icon 8cdc79fd08814b4bb3a6f7d17ffe9ff4.png 25.81 kb, 300 downloads since 2016-12-04 

Attachment icon V2.RAR 301.96 kb, 320 downloads since 2016-12-04 

Re: ну и задачка

Приветствую.


К сожалению я могу помочь только с конкретным вопросом, ваш вопрос это скорей техническое задание )

Dmitry.

Re: ну и задачка

Извиняюсь Дмитрий а с первым вопросом можете помочь? Попробую более конкретнее описать. Можно както искать одним комбобоксом связи из разных полей?

Re: ну и задачка

Kirs wrote:

Извиняюсь Дмитрий а с первым вопросом можете помочь? Попробую более конкретнее описать. Можно както искать одним комбобоксом связи из разных полей?

Для этого вам придеться реализовать поиск с помощью SQL запроса (кнопка с действием "SQL запрос")


пример запроса:

SELECT
person.firstname,
person.lastname,
groups.groupname,
groups1.groupname,
person.id

FROM person
  
LEFT OUTER JOIN groups ON groups.id=person.id_groups
LEFT OUTER JOIN groups groups1 ON groups1.id=person.id_groups1

WHERE
(CASE WHEN {cbGroup}=-1 THEN 1=1 ELSE person.id_groups={cbGroup} END) OR
(CASE WHEN {cbGroup}=-1 THEN 1=1 ELSE person.id_groups1={cbGroup} END)

если не получиться реализовать самостоятельно, приложите ваш проект с описанием, где именно это необходимо.

Dmitry.