Заказ звонка

Закрыть

*
*
*

необходимо вытащить размер заготовки в отчете

Страницы: 1 2 След.
RSS
необходимо вытащить размер заготовки в отчете
здравствуйте.
Необходимо находясь в режиме номенклатуры - класс материалов нужно вытащить размер заготовки из режима работа с ПСп(режим техпроцесс - класс материал - реквизиты) на используемую номенклатуру класса детали(ДЕ).

Необходим отчет для работников отдела закупок, на сегодняшний день в новых заказах появились в большом количестве нестандартные длины закупаемых материалов(например уголок вместо 6м нужен 8м). Пользователи работают со справочниками номенклатуры и со сводными ведомостями на материал.
У нас существует отчет из режима номенклатуры о применяемости материала на изделия по деталям, приняли решение его доработать чтобы был виден нестандартный размер заготовки.

У меня возникла сложность при составлении запроса, не могу добраться до этого размера заготовки. Подскажите пожалуйста по каким таблицам(представлениям) туда добраться.

недавно только начал работать с ТКС и запросами t-sql, поэтому сильно не ругайтесьsmile:)
вот мой запрос.
SEL ECT DISTINCT NMK.NMK_NOTE + '-' + NMK.NMK_NAME AS MAT,
NMK_DET.NOTE + '-' + NMK_DET.NAME AS DET,
NMK_MACH.NOTE + '-' + NMK_MACH.NAME AS MACHINE,
PP.PARAMETER_VALUE AS Rzag,
PP.PARAMETER_UNIQUE_CODE /* просто вывел для тестирования*/
FR OM NMK
LEFT JOIN V_PRODUCTION_BOMS_REQUIREMENTS AS POTREB ON NMK.NMK_ID = POTREB.REQUIREMENTS
LEFT JOIN V_NOMENCLATURE AS NMK_DET ON NMK_DET.ID = POTREB.NOMENCLATURE_ITEM_ID
LEFT JOIN V_NOMENCLATURE AS NMK_MACH ON NMK_MACH.ID = POTREB.PRODUCTION_BOM_NOMENCLATURE_ID
/* думаю ниже накосячил, может не оттуда тяну */
LEFT JOIN V_PROCESS_COLLECTION AS P_COLLECTION ON P_COLLECTION.PRODUCTION_BOM_ID=POTREB.PRODUCTION_BOM_ID
LEFT JOIN V_PROCESSES_PARAMETERS AS PP ON PP.PROCESS_ITEM_ID=P_COLLECTION.PROCESS_ITEM_ID

WHERE NMK.NMK_CLASSIF_TYPE_ID = 25 /* тут просто выделенная позиция номенклатуры*/
AND (NMK.NMK_ID IN (2371))
AND PP.PARAMETER_UNIQUE_CODE = 'TCS_MZ_RZ'

добавил скрин результата отчета без размера заготовки.
Изменено: Игорь Сорокин - 03.04.2012 16:00:48 (добавил скрин)
http://www.tcsdev.com/support/rukovodstvo_razrabotchika_tcs/index.html
или связь V_NOMENCLATURE -- V_MANUFACTURING_PROCESSES -- V_PROCESS_ITEM_REQUISITES
Изменено: Дмитрий Алексеев - 03.04.2012 16:21:34
спасибо, кое что прояснилось,
но есть проблема вытаскивает реквизиты на детали, которые не используются в псп, и привязывает размер заготовки ко всем деталям, а на самом деле должно быть ось l=710, торсион l=520.

SEL ECT DISTINCT V_NOMENCLATURE.NOTE+'-'+V_NOMENCLATURE.NAME AS MAT,
NMK_DET.NOTE + '-' + NMK_DET.NAME AS DET,
NMK_MACH.NOTE + '-' + NMK_MACH.NAME AS MACHINE,
/*V_PROCESSES_PARAMETERS.PARAMETER_UNIQUE_CODE, */
V_PROCESSES_PARAMETERS.PARAMETER_VALUE,
V_MANUFACTURING_PROCESSES.VERSION_ID as ver
FR OM V_MANUFACTURING_PROCESSES
INNER JOIN V_NOMENCLATURE ON V_MANUFACTURING_PROCESSES.NOMENCLATURE_ITEM_ID = V_NOMENCLATURE.ID
INNER JOIN V_PROCESS_ITEM_REQUISITES ON V_MANUFACTURING_PROCESSES.PROCESS_ITEM_ID = V_PROCESS_ITEM_REQUISITES.PROCESS_ITEM_ID
INNER JOIN V_PROCESSES_PARAMETERS ON V_PROCESS_ITEM_REQUISITES.PROCESS_ITEM_ID = V_PROCESSES_PARAMETERS.PROCESS_ITEM_ID
AND V_PROCESSES_PARAMETERS.PARAMETER_UNIQUE_CODE = 'TCS_MZ_RZ'

INNER JOIN V_PRODUCTION_BOMS_REQUIREMENTS POTREB ON V_NOMENCLATURE.ID = POTREB.REQUIREMENTS
INNER JOIN V_NOMENCLATURE AS NMK_DET ON NMK_DET.ID = POTREB.NOMENCLATURE_ITEM_ID
INNER JOIN V_NOMENCLATURE AS NMK_MACH ON NMK_MACH.ID = POTREB.PRODUCTION_BOM_NOMENCLATURE_ID
WHERE V_NOMENCLATURE.ID IN (2371)
ORDER BY ver
INNER JOIN V_PROCESSES_PARAMETERS ON V_PROCESS_ITEM_REQUISITES.PROCESS_ITEM_ID = V_PROCESSES_PARAMETERS.PROCESS_ITEM_ID
AND V_PROCESSES_PARAMETERS.PARAMETER_UNIQUE_CODE = 'TCS_MZ_RZ'
тоже с V_MANUFACTURING_PROCESSES связать надо, а не с V_PROCESS_ITEM_REQUISITES
там в хелпе по дереву смотри, что от чего идет и какие поля связывать!
ели параметры ТП, то оа находится в ветка ТП! И так далее!
БОЛЬШОЕ спасибо за помощь. вроде все сделал как надо.
работает до момента добавления размера заготовки, причем когда пытаюсь просто вывести ид V_MANUFACTURING_PROCESSES количество записей увеличивается, не могу понять как от этого избавиться и всё таки прицепить размер этой заготовки.
SEL ECT DISTINCT NMK_MAT.NOTE+'-'+NMK_MAT.NAME AS MAT,
NMK_DET.NOTE+'-'+NMK_DET.NAME AS DET,
PSP.NOTE+'-'+PSP.NAME AS MASHINE,
PARAM.PARAMETER_VALUE
FR OM dbo.V_MANUFACTURING_PROCESSES AS TP INNER JOIN
dbo.V_NOMENCLATURE AS NMK_MAT INNER JOIN
dbo.V_PRODUCTION_BOMS_REQUIREMENTS AS POTREB ON NMK_MAT.ID = POTREB.REQUIREMENTS INNER JOIN
dbo.V_PRODUCTION_BOMS AS PSP ON POTREB.PRODUCTION_BOM_ID = PSP.ID INNER JOIN
dbo.V_NOMENCLATURE AS NMK_DET ON POTREB.NOMENCLATURE_ITEM_ID = NMK_DET.ID ON TP.NOMENCLATURE_ITEM_ID = NMK_DET.ID
LEFT JOIN dbo.V_PROCESSES_PARAMETERS AS PARAM ON TP.PROCESS_ITEM_ID = PARAM.PROCESS_ITEM_ID /*после добавления ЭТОЙ СТРОКИ ничего не выводит вообще( */
WHERE (PARAM.PARAMETER_UNIQUE_CODE = 'TCS_MZ_RZ') AND (NMK_MAT.ID IN (2371))

на первом скрине как должно быть(только без размера заготовки - он тоже должен быть)
на втором скрине как есть(((
а на 4 скрине когда вывожу ид ТП
12.png (70.09 КБ) [ Скачать ]
INNER JOIN
dbo.V_NOMENCLATURE AS NMK_MAT
а здесь где связь?!
в следующей строчке ...ON NMK_MAT.ID = POTREB.REQUIREMENTS
Цитата
Игорь Сорокин пишет:
в следующей строчке ...ON NMK_MAT.ID = POTREB.REQUIREMENTS


SEL ECT DISTINCT NMK_MAT.NOTE+'-'+NMK_MAT.NAME AS MAT,
NMK_DET.NOTE+'-'+NMK_DET.NAME AS DET,
PSP.NOTE+'-'+PSP.NAME AS MASHINE,
PARAM.PARAMETER_VALUE
FR OM dbo.V_MANUFACTURING_PROCESSES AS TP
INNER JOIN dbo.V_NOMENCLATURE AS NMK_MAT
INNER JOIN dbo.V_PRODUCTION_BOMS_REQUIREMENTS AS POTREB ON NMK_MAT.ID = POTREB.REQUIREMENTS
INNER JOIN dbo.V_PRODUCTION_BOMS AS PSP ON POTREB.PRODUCTION_BOM_ID = PSP.ID
INNER JOIN dbo.V_NOMENCLATURE AS NMK_DET ON POTREB.NOMENCLATURE_ITEM_ID = NMK_DET.ID ON TP.NOMENCLATURE_ITEM_ID = NMK_DET.ID
LEFT JOIN dbo.V_PROCESSES_PARAMETERS AS PARAM ON TP.PROCESS_ITEM_ID = PARAM.PROCESS_ITEM_ID /*после добавления ЭТОЙ СТРОКИ ничего не выводит вообще( */
WHERE (PARAM.PARAMETER_UNIQUE_CODE = 'TCS_MZ_RZ') AND (NMK_MAT.ID IN (2371))


INNER JOIN dbo.V_NOMENCLATURE AS NMK_MAT она ни к чему не привязана!
Изменено: Дмитрий Алексеев - 10.04.2012 08:58:37
а так
SEL ECT DISTINCT
NMK_MAT.NOTE + '-' + NMK_MAT.NAME AS MAT,
NMK_DET.NOTE + '-' + NMK_DET.NAME AS DET,
PSP.NOTE + '-' + PSP.NAME AS MASHINE, TP.PROCESS_ITEM_ID, PARAM.PARAMETER_VALUE AS RZAG
FR OM dbo.V_NOMENCLATURE AS NMK_MAT INNER JOIN
dbo.V_PRODUCTION_BOMS_REQUIREMENTS AS POTREB ON NMK_MAT.ID = POTREB.REQUIREMENTS INNER JOIN
dbo.V_PRODUCTION_BOMS AS PSP ON POTREB.PRODUCTION_BOM_ID = PSP.ID INNER JOIN
dbo.V_NOMENCLATURE AS NMK_DET ON POTREB.NOMENCLATURE_ITEM_ID = NMK_DET.ID INNER JOIN
dbo.V_MANUFACTURING_PROCESSES AS TP ON TP.NOMENCLATURE_ITEM_ID = NMK_DET.ID left JOIN
dbo.V_PROCESSES_PARAMETERS AS PARAM ON TP.PROCESS_ITEM_ID = PARAM.PROCESS_ITEM_ID
WHERE (PARAM.PARAMETER_UNIQUE_CODE = 'TCS_MZ_RZ') AND (NMK_MAT.ID IN (2371))

все равно тоже самое.
Попробуйте переименовать таблицу V_PROCESSES_PARAMETERS AS PARAM например в RAZM? если не получится попробуйте запрос

SEL ECT DISTINCT
NMK_MAT.NOTE + '-' + NMK_MAT.NAME AS MAT,
NMK_DET.NOTE + '-' + NMK_DET.NAME AS DET,
PSP.NOTE + '-' + PSP.NAME AS MASHINE, TP.PROCESS_ITEM_ID, PARAM.PARAMETER_VALUE AS RZAG
FR OM dbo.V_NOMENCLATURE AS NMK_MAT
INNER JOIN dbo.V_PRODUCTION_BOMS_REQUIREMENTS AS POTREB ON NMK_MAT.ID = POTREB.REQUIREMENTS
INNER JOIN dbo.V_PRODUCTION_BOMS AS PSP ON POTREB.PRODUCTION_BOM_ID = PSP.ID
INNER JOIN dbo.V_NOMENCLATURE AS NMK_DET ON POTREB.NOMENCLATURE_ITEM_ID = NMK_DET.ID

left JOIN V_VERSIONS ON (NMK_DET.ID=V_VERSIONS.NOMENCLATURE_ITEM_ID AND V_VERSIONS.VERSION_STATE=0 AND V_VERSIONS.VERSION_TYPE='T')
left JOIN dbo.V_MANUFACTURING_PROCESSES AS TP ON TP.VERSION_ID=V_VERSIONS.ID

left JOIN dbo.V_PROCESSES_PARAMETERS AS RAZM ON TP.PROCESS_ITEM_ID = RAZM.PROCESS_ITEM_ID
WHERE (RAZM.PARAMETER_UNIQUE_CODE = 'TCS_MZ_RZ') AND (NMK_MAT.ID IN (2371))
Изменено: Дмитрий Алексеев - 10.04.2012 13:02:15
Страницы: 1 2 След.
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)