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 paraIMPRESSORA.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 faz | Detalhe |
|---|---|
| Armazena codigo da impressora | Vincula o usuario a uma impressora especifica para etiquetas |
Editavel via <F9> | Abre pesquisa na tabela IMPRESSORA para selecao |
| Validado ao salvar | Verifica se o codigo informado existe em IMPRESSORA |
| Campo editavel | Sim — 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
| Campo | Tabela | Tipo | Vinculo |
|---|---|---|---|
CD_IMPETIQUETA | PARMUSUARIO | INTEGER | FK nao-declarada para IMPRESSORA.CD_IMPRESSORA |
DS_IMPETIQUETA | Campo derivado | VARCHAR(60) | Nome da impressora (via JOIN com IMPRESSORA) |
CD_IMPRESSORA | IMPRESSORA | INTEGER | PK da tabela de impressoras |
Comportamento na tela ADM012
Selecao via <F9>
Simulacao passo a passo
- Acesse ADM012 — Parametros do Usuario.
- Selecione o usuario desejado.
- Na aba Impressoras do Usuario, localize o campo "Cod Imp Etiqueta".
- Pressione
<F9>sobre o campo. - Na janela de pesquisa, selecione a impressora desejada na lista (colunas: Nome, Codigo).
- O nome da impressora e preenchido automaticamente ao lado do codigo.
- 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
- Acesse ADM012 — Parametros do Usuario.
- Na aba Impressoras do Usuario, digite o codigo da impressora diretamente no campo "Cod Imp Etiqueta".
- Pressione
Tabou clique em outro campo para validar. - Se o codigo existir em
IMPRESSORA, o nome e preenchido automaticamente. - 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 faz | Detalhe |
|---|---|
| Sem vinculo especifico | Usuario usa impressora padrao do Windows |
| Campo editavel | Sim — pode ser preenchido a qualquer momento |
| Exige | Nenhuma — campo opcional |
Simulacao passo a passo
- Acesse ADM012 — Parametros do Usuario.
- Na aba Impressoras do Usuario, deixe o campo "Cod Imp Etiqueta" vazio.
- 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
| Rotina | Arquivo | Linha | Responsabilidade |
|---|---|---|---|
edtCD_IMPETIQUETAKeyDown | source/ADM012/UADM012.pas | 709 | Lookup <F9> na tabela IMPRESSORA |
tabPARMUSUARIOCD_IMPETIQUETAValidate | source/ADM012/UdmADM012.pas | 415 | Validacao do codigo informado |
btnDuplicaUsuarioClick (ADM013) | source/ADM013/UADM013.pas | 471 | Copia parametro ao duplicar usuario |
Scripts SQL com referencia direta ao campo
| Procedure | Arquivo | Uso |
|---|---|---|
RETORNA_IMPRESSORAUSUARIO | Scripts/RETORNA_IMPRESSORAUSUARIO.sql | JOIN + 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/View | Arquivo | Evidencia |
|---|---|---|
GERA_ETIQUETABALANCA | Scripts/GERA_ETIQUETABALANCA.sql | FROM PARMUSUARIO PU — alta probabilidade de uso por tratar de etiquetas |
CANCELA_NOTAFISCAL | Scripts/CANCELA_NOTAFISCAL.sql | FROM PARMUSUARIO P |
CONTROLE_CAIXA | Scripts/CONTROLE_CAIXA.sql | from PARMUSUARIO |
PERMISSAO_CAIXA | Scripts/PERMISSAO_CAIXA.sql | from PARMUSUARIO |
VALIDA_LIBERACAOUSUARIO | Scripts/VALIDA_LIBERACAOUSUARIO.sql | FROM PARMUSUARIO PU |
VERIFICA_BLOQUEIO | Scripts/VERIFICA_BLOQUEIO.sql | FROM PARMUSUARIO P |
VIEW_DOCUMENTOSBLOQUEADOS | Scripts/VIEW_DOCUMENTOSBLOQUEADOS.sql | FROM PARMUSUARIO PU |
Tabela comparativa resumida
| Aspecto | Detalhe |
|---|---|
| Tipo de dado | INTEGER |
| Tabela | PARMUSUARIO |
| FK declarada | Nao — referencia implicita a IMPRESSORA.CD_IMPRESSORA |
| Obrigatoriedade | Nao — campo opcional |
| Lookup | <F9> sobre IMPRESSORA |
| Validacao | OnValidate com query em IMPRESSORA |
| Duplicavel | Sim — via ADM013 |
| Consumidor principal | RETORNA_IMPRESSORAUSUARIO (I_TP_IMPRESSORA = 'E') |
| Mensagem de erro | "A Impressora nao esta Cadastrada [ADM008]!" |
| Telas relacionadas | ADM012 (configuracao), ADM013 (duplicacao), ADM008 (cadastro de impressoras) |