Pular para o conteúdo principal

LOP009 — Layout LOP009

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, EMPRESA, PEDIDO, PESSOA, ENDERECOPESSOA (+4).

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​

Producao #1​

SELECT DISTINCT p.nr_pedido, PE.nm_pessoa||' - '||PE.cd_pessoa DS_PESSOA, PE.nr_cnpjcpf, COALESCE(EP.ds_endereco||' - ','')||COALESCE(EP.nr_endereco||' - ','') ||EP.ds_bairro||' - '||M.ds_municipio DS_ENDERECO, EP.nr_fone, EP.nr_cep, E.NM_EMPRESA, COPIA_TEXTO(I.DS_ESPECIFICACAO, 1, CHAR_LENGTH(I.DS_ESPECIFICACAO)) DS_ESPECIFICACAO, O.NR_ORDEMPRODUCAO, O.NR_LOTEPRODUCAO, COALESCE(O.CD_EMPRPROD,O.CD_EMPRESA) CD_EMPRPROD, O.CD_ITEM, I.DS_ITEM, O.QT_PRODUZIDA, O.QT_DESEJADA, I.CD_GRADE, O.DT_INICIOPRODUCAO, P.dt_entrega
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 EMPRESA E ON (E.CD_EMPRESA = COALESCE(O.CD_EMPRLOTEPROD,O.CD_EMPRESA))
INNER JOIN PEDIDO P ON(P.cd_empresa = OP.cd_empresa
AND P.nr_pedido = OP.nr_pedido
AND P.tp_pedido = OP.tp_pedido)
INNER JOIN PESSOA PE ON(PE.cd_pessoa = P.cd_pessoa)
INNER JOIN ENDERECOPESSOA EP ON(EP.cd_pessoa = PE.cd_pessoa)
INNER JOIN MUNICIPIO M ON(M.cd_municipio = EP.cd_municipio)
WHERE COALESCE(O.CD_EMPRLOTEPROD,O.CD_EMPRESA) = 1
AND COALESCE(O.NR_LOTEPRODUCAO,O.NR_ORDEMPRODUCAO) = 107
ORDER BY I.DS_ITEM
SELECT LG.DS_LINHA||' - '||CG.DS_COLUNA DS_GRADE, SUM(GP.QT_GRADE) QT_GRADE
FROM ORDEMPRODUCAO O
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)
LEFT 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)
LEFT JOIN LINHAGRADE LG ON (LG.CD_GRADE = GP.CD_GRADE
AND LG.NR_LINHA = GP.NR_LINHA)
LEFT JOIN COLUNAGRADE CG ON (CG.CD_GRADE = GP.CD_GRADE
AND CG.NR_COLUNA = GP.NR_COLUNA)
WHERE O.CD_EMPRPROD = :CD_EMPRPROD
AND O.NR_LOTEPRODUCAO = :NR_LOTEPRODUCAO
AND O.NR_ORDEMPRODUCAO = :NR_ORDEMPRODUCAO
GROUP BY LG.DS_LINHA, CG.DS_COLUNA
ORDER BY 1 CD_EMPRPROD NR_LOTEPRODUCAO NR_ORDEMPRODUCAO

Producao #2​

{Consulta}

Consulta #1​

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

Consulta #2​

SELECT DISTINCT p.nr_pedido, PE.nm_pessoa||' - '||PE.cd_pessoa DS_PESSOA, PE.nr_cnpjcpf, {#10}COALESCE(EP.ds_endereco||' - ','')||COALESCE(EP.nr_endereco||' - ','') ||EP.ds_bairro||' - '||M.ds_municipio, DS_ENDERECO,{#10} EP.nr_fone, EP.nr_cep, P.DT_ENTREGA, E.NM_EMPRESA, COPIA_TEXTO(I.DS_ESPECIFICACAO, 1, CHAR_LENGTH(I.DS_ESPECIFICACAO)) DS_ESPECIFICACAO, {#10} O.NR_ORDEMPRODUCAO, O.NR_LOTEPRODUCAO, COALESCE(O.CD_EMPRPROD,O.CD_EMPRESA) CD_EMPRPROD, {#10} O.CD_ITEM, I.DS_ITEM, O.QT_PRODUZIDA, O.QT_DESEJADA, I.CD_GRADE, O.DT_INICIOPRODUCAO {#10}
FROM ORDEMPRODUCAO O {#10}
INNER JOIN ITEM I ON (O.CD_ITEM = I.CD_ITEM) {#10}
INNER JOIN ORDEMPRODUCAOPEDIDO OP ON (OP.CD_EMPRESA = O.CD_EMPRESA {#10}
AND OP.NR_ORDEMPRODUCAO = O.NR_ORDEMPRODUCAO {#10}
AND OP.CD_ITEM = O.CD_ITEM) {#10}
INNER JOIN EMPRESA E ON ( E.CD_EMPRESA = COALESCE(O.CD_EMPRLOTEPROD,O.CD_EMPRESA )) {#10}
INNER JOIN PEDIDO P ON(P.cd_empresa = OP.cd_empresa {#10}
AND P.nr_pedido = OP.nr_pedido {#10}
AND P.tp_pedido = OP.tp_pedido) {#10}
INNER JOIN PESSOA PE ON(PE.cd_pessoa = P.cd_pessoa) {#10}
INNER JOIN ENDERECOPESSOA EP ON(EP.CD_PESSOA = PE.CD_PESSOA {#10}
AND EP.CD_ENDERECO = (
SELECT FIRST 1 CD_ENDERECO
FROM ENDERECOPESSOA EA
WHERE EA.CD_PESSOA = EP.CD_PESSOA )) {#10}
INNER JOIN MUNICIPIO M ON(M.cd_municipio = EP.cd_municipio) {#10} {#10}
WHERE O.CD_EMPRLOTEPROD = {Resultado[1] + #10}
AND O.NR_LOTEPRODUCAO = {Resultado[0] + #10}
ORDER BY I.DS_ITEM{else Consulta :=}
SELECT DISTINCT p.nr_pedido, PE.nm_pessoa||' - '||PE.cd_pessoa DS_PESSOA, PE.nr_cnpjcpf, {#10}COALESCE(EP.ds_endereco||' - ','')||COALESCE(EP.nr_endereco||' - ','') ||EP.ds_bairro||' - '||M.ds_municipio, DS_ENDERECO,{#10} EP.nr_fone, EP.nr_cep, P.DT_ENTREGA, E.NM_EMPRESA, COPIA_TEXTO(I.DS_ESPECIFICACAO, 1, CHAR_LENGTH(I.DS_ESPECIFICACAO)) DS_ESPECIFICACAO, {#10} O.NR_ORDEMPRODUCAO, O.NR_LOTEPRODUCAO, COALESCE(O.CD_EMPRPROD,O.CD_EMPRESA) CD_EMPRPROD, {#10} O.CD_ITEM, I.DS_ITEM, O.QT_PRODUZIDA, O.QT_DESEJADA, I.CD_GRADE, O.DT_INICIOPRODUCAO {#10}
FROM ORDEMPRODUCAO O {#10}
INNER JOIN ITEM I ON (O.CD_ITEM = I.CD_ITEM) {#10}
INNER JOIN ORDEMPRODUCAOPEDIDO OP ON (OP.CD_EMPRESA = O.CD_EMPRESA {#10}
AND OP.NR_ORDEMPRODUCAO = O.NR_ORDEMPRODUCAO {#10}
AND OP.CD_ITEM = O.CD_ITEM) {#10}
INNER JOIN EMPRESA E ON ( E.CD_EMPRESA = COALESCE(O.CD_EMPRLOTEPROD,O.CD_EMPRESA )) {#10}
INNER JOIN PEDIDO P ON(P.cd_empresa = OP.cd_empresa {#10}
AND P.nr_pedido = OP.nr_pedido {#10}
AND P.tp_pedido = OP.tp_pedido) {#10}
INNER JOIN PESSOA PE ON(PE.cd_pessoa = P.cd_pessoa) {#10}
INNER JOIN ENDERECOPESSOA EP ON(EP.CD_PESSOA = PE.CD_PESSOA {#10}
AND EP.CD_ENDERECO = (
SELECT FIRST 1 CD_ENDERECO
FROM ENDERECOPESSOA EA
WHERE EA.CD_PESSOA = EP.CD_PESSOA )) {#10}
INNER JOIN MUNICIPIO M ON(M.cd_municipio = EP.cd_municipio) {#10} {#10}
WHERE O.CD_EMPRESA = {iParametros[1] + #10}
AND O.NR_ORDEMPRODUCAO = {iParametros[2] + #10}
ORDER BY I.DS_ITEM

Tabelas Utilizadas​

TabelaUso
COLUNAGRADEreferenciada nas queries do layout
EMPRESAreferenciada nas queries do layout
ENDERECOPESSOAreferenciada nas queries do layout
ITEMreferenciada nas queries do layout
LINHAGRADEreferenciada nas queries do layout
MUNICIPIOreferenciada nas queries do layout
ORDEMPRODUCAOreferenciada nas queries do layout
ORDEMPRODUCAOPEDIDOreferenciada nas queries do layout
ORDEMPRODUCAOPEDIDOGRADEreferenciada nas queries do layout
PEDIDOreferenciada nas queries do layout
PESSOAreferenciada nas queries do layout

Shared Units​

  • jCommon
  • jPesquisa

Fonte​

  • Unit: source/LOP009/ULOP009.pas
  • DFM: source/LOP009/ULOP009.dfm
  • Package: source/LOP009/LOP009.dpk