Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

#Include

"TOTVS.

ch" User Function

CH"
 
User Function CBRETEAN()

Local cId := AllTrim(PARAMIXB


    Local cId   := Padr(PARAMIXB[1], TAMSX3("B1_CODBAR")[1])

//

CÓDIGO

DO

PRODUTO

(B1_CODBAR)

Local aRet


    Local aRet  :=

{} // DADOS DA ETIQUETA Local aArea := {} // ESTADO DOS ARQUIVOS DE TRABALHO Local cPrd := SubStr(cId, 1, Len(cId) -1) // CÓDIGO DO PRODUTO (B1_COD) Local nQE := 1 // ARMAZENA A ÁREA CORRENTE AAdd(aArea, GetArea()) // ARET[1] == CÓDIGO DO PRODUTO AAdd(aRet, PadR(cPrd, TamSX3("B8_PRODUTO")[1])) // ARET[2] Calculo de quantidade por embalagem AAdd(aRet, nQE) // ARET[3] LOTE DbSelectArea("SB8") DbSetOrder(1)

{}                                        // DADOS DA ETIQUETA
    Local aArea := {}                                        // ESTADO DOS ARQUIVOS DE TRABALHO
    Local cPrd  := ''                                        // CÓDIGO DO PRODUTO (B1_COD)
    Local nQE   := 1
 
    // ARMAZENA A ÁREA CORRENTE
    AAdd(aArea, GetArea()) 
 

    dbselectarea('SB1')
    dbsetorder(5) // B1_FILIAL+B1_CODBAR
    dbseek(xFilial("SB1")+cId)
    AAdd(aRet, PadR(B1_COD, TamSX3("B1_COD")[1]))
    cPrd := B1_COD
    // ARET[2] Calculo de quantidade por embalagem
    AAdd(aRet, nQE)
 
    // ARET[3] LOTE
    DbSelectArea("SB8")
    DbSetOrder(1)
    DbSeek(FwXFilial("SB8")

+

PadR(cPrd,

TamSX3("B8_LOTECTL")[1]))


    AAdd(aRet,

SB8->B8_LOTECTL)


 
    //

ARET[4]

DATA

DE

VALIDADE

VALIDADE
    AAdd(aRet,

SB8->B8_DTVALID)


    DbCloseArea()

//

RESTAURA

O

ESTADO

FECHADO

DO

ARQUIVO

SB8

SB8
 
    //

ARET[5]

NÚMERO

DE

SÉRIE

SÉRIE
    AAdd(aRet,

PadR("",

TamSX3("BF_NUMSERI")[1]))


 
    //

ARET[6]

ENDEREÇO

DESTINO

DESTINO
    AAdd(aRet,

PadR("

END

ACD001",

TamSX3("BE_LOCALIZ")[1]))


 
    RestArea(aArea[1])

RETURN


 
   RETURN(aRet)




Descrição:Ponto de Entrada utilizado para informar os dados pertinentes a etiquetas, quando utilizadas etiquetas de código natural, dessa forma ele permite a criação da própria composição da quantidade por embalagem e interpretação de leitura do código de barras.
Eventos:

O Ponto de Entrada é chamado no momento da leitura de etiquetas quando não utilizado o parâmetro MV_ACDCB0. 

Programa Fonte:ACDV167.prg
OBSPonto de entrada genérico deve ser avaliado o comportamento em todas as rotinas que utilizam litura de código de barras
Parâmetros:

PARAMIXB[01] - Código da etiqueta lida.

Retorno aRet → Vetor {"Código do Produto","Quantidade(Embalagem normalmente analisado na nQE := SB1->B1_QE no processo padrão)","Lote","Data de Validade","Número de Série","Endereço Destino"}
Exemplo:


V167VLD

o Ponto de entrada somente é acionado nas leituras de etiqueta retornando as informações imputadas caso tenha alguma exceção por rotina limpar o array 

Bloco de código
linenumberstrue