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_LAYLOTEPRODTipo:DOM_VARCHAR6(até 6 caracteres, maiúsculas) Valor padrão:LOT001Componente:TDBEdit— campo editável, ligado admMEQ001.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
| Tela | Função que consome | Comportamento |
|---|---|---|
| MEQ043 | ImprimeLoteProducao | Lê o layout; se LOT001 ou LOT002, chama CarregaLayout; senão, gera relatório via SQL direto com GeraRelatorio |
| MEQ044 | ImprimeLoteProducao | Lê o layout; se LOT001, chama CarregaLayout; senão, gera relatório via SQL direto |
| MEQ053 | ImprimeLoteProducao | Lê o layout e delega para CarregaLayout independentemente do valor |
| CEQ012 | ImprimeLoteProducao | Lê o layout e delega para CarregaLayout independentemente do valor |
Layouts Conhecidos no Código
| Código do Layout | Descrição | Onde é tratado |
|---|---|---|
LOT001 | Layout padrão de lote de produção | MEQ043, MEQ044 (chamada via CarregaLayout) |
LOT002 | Layout alternativo de lote de produção | MEQ043 (chamada via CarregaLayout) |
LOTEPRODUCAO | Fallback quando o campo está vazio | CEQ012, MEQ043, MEQ044, MEQ053 |
Exceção / Importante: Quando o valor gravado difere de
LOT001eLOT002, as telas MEQ043 e MEQ044 executam uma consulta SQL direta (com joins emLOTEPRODUCAO,LOTEPRODUCAOMP,ITEM,USUARIO,PESSOAePARMFATUR) e passam o resultado paraGeraRelatoriousando o próprio código como nome de layout. Já MEQ053 e CEQ012 sempre delegam paraCarregaLayoutindependentemente do código.
Opções Disponíveis
LOT001 — Layout Padrão de Lote de Produção
| O que faz | Detalhe |
|---|---|
| Editável? | Sim — digite livremente no campo |
| Valor padrão | LOT001 |
| Restrição | Nenhuma validação formal; aceita qualquer string de até 6 caracteres |
Simulação passo a passo
- Acesse MEQ001 (Parâmetros de Estoque).
- Navegue até a aba Layouts.
- 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). - Salve o registro.
- Em qualquer tela de produção (MEQ043, MEQ044, MEQ053), acione a impressão de um lote de produção.
- O sistema carrega o layout
LOT001viaCarregaLayoute 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 faz | Detalhe |
|---|---|
| Editável? | Sim — substitua o valor no campo |
| Restrição | Funciona com CarregaLayout apenas em MEQ043 |
Simulação passo a passo
- Acesse MEQ001 (Parâmetros de Estoque).
- Navegue até a aba Layouts.
- No campo Layout Lote de Produção, digite
LOT002. - Salve o registro.
- Em MEQ043, acione a impressão de um lote de produção.
- O sistema identifica o código
LOT002e carrega o layout alternativo viaCarregaLayout.
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
LOT002não é reconhecido como caso especial — ele cairá no ramoelse, que executa uma consulta SQL direta e gera o relatório viaGeraRelatorio. Em MEQ053 e CEQ012, todos os valores são tratados igualmente viaCarregaLayout.
Outro código (personalizado) — Layout via SQL Direto
| O que faz | Detalhe |
|---|---|
| Editável? | Sim — qualquer código de até 6 caracteres |
| Restrição | Em MEQ043/MEQ044, o relatório é gerado com consulta SQL fixa, não por template |
Simulação passo a passo
- Acesse MEQ001 (Parâmetros de Estoque).
- Navegue até a aba Layouts.
- No campo Layout Lote de Produção, digite um código diferente de
LOT001eLOT002(por exemplo,LOT003). - Salve o retorno.
- Em MEQ043 ou MEQ044, acione a impressão de um lote de produção.
- 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 deCarregaLayout.
Campo em branco — Fallback LOTEPRODUCAO
| O que faz | Detalhe |
|---|---|
| Editável? | Sim — o campo aceita valor vazio |
| Fallback | O sistema assume o código LOTEPRODUCAO |
Simulação passo a passo
- Acesse MEQ001 (Parâmetros de Estoque).
- Navegue até a aba Layouts.
- Limpe o campo Layout Lote de Produção (deixe vazio).
- Salve o registro.
- Em qualquer tela de produção, acione a impressão de um lote.
- 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ódigo | MEQ043 | MEQ044 | MEQ053 | CEQ012 |
|---|---|---|---|---|
LOT001 | CarregaLayout | CarregaLayout | CarregaLayout | CarregaLayout |
LOT002 | CarregaLayout | SQL direto + GeraRelatorio | CarregaLayout | CarregaLayout |
| Outro código | SQL direto + GeraRelatorio | SQL direto + GeraRelatorio | CarregaLayout | CarregaLayout |
| Vazio (fallback) | CarregaLayout(LOTEPRODUCAO) | CarregaLayout(LOTEPRODUCAO) | CarregaLayout(LOTEPRODUCAO) | CarregaLayout(LOTEPRODUCAO) |
Procedures Impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Linha | Contexto |
|---|---|---|---|
ImprimeLoteProducao | UCEQ012.pas (CEQ012) | 755 | SELECT P.CD_LAYLOTEPROD FROM PARMESTOQUE P WHERE P.CD_EMPRESA = :cdEmpresa |
ImprimeLoteProducao | UMEQ043.pas (MEQ043) | 733 | SELECT P.CD_LAYLOTEPROD FROM PARMESTOQUE P WHERE P.CD_EMPRESA = :cd_empresa |
ImprimeLoteProducao | UMEQ044.pas (MEQ044) | 203 | SELECT P.CD_LAYLOTEPROD FROM PARMESTOQUE P WHERE P.CD_EMPRESA = :cdEmpresa |
ImprimeLoteProducao | UMEQ053.pas (MEQ053) | 227 | SELECT P.CD_LAYLOTEPROD FROM PARMESTOQUE P WHERE P.CD_EMPRESA = :cdempresa |
PaginasChange | UMEQ001.pas (MEQ001) | 897 | edtCD_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.