Pular para o conteúdo principal

LOP005 — Layout LOP005

Visão Geral​

Layout de impressão da família LOP (Ordem de Serviço). Acionado via ExecLayout a partir das telas que imprimem este tipo de documento.

Descrição​

Consulta baseada em ORDEMPRODUCAO, com junção em ITEM, ORDEMPRODUCAOPEDIDO, PEDIDO, PESSOA, ORDEMPRODUCAOPEDIDOGRADE, LINHAGRADE (+5), filtrada por O, JO, CD_EMPRESA, NR_ORDEMPRODUCAO, CD_MATERIAPRIMA, CD_SUBGRUPO.

Chamada​

ExecLayout(Connection, [
// 0 - Nome do Layout
// 1 - Cod Empresa
// 2 - Nr Ordem Producao
// 3 - Path Servidor
// 4 - Visualiza -> V ou Imprime -> I
]);

SQL Base​

ORDEMPEDIDO​

SELECT O.NR_ORDEMPRODUCAO, O.NR_LOTEPRODUCAO, S.CD_PESSOA, S.NM_PESSOA, P.NR_PEDIDO, I.CD_FORNECEDOR1, O.CD_ITEM, I.DS_ITEM, LG.DS_LINHA||' - '||CG.DS_COLUNA DS_GRADE, GP.QT_GRADE QT_GRADE
FROM ORDEMPRODUCAO O
INNER JOIN ITEM I ON (O.CD_ITEM = I.CD_ITEM)
INNER JOIN ORDEMPRODUCAOPEDIDO OP ON (OP.CD_EMPRESA = O.CD_EMPRESA
AND OP.NR_ORDEMPRODUCAO = O.NR_ORDEMPRODUCAO
AND OP.CD_ITEM = O.CD_ITEM)
INNER JOIN PEDIDO P ON (P.CD_EMPRESA = OP.CD_EMPRPED
AND P.NR_PEDIDO = OP.NR_PEDIDO
AND P.TP_PEDIDO = OP.TP_PEDIDO)
INNER JOIN PESSOA S ON (S.CD_PESSOA = P.CD_PESSOA)
INNER JOIN ORDEMPRODUCAOPEDIDOGRADE GP ON (GP.CD_EMPRESA = OP.CD_EMPRESA
AND GP.NR_ORDEMPRODUCAO = OP.NR_ORDEMPRODUCAO
AND GP.CD_EMPRPED = OP.CD_EMPRPED
AND GP.NR_PEDIDO = OP.NR_PEDIDO
AND GP.TP_PEDIDO = OP.TP_PEDIDO
AND GP.CD_ITEM = OP.CD_ITEM)
INNER JOIN LINHAGRADE LG ON (LG.CD_GRADE = GP.CD_GRADE
AND LG.NR_LINHA = GP.NR_LINHA)
INNER JOIN COLUNAGRADE CG ON (CG.CD_GRADE = GP.CD_GRADE
AND CG.NR_COLUNA = GP.NR_COLUNA)
WHERE COALESCE(O.CD_EMPRLOTEPROD,O.CD_EMPRESA) = :CD_EMPRESA
AND COALESCE(O.NR_LOTEPRODUCAO,O.NR_ORDEMPRODUCAO) = :NR_ORDEM CD_EMPRESA NR_ORDEM
SELECT I.DS_ITEM||' <'||I.CD_ITEM||'> ' DS_ITEM, I.SG_UNIDMED, SUM(M.QT_ITEMPRODUCAO) QT_ITEMPRODUCAO, S.DS_SUBGRUPO
FROM ORDEMPRODUCAO O
INNER JOIN ITEMORDEMPROD M ON (M.CD_EMPRESA = O.CD_EMPRESA
AND M.NR_ORDEMPRODUCAO = O.NR_ORDEMPRODUCAO)
INNER JOIN ITEM I ON (M.CD_MATERIAPRIMA = I.CD_ITEM)
LEFT JOIN SUBGRUPO S ON (S.CD_SUBGRUPO = I.CD_SUBGRUPO)
WHERE COALESCE(O.CD_EMPRLOTEPROD,O.CD_EMPRESA) = :CD_EMPRESA
AND COALESCE(O.NR_LOTEPRODUCAO,O.NR_ORDEMPRODUCAO) = :NR_ORDEM
GROUP BY I.DS_ITEM, I.CD_ITEM, I.SG_UNIDMED, S.DS_SUBGRUPO
ORDER BY S.DS_SUBGRUPO, I.DS_ITEM CD_EMPRESA 1 NR_ORDEM
SELECT FIRST 1 COALESCE(O.CD_EMPRLOTEPROD,O.CD_EMPRESA) CD_EMPRESA, COALESCE(O.NR_LOTEPRODUCAO,O.NR_ORDEMPRODUCAO) NR_ORDEM, O.CD_EMPRESA, E.NM_EMPRESA, O.NR_ORDEMPRODUCAO, O.NR_LOTEPRODUCAO, O.DT_INICIOPRODUCAO
FROM ORDEMPRODUCAO O
INNER JOIN EMPRESA E ON (E.CD_EMPRESA = O.CD_EMPRESA)
SELECT I.CD_FORNECEDOR1, O.CD_ITEM, I.DS_ITEM, LG.DS_LINHA||' - '||CG.DS_COLUNA DS_GRADE, SUM(GP.QT_GRADE) QT_GRADE
FROM ORDEMPRODUCAO O
INNER JOIN ITEM I ON (O.CD_ITEM = I.CD_ITEM)
INNER JOIN ORDEMPRODUCAOGRADE GP ON (GP.CD_EMPRESA = O.CD_EMPRESA
AND GP.NR_ORDEMPRODUCAO = O.NR_ORDEMPRODUCAO
AND GP.CD_ITEM = O.CD_ITEM)
INNER JOIN LINHAGRADE LG ON (LG.CD_GRADE = GP.CD_GRADE
AND LG.NR_LINHA = GP.NR_LINHA)
INNER JOIN COLUNAGRADE CG ON (CG.CD_GRADE = GP.CD_GRADE
AND CG.NR_COLUNA = GP.NR_COLUNA)
WHERE COALESCE(O.CD_EMPRLOTEPROD,O.CD_EMPRESA) = :CD_EMPRESA
AND COALESCE(O.NR_LOTEPRODUCAO,O.NR_ORDEMPRODUCAO) = :NR_ORDEM
GROUP BY I.CD_FORNECEDOR1, O.CD_ITEM, I.DS_ITEM, LG.DS_LINHA, CG.DS_COLUNA
ORDER BY I.CD_FORNECEDOR1, LG.DS_LINHA, CG.DS_COLUNA CD_EMPRESA 1 NR_ORDEM
SELECT I.CD_FORNECEDOR1, O.CD_ITEM, I.DS_ITEM, LG.DS_LINHA||' - '||CG.DS_COLUNA DS_GRADE, SUM(GP.QT_GRADE) QT_GRADE
FROM ORDEMPRODUCAO O
INNER JOIN ITEM I ON (O.CD_ITEM = I.CD_ITEM)
INNER JOIN ORDEMPRODUCAOGRADE GP ON (GP.CD_EMPRESA = O.CD_EMPRESA
AND GP.NR_ORDEMPRODUCAO = O.NR_ORDEMPRODUCAO
AND GP.CD_ITEM = O.CD_ITEM)
INNER JOIN LINHAGRADE LG ON (LG.CD_GRADE = GP.CD_GRADE
AND LG.NR_LINHA = GP.NR_LINHA)
INNER JOIN COLUNAGRADE CG ON (CG.CD_GRADE = GP.CD_GRADE
AND CG.NR_COLUNA = GP.NR_COLUNA)
INNER JOIN ITEMORDEMPROD M ON (M.CD_EMPRESA = O.CD_EMPRESA
AND M.NR_ORDEMPRODUCAO = O.NR_ORDEMPRODUCAO)
INNER JOIN ITEM MI ON (MI.CD_ITEM = M.CD_MATERIAPRIMA
AND MI.CD_SUBGRUPO = 104)
WHERE COALESCE(O.CD_EMPRLOTEPROD,O.CD_EMPRESA) = :CD_EMPRESA
AND COALESCE(O.NR_LOTEPRODUCAO,O.NR_ORDEMPRODUCAO) = :NR_ORDEM
GROUP BY I.CD_FORNECEDOR1, O.CD_ITEM, I.DS_ITEM, LG.DS_LINHA, CG.DS_COLUNA
ORDER BY I.CD_FORNECEDOR1, LG.DS_LINHA, CG.DS_COLUNA CD_EMPRESA 1 NR_ORDEM

Consulta​

SELECT NR_LOTEPRODUCAO, CD_EMPRLOTEPROD
FROM ORDEMPRODUCAO
WHERE CD_EMPRESA = {iParametros[1]}
AND NR_ORDEMPRODUCAO = {iParametros[2]}

Tabelas Utilizadas​

TabelaUso
COLUNAGRADEreferenciada nas queries do layout
EMPRESAreferenciada nas queries do layout
ITEMreferenciada nas queries do layout
ITEMORDEMPRODreferenciada nas queries do layout
LINHAGRADEreferenciada nas queries do layout
ORDEMPRODUCAOreferenciada nas queries do layout
ORDEMPRODUCAOGRADEreferenciada nas queries do layout
ORDEMPRODUCAOPEDIDOreferenciada nas queries do layout
ORDEMPRODUCAOPEDIDOGRADEreferenciada nas queries do layout
PEDIDOreferenciada nas queries do layout
PESSOAreferenciada nas queries do layout
SUBGRUPOreferenciada nas queries do layout

Shared Units​

  • jCommon
  • jPesquisa

Fonte​

  • Unit: source/LOP005/ULOP005.pas
  • DFM: source/LOP005/ULOP005.dfm
  • Package: source/LOP005/LOP005.dpk