Pular para o conteúdo principal

CD_IMPPEDIDO - Impressora de Pedido

Tela de configuração: ADM012 — Parâmetros do Usuário Aba: Impressoras do Usuário Tabela: PARMUSUARIO.CD_IMPPEDIDO Tipo: INTEGER Componente: edtCD_IMPPEDIDO (TDBEdit) FK: Nenhuma constraint FK declarada no schema (diferente de CD_IMPNOTA, CD_IMPCHEQUE, CD_IMPRECIBO, CD_IMPDUPLICATA que possuem FK para IMPRESSORA).

Visao geral​

Este campo armazena o código da impressora que será utilizada como padrão para a impressão de pedidos (LPD111), ordens de produção recap (LPP100) e romaneios (LRE000) pelo usuário logado. Quando configurado, os layouts consultam este parâmetro para determinar a porta/destino de impressão automaticamente, sem perguntar ao operador.

A validação garante que o código informado exista na tabela IMPRESSORA, exibindo a mensagem: "A Impressora não está Cadastrada [ADM008]!" caso o código não seja encontrado.

Como configurar​

O que fazDetalhe
Informar código da impressoraDigite o CD_IMPRESSORA desejado ou pressione <F9> para pesquisar.
Pesquisar impressoraCom o cursor no campo, pressione <F9> — abre pesquisa na tabela IMPRESSORA listando Nome e Código.
Validar códigoAo salvar, o sistema valida se o código existe em IMPRESSORA. Se não existir, exibe erro e impede a gravação.
Deixar em brancoSe não informada, não há impressora padrão de pedido para o usuário. Os layouts podem solicitar destino manualmente.

Simulacao passo a passo​

  1. Acesse ADM012 — Parâmetros do Usuário.
  2. Na aba "Impressoras do Usuário", localize o campo "Impressoras do Usuário" (campo referente a pedidos).
  3. Pressione <F9> no campo ou digite diretamente o código da impressora (ex: 5).
  4. Se pressionou <F9>, selecione a impressora desejada na lista — a coluna "Nome" ajuda a identificar.
  5. O campo de descrição ao lado preenche automaticamente (ex: "EPSON Ponto de Venda").
  6. Pressione <Ctrl+S> ou clique em Salvar.

Resultado esperado: O código da impressora é gravado em PARMUSUARIO.CD_IMPPEDIDO para o par CD_EMPRESA / CD_USUARIO. Ao imprimir pedidos (LPD111), o sistema direciona para a impressora configurada.

Excecao / Importante: Diferente de outros campos de impressora na mesma tabela (CD_IMPNOTA, CD_IMPCHEQUE, etc.), não há constraint FK declarada no DDL para CD_IMPPEDIDO. A integridade é garantida pela validação Delphi (tabPARMUSUARIOCD_IMPPEDIDOValidate) antes de gravar.

Duplicação de usuário: Na tela ADM013, ao duplicar um usuário com o botão "Duplicar Usuário", o valor de CD_IMPPEDIDO é copiado para o novo registro (OR INSERT INTO PARMUSUARIO).

Telas impactadas​

TelaDescriçãoRelação
ADM012Parâmetros do UsuárioTela de configuração
ADM013Cadastro de UsuáriosDuplica o parâmetro ao copiar usuário
MFA019 / LPD111Layout de PedidoUsa CD_IMPPEDIDO para definir impressora de saída
MFA020 / LPP100Layout de Ordem de Produção RecapUsa CD_IMPPEDIDO para definir impressora de saída
MFA021 / LRE000Layout de RomaneioUsa CD_IMPPEDIDO para definir impressora de saída

Campos envolvidos​

CampoTabelaTipoUso
CD_IMPPEDIDOPARMUSUARIOINTEGERCódigo da impressora de pedido
DS_IMPPEDIDOPARMUSUARIO(calculado)Nome da impressora (join com IMPRESSORA)
CD_IMPRESSORAIMPRESSORAINTEGERChave primária referenciada
DS_IMPRESSORAIMPRESSORAVARCHARNome/descrição da impressora

Procedures impactadas​

Rotinas Delphi com referencia direta ao campo​

RotinaArquivoUso
edtCD_IMPPEDIDOKeyDownsource/ADM012/UADM012.pas:731Pesquisa de impressora via <F9>
tabPARMUSUARIOCD_IMPPEDIDOValidatesource/ADM012/UdmADM012.pas:433Valida existência do código em IMPRESSORA
TfrmADM013.btnDuplicaUsuarioClicksource/ADM013/UADM013.pas:472Copia campo ao duplicar usuário
Conecta_Impressorasource/LPD111/ULPD111.pas:174Consulta impressora de pedido no layout LPD111
Conecta_Impressorasource/LPP100/ULPP100.pas:106Consulta impressora de pedido no layout LPP100
Conecta_Impressorasource/LRE000/ULRE000.pas:144Consulta impressora de pedido no layout LRE000

Scripts SQL com referencia direta ao campo​

Procedure/ViewArquivoUso
RETORNA_IMPRESSORAUSUARIOScripts/RETORNA_IMPRESSORAUSUARIO.sqlRetorna a impressora de pedido (I_TP_IMPRESSORA = 'D') via JOIN com PARMUSUARIO

Candidatas por uso da tabela PARMUSUARIO​

As rotinas abaixo utilizam a tabela PARMUSUARIO mas não foram encontradas referências diretas ao campo CD_IMPPEDIDO:

CANCELA_NOTAFISCAL, CONTROLE_CAIXA, GERA_ETIQUETABALANCA, PERMISSAO_CAIXA, TRGPARMFATUR_BU, VALIDA_BLOQDESCMAXSUBGRUPO, VALIDA_CODIGOBARRA, VALIDA_LIBERACAOUSUARIO, VALIDA_MODELOBLOQUEIODIASATRASO, VALIDA_MODELOBLOQUEIOPCDESCMAX, VALIDA_MODELOBLOQUEIOVLLIMITE, VERIFICA_BLOQUEIO, VIEW_DOCUMENTOSBLOQUEADOS.

SQL de consulta nos layouts​

Os layouts de pedido, produto (ordem produção recap) e romaneio utilizam a mesma query para conectar à impressora:

SELECT I.DS_PORTADOS, I.CD_IMPRESSORA
FROM PARMUSUARIO U
INNER JOIN IMPRESSORA I ON (I.CD_IMPRESSORA = U.CD_IMPPEDIDO)
WHERE CD_EMPRESA = {empresa}
AND CD_USUARIO = {usuario}

Se o CD_IMPPEDIDO não estiver configurado (NULL), o INNER JOIN não retorna registros e o layout pode solicitar a impressora manualmente ao operador.

Procedura de retorno ao FastReport​

Na procedure RETORNA_IMPRESSORAUSUARIO, o campo é retornado quando o parâmetro I_TP_IMPRESSORA = 'D':

-- Tipo 'D' = Documento Pedido
if ( I_TP_IMPRESSORA = 'D' ) then begin
O_DS_IMPRESSORA = V_NM_IMPPEDIDO;
O_CD_IMPRESSORA = V_CD_IMPPEDIDO;
end