CD_IMPPEDIDO - Impressora de Pedido
Tela de configuração: ADM012 — Parâmetros do Usuário Aba: Impressoras do Usuário Tabela:
PARMUSUARIO.CD_IMPPEDIDOTipo:INTEGERComponente:edtCD_IMPPEDIDO(TDBEdit) FK: Nenhuma constraint FK declarada no schema (diferente deCD_IMPNOTA,CD_IMPCHEQUE,CD_IMPRECIBO,CD_IMPDUPLICATAque possuem FK paraIMPRESSORA).
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 faz | Detalhe |
|---|---|
| Informar código da impressora | Digite o CD_IMPRESSORA desejado ou pressione <F9> para pesquisar. |
| Pesquisar impressora | Com o cursor no campo, pressione <F9> — abre pesquisa na tabela IMPRESSORA listando Nome e Código. |
| Validar código | Ao salvar, o sistema valida se o código existe em IMPRESSORA. Se não existir, exibe erro e impede a gravação. |
| Deixar em branco | Se 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
- Acesse ADM012 — Parâmetros do Usuário.
- Na aba "Impressoras do Usuário", localize o campo "Impressoras do Usuário" (campo referente a pedidos).
- Pressione
<F9>no campo ou digite diretamente o código da impressora (ex:5). - Se pressionou
<F9>, selecione a impressora desejada na lista — a coluna "Nome" ajuda a identificar. - O campo de descrição ao lado preenche automaticamente (ex:
"EPSON Ponto de Venda"). - 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 paraCD_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
| Tela | Descrição | Relação |
|---|---|---|
| ADM012 | Parâmetros do Usuário | Tela de configuração |
| ADM013 | Cadastro de Usuários | Duplica o parâmetro ao copiar usuário |
| MFA019 / LPD111 | Layout de Pedido | Usa CD_IMPPEDIDO para definir impressora de saída |
| MFA020 / LPP100 | Layout de Ordem de Produção Recap | Usa CD_IMPPEDIDO para definir impressora de saída |
| MFA021 / LRE000 | Layout de Romaneio | Usa CD_IMPPEDIDO para definir impressora de saída |
Campos envolvidos
| Campo | Tabela | Tipo | Uso |
|---|---|---|---|
CD_IMPPEDIDO | PARMUSUARIO | INTEGER | Código da impressora de pedido |
DS_IMPPEDIDO | PARMUSUARIO | (calculado) | Nome da impressora (join com IMPRESSORA) |
CD_IMPRESSORA | IMPRESSORA | INTEGER | Chave primária referenciada |
DS_IMPRESSORA | IMPRESSORA | VARCHAR | Nome/descrição da impressora |
Procedures impactadas
Rotinas Delphi com referencia direta ao campo
| Rotina | Arquivo | Uso |
|---|---|---|
edtCD_IMPPEDIDOKeyDown | source/ADM012/UADM012.pas:731 | Pesquisa de impressora via <F9> |
tabPARMUSUARIOCD_IMPPEDIDOValidate | source/ADM012/UdmADM012.pas:433 | Valida existência do código em IMPRESSORA |
TfrmADM013.btnDuplicaUsuarioClick | source/ADM013/UADM013.pas:472 | Copia campo ao duplicar usuário |
Conecta_Impressora | source/LPD111/ULPD111.pas:174 | Consulta impressora de pedido no layout LPD111 |
Conecta_Impressora | source/LPP100/ULPP100.pas:106 | Consulta impressora de pedido no layout LPP100 |
Conecta_Impressora | source/LRE000/ULRE000.pas:144 | Consulta impressora de pedido no layout LRE000 |
Scripts SQL com referencia direta ao campo
| Procedure/View | Arquivo | Uso |
|---|---|---|
RETORNA_IMPRESSORAUSUARIO | Scripts/RETORNA_IMPRESSORAUSUARIO.sql | Retorna 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