Á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"
 

UserFunctionCBRETEAN()

Local cId := AllTrim


    LocalcId   := Padr(PARAMIXB[1]

) // CÓDIGO DO PRODUTO (

,TAMSX3("B1_CODBAR

) 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)

")[1])  // CÓD. PRODUTO
    LocalaRet  := {}                                              // DADOS DA ETIQUETA
    LocalaAreaSB1 := {}                                      // ESTADO DOS ARQUIVOS DE TRABALHO
    LocalaAreaSB8 := {}                                      //  
    LocalcPrd  := ''                                              // CÓDIGO DO PRODUTO (B1_COD)
    LocalnQE   := 1
 
    // ARMAZENA A ÁREA CORRENTE
    aAreaSb1:= SB1->(GetArea())
    aAreaSB8:= SB8->(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

>B8_LOTECTL)


 
    //

ARET[4]

DATA

DE

VALIDADE

VALIDADE
    AAdd(aRet,

SB8-

>B8

>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

",

TamSX3("BE_LOCALIZ")[1]))

RestArea(aArea[1])



    // DEVOLVE AS AREAS
    RestArea(aAreaSB8)
    RestArea(aAreaSB1)

   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