Pular para o conteúdo principal

CD_LAYLOTEPROD — Layout de Lote de Produção

Tela de configuração: MEQ001 — Parâmetros de Estoque Localização: Aba Layouts → campo "Layout Lote de Produção" Tabela: PARMESTOQUE.CD_LAYLOTEPROD Tipo: DOM_VARCHAR6 (até 6 caracteres, maiúsculas) Valor padrão: LOT001 Componente: TDBEdit — campo editável, ligado a dmMEQ001.dsPARMESTOQUE


Comportamento Geral​

O parâmetro CD_LAYLOTEPROD define qual layout (template) de impressão será utilizado ao gerar o relatório de Lote de Produção. Ele é lido por diversas telas de produção no momento da impressão. O valor é armazenado por empresa na tabela PARMESTOQUE.

Quando o campo estiver vazio no banco, o sistema utiliza o fallback LOTEPRODUCAO como layout padrão.


Telas Impactadas​

TelaFunção que consomeComportamento
MEQ043ImprimeLoteProducaoLê o layout; se LOT001 ou LOT002, chama CarregaLayout; senão, gera relatório via SQL direto com GeraRelatorio
MEQ044ImprimeLoteProducaoLê o layout; se LOT001, chama CarregaLayout; senão, gera relatório via SQL direto
MEQ053ImprimeLoteProducaoLê o layout e delega para CarregaLayout independentemente do valor
CEQ012ImprimeLoteProducaoLê o layout e delega para CarregaLayout independentemente do valor

Layouts Conhecidos no Código​

Código do LayoutDescriçãoOnde é tratado
LOT001Layout padrão de lote de produçãoMEQ043, MEQ044 (chamada via CarregaLayout)
LOT002Layout alternativo de lote de produçãoMEQ043 (chamada via CarregaLayout)
LOTEPRODUCAOFallback quando o campo está vazioCEQ012, MEQ043, MEQ044, MEQ053

Exceção / Importante: Quando o valor gravado difere de LOT001 e LOT002, as telas MEQ043 e MEQ044 executam uma consulta SQL direta (com joins em LOTEPRODUCAO, LOTEPRODUCAOMP, ITEM, USUARIO, PESSOA e PARMFATUR) e passam o resultado para GeraRelatorio usando o próprio código como nome de layout. Já MEQ053 e CEQ012 sempre delegam para CarregaLayout independentemente do código.


Opções Disponíveis​

LOT001 — Layout Padrão de Lote de Produção​

O que fazDetalhe
Editável?Sim — digite livremente no campo
Valor padrãoLOT001
RestriçãoNenhuma validação formal; aceita qualquer string de até 6 caracteres

Simulação passo a passo​

  1. Acesse MEQ001 (Parâmetros de Estoque).
  2. Navegue até a aba Layouts.
  3. No campo Layout Lote de Produção, certifique-se de que o valor é LOT001 (ou deixe em branco para que o sistema assuma o padrão).
  4. Salve o registro.
  5. Em qualquer tela de produção (MEQ043, MEQ044, MEQ053), acione a impressão de um lote de produção.
  6. O sistema carrega o layout LOT001 via CarregaLayout e exibe o relatório formatado.

Resultado esperado: O relatório de lote de produção é impresso utilizando o template LOT001.


LOT002 — Layout Alternativo de Lote de Produção​

O que fazDetalhe
Editável?Sim — substitua o valor no campo
RestriçãoFunciona com CarregaLayout apenas em MEQ043

Simulação passo a passo​

  1. Acesse MEQ001 (Parâmetros de Estoque).
  2. Navegue até a aba Layouts.
  3. No campo Layout Lote de Produção, digite LOT002.
  4. Salve o registro.
  5. Em MEQ043, acione a impressão de um lote de produção.
  6. O sistema identifica o código LOT002 e carrega o layout alternativo via CarregaLayout.

Resultado esperado: O relatório de lote de produção é impresso utilizando o template alternativo LOT002.

Exceção / Importante: Na tela MEQ044, o código LOT002 não é reconhecido como caso especial — ele cairá no ramo else, que executa uma consulta SQL direta e gera o relatório via GeraRelatorio. Em MEQ053 e CEQ012, todos os valores são tratados igualmente via CarregaLayout.


Outro código (personalizado) — Layout via SQL Direto​

O que fazDetalhe
Editável?Sim — qualquer código de até 6 caracteres
RestriçãoEm MEQ043/MEQ044, o relatório é gerado com consulta SQL fixa, não por template

Simulação passo a passo​

  1. Acesse MEQ001 (Parâmetros de Estoque).
  2. Navegue até a aba Layouts.
  3. No campo Layout Lote de Produção, digite um código diferente de LOT001 e LOT002 (por exemplo, LOT003).
  4. Salve o retorno.
  5. Em MEQ043 ou MEQ044, acione a impressão de um lote de produção.
  6. O sistema não encontra o código nos casos especiais e executa uma consulta SQL direta com os dados do lote, passando o código informado como nome do layout para GeraRelatorio.

Resultado esperado: O relatório é gerado a partir da consulta SQL embutida no código, usando o valor do campo como identificador do layout. Se o layout não existir no gerador de relatórios, poderá ocorrer erro ou impressão em formato padrão.

Exceção / Importante: Em MEQ053 e CEQ012, o código é sempre delegado para CarregaLayout, sem distinção. Se o layout não existir na configuração de layouts do sistema, o comportamento depende da implementação de CarregaLayout.


Campo em branco — Fallback LOTEPRODUCAO​

O que fazDetalhe
Editável?Sim — o campo aceita valor vazio
FallbackO sistema assume o código LOTEPRODUCAO

Simulação passo a passo​

  1. Acesse MEQ001 (Parâmetros de Estoque).
  2. Navegue até a aba Layouts.
  3. Limpe o campo Layout Lote de Produção (deixe vazio).
  4. Salve o registro.
  5. Em qualquer tela de produção, acione a impressão de um lote.
  6. O sistema consulta o campo no banco, recebe string vazia, e substitui por LOTEPRODUCAO.

Resultado esperado: O relatório é gerado utilizando o layout LOTEPRODUCAO como fallback.

Exceção / Importante: O fallback LOTEPRODUCAO é aplicado em todas as quatro telas consumidoras (CEQ012, MEQ043, MEQ044, MEQ053).


Resumo Comparativo​

CódigoMEQ043MEQ044MEQ053CEQ012
LOT001CarregaLayoutCarregaLayoutCarregaLayoutCarregaLayout
LOT002CarregaLayoutSQL direto + GeraRelatorioCarregaLayoutCarregaLayout
Outro códigoSQL direto + GeraRelatorioSQL direto + GeraRelatorioCarregaLayoutCarregaLayout
Vazio (fallback)CarregaLayout(LOTEPRODUCAO)CarregaLayout(LOTEPRODUCAO)CarregaLayout(LOTEPRODUCAO)CarregaLayout(LOTEPRODUCAO)

Procedures Impactadas​

Rotinas Delphi com referência direta ao campo​

RotinaArquivoLinhaContexto
ImprimeLoteProducaoUCEQ012.pas (CEQ012)755SELECT P.CD_LAYLOTEPROD FROM PARMESTOQUE P WHERE P.CD_EMPRESA = :cdEmpresa
ImprimeLoteProducaoUMEQ043.pas (MEQ043)733SELECT P.CD_LAYLOTEPROD FROM PARMESTOQUE P WHERE P.CD_EMPRESA = :cd_empresa
ImprimeLoteProducaoUMEQ044.pas (MEQ044)203SELECT P.CD_LAYLOTEPROD FROM PARMESTOQUE P WHERE P.CD_EMPRESA = :cdEmpresa
ImprimeLoteProducaoUMEQ053.pas (MEQ053)227SELECT P.CD_LAYLOTEPROD FROM PARMESTOQUE P WHERE P.CD_EMPRESA = :cdempresa
PaginasChangeUMEQ001.pas (MEQ001)897edtCD_LAYLOTEPROD.SetFocus (foco ao acessar aba Layouts)

Referências SQL diretas ao campo em Scripts/​

Nenhuma referência direta ao campo CD_LAYLOTEPROD foi encontrada em procedures SQL sob Scripts/.

Candidatas por uso da tabela (sem referência direta ao campo)​

Diversas procedures em Scripts/ fazem SELECT/JOIN na tabela PARMESTOQUE sem citar o campo CD_LAYLOTEPROD explicitamente. Não há impacto funcional direto identificado nessas rotinas para este parâmetro.