CD_LAYORDEM — Layout de Ordem de Produção
Tela de configuração: MEQ001 — Parâmetros de Estoque Localização: Aba Layouts, campo Layouts (
edtCD_LAYORDEM) Tabela / Coluna:PARMESTOQUE.CD_LAYORDEMTipo:DOM_VARCHAR6(até 6 caracteres, maiúsculas) Valor padrão:NULL(vazio)
Resumo
Define o código do layout de impressão utilizado para gerar relatórios de Ordens de Produção. Quando preenchido, o sistema carrega o layout especificado via CarregaLayout() e o utiliza para imprimir a ordem. Quando vazio, o comportamento varia conforme a tela consumidora — em algumas telas o botão de impressão é ocultado; em outras, é usado um layout de fallback (LET036).
Telas impactadas
| Tela | Nome | Papel de CD_LAYORDEM |
|---|---|---|
| MEQ001 | Parâmetros de Estoque | Configuração — campo editável na aba Layouts |
| MEQ006 | Ordem de Produção | Imprime ordem ao salvar (se preenchido e NR_ORDEMPRODUCAO preenchido) |
| MEQ011 | Ordem de Produção (variação) | Imprime ordem ao salvar (se preenchido e NR_ORDEMPRODUCAO preenchido) |
| MEQ012 | Ordens de Produção (consulta/fechamento) | Imprime ao clicar Imprimir, no Fechamento e no Fechamento por Lote |
| MEQ017 | Ordem de Produção (variação) | Imprime ordem ao salvar |
| MEQ019 | Consulta de Ordens de Produção | Oculta btnImprimir e Separador3 quando vazio; usa layout para impressão |
| MEQ020 | Ordem de Produção (produção) | Imprime após gravação; fallback para LET036 quando vazio |
| MEQ021 | Consulta de Ordens (variação) | Oculta btnImprimir e Separador3 quando vazio; usa layout para impressão |
| CEQ002 | Consulta de Estoque | Consulta CD_LAYORDEM de PARMESTOQUE |
Campos envolvidos
| Campo | Tabela | Função |
|---|---|---|
CD_LAYORDEM | PARMESTOQUE | Código do layout (até 6 caracteres) |
NR_ORDEMPRODUCAO | PRODUCAO / tabelas de ordem | Número da ordem — exigido preenchido para que a impressão ocorra |
Opções disponíveis
O campo aceita qualquer código de layout válido de até 6 caracteres. Não existem opções fixas rígidas (combo/lista). Os valores mais comuns encontrados no código fonte são:
Layout preenchido (ex: ORD001, LET036, ou qualquer código válido)
| O que faz | Detalhe |
|---|---|
| Editável | Sim — campo de texto livre, maiúsculas, até 6 caracteres |
| Exige | Código de layout válido cadastrado no módulo de layouts do sistema |
| Restrição | Sem restrição de valores específicos; o sistema valida se o layout existe ao carregar |
Simulação passo a passo
- Acesse MEQ001 → Parâmetros de Estoque.
- Navegue até a aba Layouts.
- No campo Layouts (
edtCD_LAYORDEM), digite o código do layout desejado (ex:ORD001). - Salve o registro (
<Ctrl+S>ou botão Salvar). - Acesse uma das telas de produção (ex: MEQ020 — Ordem de Produção).
- Realize o processo de produção e grave a ordem.
- Ao final da gravação, o sistema chama
CarregaLayout()passando o código informado emCD_LAYORDEMcomo primeiro parâmetro, juntamente com empresa, número da ordem, path, modo'V'e código do usuário. - O relatório da ordem é gerado com o layout configurado.
Resultado esperado: A Ordem de Produção é impressa utilizando o layout cujo código foi parametrizado. O relatório segue a formatação, campos e regras definidas nesse layout.
Campo vazio (NULL ou string vazia)
| O que faz | Detalhe |
|---|---|
| Editável | Sim — basta deixar o campo em branco |
| Exige | Nenhuma exigência adicional |
| Restrição | O comportamento de impressão muda conforme a tela |
Simulação passo a passo
- Acesse MEQ001 → Parâmetros de Estoque.
- Navegue até a aba Layouts.
- Certifique-se de que o campo Layouts (
edtCD_LAYORDEM) está vazio. - Salve o registro.
- Acesse uma das telas de consulta de produção (ex: MEQ019 ou MEQ021).
- Observe que o botão Imprimir e o Separador3 ficam ocultos na barra de ferramentas.
- Na tela MEQ020, ao gravar uma ordem de produção, observe que o sistema utiliza o layout de fallback
LET036com parâmetros fixos (item, lote, quantidade produzida, modo'E', tipo'A', usuário da produção). - Nas telas MEQ006, MEQ011 e MEQ012, ao tentar imprimir ou fechar, a impressão é simplesmente ignorada (a condição
Trim(iCD_LAYORDEM) <> ''falha e nenhuma ação ocorre).
Resultado esperado:
- MEQ019 / MEQ021: Botão Imprimir oculto — o usuário não tem opção de imprimir.
- MEQ020: Impressão ocorre usando layout
LET036como fallback. - MEQ006 / MEQ011 / MEQ012 / MEQ017: Nenhuma impressão é gerada (silenciosamente ignorada).
Exceção / Importante: Na tela MEQ020, mesmo com
CD_LAYORDEMvazio, a impressão ocorre utilizando o layout fixoLET036. Esse é o único cenário onde o sistema faz fallback automático para um layout padrão. Nas demais telas, a ausência do código simplesmente inibe a impressão.
Exceção / Importante: Na tela MEQ012, a impressão automática após o fechamento da ordem (
btnFecharClick/btnFecharLoteClick) depende também do parâmetroST_IMPRIMEFECHAMENTO(configurado em MEQ001 — Parâmetros de Estoque). SeST_IMPRIMEFECHAMENTO <> 'S', a impressão não ocorre mesmo queCD_LAYORDEMesteja preenchido.
Regra geral de funcionamento
-
Configuração única por empresa: O valor de
CD_LAYORDEMé gravado na tabelaPARMESTOQUEvinculado aCD_EMPRESA. Cada empresa possui seu próprio layout configurado. -
Carregamento em tempo de abertura: As telas de produção consultam
PARMESTOQUEao abrir (viaBusca_Parametros) e armazenam o valor em variável local (ex:dmMEQ012.iCD_LAYORDEM). Essa variável é reutilizada em todas as operações de impressão daquela sessão. -
Parâmetros passados ao layout: Quando o layout é carregado via
CarregaLayout(), os seguintes parâmetros são tipicamente enviados:[0]— Código do layout (CD_LAYORDEM)[1]— Código da empresa[2]— Número da ordem de produção[3]— Path da sessão[4]— Modo ('V'= visualização)[5]— Código do usuário (ou tela de origem, como'MEQ020')
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Comportamento |
|---|---|---|
Busca_Parametros | UdmMEQ006.pas | Lê CD_LAYORDEM de PARMESTOQUE (posição 5 do SELECT) |
Busca_Parametros | UdmMEQ011.pas | Lê CD_LAYORDEM de PARMESTOQUE (posição 5 do SELECT) |
Busca_Parametros | UdmMEQ012.pas | Lê CD_LAYORDEM de PARMESTOQUE (posição 5 do SELECT) |
Busca_Parametros | UdmMEQ017.pas | Lê CD_LAYORDEM de PARMESTOQUE |
Busca_Parametros | UdmMEQ019.pas | Lê CD_LAYORDEM de PARMESTOQUE; oculta btnImprimir/Separador3 se vazio |
Busca_Parametros | UdmMEQ020.pas | Lê CD_LAYORDEM de PARMESTOQUE |
Busca_Parametros | UdmMEQ021.pas | Lê CD_LAYORDEM de PARMESTOQUE; oculta btnImprimir/Separador3 se vazio |
Busca_Parametros | UdmMEQ022.pas | Lê CD_LAYORDEM de PARMESTOQUE |
Busca_Parametros | UdmMEQ023.pas | Lê CD_LAYORDEM de PARMESTOQUE |
Busca_Parametros | UdmMEQ024.pas | Lê CD_LAYORDEM de PARMESTOQUE |
Busca_Parametros | UdmMEQ025.pas | Lê CD_LAYORDEM de PARMESTOQUE |
TfrmMEQ006.btnSalvarClick | UMEQ006.pas | Imprime ordem se CD_LAYORDEM <> '' e NR_ORDEMPRODUCAO <> '' |
TfrmMEQ011.btnSalvarClick | UMEQ011.pas | Imprime ordem se CD_LAYORDEM <> '' e NR_ORDEMPRODUCAO <> '' |
TfrmMEQ012.btnImprimirClick | UMEQ012.pas | Imprime ordem se CD_LAYORDEM <> '' e NR_ORDEMPRODUCAO <> '' |
TfrmMEQ012.btnFecharClick | UMEQ012.pas | Imprime ao fechar se CD_LAYORDEM <> '' e NR_ORDEMPRODUCAO <> '' |
TfrmMEQ012.btnFecharLoteClick | UMEQ012.pas | Imprime ao fechar lote se CD_LAYORDEM <> '' e NR_ORDEMPRODUCAO <> '' |
TfrmMEQ017.btnImprimirClick | UMEQ017.pas | Imprime ordem se CD_LAYORDEM <> '' |
Imprime_Ordem | UdmMEQ019.pas | Carrega layout de CD_LAYORDEM e chama CarregaLayout() |
TfrmMEQ020.btnSalvarClick | UMEQ020.pas | Imprime com CD_LAYORDEM se preenchido; fallback LET036 se vazio |
TfrmMEQ020.btnAtualizarClick | UMEQ020.pas | Imprime com CD_LAYORDEM se preenchido |
Imprime_Ordem | UdmMEQ021.pas | Carrega layout de CD_LAYORDEM e chama CarregaLayout() |
TfrmCEQ002.btnImprimirClick | UCEQ002.pas | Consulta CD_LAYORDEM de PARMESTOQUE |
Referências SQL diretas ao campo
Nenhuma procedure SQL em Scripts/ referencia diretamente a coluna CD_LAYORDEM de PARMESTOQUE. As referências existem apenas no nível Delphi (consultas dinâmicas construídas em Pascal).
Candidatas por uso da tabela
As procedures/views SQL em Scripts/ listadas abaixo utilizam a tabela PARMESTOQUE mas não citam o campo CD_LAYORDEM diretamente. Não há impacto funcional direto identificado para este campo em procedures SQL:
AJUSTA_ORDEMPRODPEDANTECIPADO, ALTERACAO_BANDA, ATUALIZA_CONSUMOMEDIO, ATUALIZA_ESTOQUEDIAPESSOA, CALCULA_FORMACAOPRECOVENDA, CANCELA_ESTOQUE, CONFIRMA_ORDEMSERVICO, CONFIRMA_ORDEMSERVICOMETAL, GERA_ESTOQUE, GERA_ESTOQUE_NOTAFISCAL, GERA_ESTOQUEPSALT, GERA_NOTAFISCALESTOQUE, GERA_ORDEMPRODUCAO, GERA_PRODENVELOPAMENTO, GERA_PRODLOTEPRODUCAO, GERA_PRODMONTAGEMRECAP, GERA_PRODVULCANIZACAO, GERA_SPEDBLOCOL, GERA_SPEDECFBLOCOL, GRAVA_AVISOS.