Pular para o conteúdo principal

CD_IMPETIQUETA — Impressora de Etiqueta do Usuário

Tela de configuração: ADM012 — Parametros do Usuario
Aba: Impressoras do Usuario
Tabela: PARMUSUARIO.CD_IMPETIQUETA
Tipo: INTEGER (FK para IMPRESSORA.CD_IMPRESSORA)
Valor padrão: vazio (NULL) — nenhuma impressora definida
Componente: edtCD_IMPETIQUETA (TDBEdit)

O que faz​

Armazena o codigo da impressora que sera usada automaticamente para impressao de etiquetas (balanca, codigos de barra, identificacao de produtos) para o usuario logado.

Quando configurado, o sistema redireciona a saida de impressao de etiquetas para esta impressora, independentemente da impressora padrao do Windows.

O que fazDetalhe
Armazena codigo da impressoraVincula o usuario a uma impressora especifica para etiquetas
Editavel via <F9>Abre pesquisa na tabela IMPRESSORA para selecao
Validado ao salvarVerifica se o codigo informado existe em IMPRESSORA
Campo editavelSim — campo livre com lookup

Telas impactadas​

  • ADM012 — Parametros do Usuario (tela de configuracao)
  • ADM013 — Duplicacao de Usuario (replica o parametro ao copiar configuracoes)
  • Telas de impressao de etiquetas (via procedure RETORNA_IMPRESSORAUSUARIO)

Campos envolvidos​

CampoTabelaTipoVinculo
CD_IMPETIQUETAPARMUSUARIOINTEGERFK nao-declarada para IMPRESSORA.CD_IMPRESSORA
DS_IMPETIQUETACampo derivadoVARCHAR(60)Nome da impressora (via JOIN com IMPRESSORA)
CD_IMPRESSORAIMPRESSORAINTEGERPK da tabela de impressoras

Comportamento na tela ADM012​

Selecao via <F9>​

Simulacao passo a passo

  1. Acesse ADM012 — Parametros do Usuario.
  2. Selecione o usuario desejado.
  3. Na aba Impressoras do Usuario, localize o campo "Cod Imp Etiqueta".
  4. Pressione <F9> sobre o campo.
  5. Na janela de pesquisa, selecione a impressora desejada na lista (colunas: Nome, Codigo).
  6. O nome da impressora e preenchido automaticamente ao lado do codigo.
  7. Salve o registro.

Resultado esperado: O codigo da impressora selecionada e gravado em PARMUSUARIO.CD_IMPETIQUETA e o nome descritivo e exibido no campo auxiliar DS_IMPETIQUETA.

Digitacao manual​

Simulacao passo a passo

  1. Acesse ADM012 — Parametros do Usuario.
  2. Na aba Impressoras do Usuario, digite o codigo da impressora diretamente no campo "Cod Imp Etiqueta".
  3. Pressione Tab ou clique em outro campo para validar.
  4. Se o codigo existir em IMPRESSORA, o nome e preenchido automaticamente.
  5. Salve o registro.

Resultado esperado: O sistema valida o codigo digitado contra a tabela IMPRESSORA. Se valido, o nome da impressora e exibido no campo descritivo.

Excecao / Importante: Se o codigo digitado nao existir na tabela IMPRESSORA, o sistema exibe a mensagem: "A Impressora nao esta Cadastrada [ADM008]!" e bloqueia o salvamento. Neste caso, cadastre a impressora em ADM008 — Cadastro de Impressoras antes de vincular ao usuario.

Opcao: sem impressora definida (campo vazio)​

O que fazDetalhe
Sem vinculo especificoUsuario usa impressora padrao do Windows
Campo editavelSim — pode ser preenchido a qualquer momento
ExigeNenhuma — campo opcional

Simulacao passo a passo

  1. Acesse ADM012 — Parametros do Usuario.
  2. Na aba Impressoras do Usuario, deixe o campo "Cod Imp Etiqueta" vazio.
  3. Salve o registro.

Resultado esperado: Quando o sistema solicitar impressao de etiquetas para este usuario, nao havera impressora especifica redirecionada — o comportamento sera definido pela logica da aplicacao (possivelmente a impressora padrao do Windows ou a configuracao de outro parametro).

Uso em codigo​

Procedure RETORNA_IMPRESSORAUSUARIO​

Esta procedure retorna a impressora configurada para cada finalidade, baseada no tipo informado via I_TP_IMPRESSORA:

-- Para etiquetas, use I_TP_IMPRESSORA = 'E'
SELECT O_CD_IMPRESSORA, O_DS_IMPRESSORA
FROM RETORNA_IMPRESSORAUSUARIO(
:CD_EMPRESA,
:CD_USUARIO,
'E', -- Tipo: Etiqueta
'W' -- Porta: Win (ou 'D' para DOS)
);

Internamente, a procedure faz um LEFT JOIN com IMPRESSORA usando CD_IMPETIQUETA (linha 46 do script). Quando I_TP_IMPRESSORA = 'E', os campos V_NM_IMPETIQUETA e V_CD_IMPETIQUETA sao retornados ao chamador (linhas 94-97).

Validacao no data module dmADM012​

O evento OnValidate do campo tabPARMUSUARIOCD_IMPETIQUETA executa:

if ( Trim(tabPARMUSUARIOCD_IMPETIQUETA.AsString) <> '' ) then begin
Consulta := 'SELECT DS_IMPRESSORA FROM IMPRESSORA ' +
'WHERE CD_IMPRESSORA = ' + tabPARMUSUARIOCD_IMPETIQUETA.AsString;
Resultado := ExecutaConsulta(dmADM012.transaction, Consulta);
if ( Resultado[0] <> '' ) then
tabPARMUSUARIODS_IMPETIQUETA.AsString := Resultado[0]
else
Raise JException.Create('E-0000',['A Impressora nao esta Cadastrada [ADM008]!']);
end else
tabPARMUSUARIODS_IMPETIQUETA.AsString := '';

Duplicacao de usuario (ADM013)​

Ao duplicar configuracoes de um usuario para outro na tela ADM013, o parametro CD_IMPETIQUETA e copiado integralmente do usuario origem para o destino, juntamente com os demais parametros de impressora (CD_IMPNOTA, CD_IMPCHEQUE, CD_IMPRECIBO, CD_IMPDUPLICATA, CD_IMPPEDIDO, CD_IMPRECEITA).

Procedures impactadas​

Rotinas Delphi com referencia direta​

RotinaArquivoLinhaResponsabilidade
edtCD_IMPETIQUETAKeyDownsource/ADM012/UADM012.pas709Lookup <F9> na tabela IMPRESSORA
tabPARMUSUARIOCD_IMPETIQUETAValidatesource/ADM012/UdmADM012.pas415Validacao do codigo informado
btnDuplicaUsuarioClick (ADM013)source/ADM013/UADM013.pas471Copia parametro ao duplicar usuario

Scripts SQL com referencia direta ao campo​

ProcedureArquivoUso
RETORNA_IMPRESSORAUSUARIOScripts/RETORNA_IMPRESSORAUSUARIO.sqlJOIN + retorno da impressora de etiqueta (I_TP_IMPRESSORA = 'E')

Candidatas por uso da tabela PARMUSUARIO​

Nao foi encontrada referencia direta ao campo CD_IMPETIQUETA nestes scripts, mas eles utilizam a tabela PARMUSUARIO — validar impacto funcional antes de afirmar dependencia:

Procedure/ViewArquivoEvidencia
GERA_ETIQUETABALANCAScripts/GERA_ETIQUETABALANCA.sqlFROM PARMUSUARIO PU — alta probabilidade de uso por tratar de etiquetas
CANCELA_NOTAFISCALScripts/CANCELA_NOTAFISCAL.sqlFROM PARMUSUARIO P
CONTROLE_CAIXAScripts/CONTROLE_CAIXA.sqlfrom PARMUSUARIO
PERMISSAO_CAIXAScripts/PERMISSAO_CAIXA.sqlfrom PARMUSUARIO
VALIDA_LIBERACAOUSUARIOScripts/VALIDA_LIBERACAOUSUARIO.sqlFROM PARMUSUARIO PU
VERIFICA_BLOQUEIOScripts/VERIFICA_BLOQUEIO.sqlFROM PARMUSUARIO P
VIEW_DOCUMENTOSBLOQUEADOSScripts/VIEW_DOCUMENTOSBLOQUEADOS.sqlFROM PARMUSUARIO PU

Tabela comparativa resumida​

AspectoDetalhe
Tipo de dadoINTEGER
TabelaPARMUSUARIO
FK declaradaNao — referencia implicita a IMPRESSORA.CD_IMPRESSORA
ObrigatoriedadeNao — campo opcional
Lookup<F9> sobre IMPRESSORA
ValidacaoOnValidate com query em IMPRESSORA
DuplicavelSim — via ADM013
Consumidor principalRETORNA_IMPRESSORAUSUARIO (I_TP_IMPRESSORA = 'E')
Mensagem de erro"A Impressora nao esta Cadastrada [ADM008]!"
Telas relacionadasADM012 (configuracao), ADM013 (duplicacao), ADM008 (cadastro de impressoras)