Produto: | |
---|---|
Linha de Produto: | |
Segmento: | |
Módulo: | SIGAWMS - Gestão de Armazenagem |
Função: | WMSV030 - Coletor |
País: | Todos Países |
Ticket: | - |
Requisito/Story/Issue (informe o requisito relacionado) : | - |
Este Ponto de Entrada permite complementar a tela que solicita a coleta de produtos no Apanhe ou na Separação via Coletor RF, sendo executado após
apresentar o código do produto e antes da linha que solicita que o usuário confirme o código do produto.
Existem duas formas de implementação:
Localizado na função que solicita a confirmação do produto, após apresentar o código do produto e antes de solicitar a confirmação do código no processo de apanhe/separação (WMSV030).
Nome | Tipo | Descrição |
---|---|---|
nLinha | Numérico | Próxima linha disponível no coletor para o Ponto de Entrada exibir as informações. |
lTemLote | Lógico | Indica que no produto padrão será exibido o lote, o que reduz em 1 a quantidade de linhas disponíveis para o Ponto de Entrada. |
nTemSubLot | Lógico | Indica que no produto padrão será exibido o sublote, o que reduz em 1 a quantidade de linhas disponíveis para o Ponto de Entrada. |
Deve ser retornado o conteúdo de nLinha.
Se forem incluídas linhas (forma 1), nLinha deve ser incrementado à medida que uma nova linha seja exibida pelo Ponto de Entrada.
Se for criada uma nova tela é necessário informar nLinha com o mesmo valor enviado para o Ponto de Entrada.
Protheus 12.1.27 ou superiores.
Se não houver um controle exato da quantidade de linhas utilizadas pelo Ponto de Entrada na forma 1, poderá ocorrer exceção dentro da rotina padrão.
Utilize o exemplo para apoio neste controle.
------
#INCLUDE "PROTHEUS.CH"
User Function WMSV030PPR()
Local nLinha := ParamIxb[1] //Última linha usada pelo produto padrão
Local lTemLote := ParamIxb[2] //Indica se será exibido o lote no produto padrão
Local lTemSubLot := ParamIxb[3] //Indica se será exibido o sublote no produto padrão
Local nQtMaxRow := VTMaxRow() + 1 //Qtde máxima de linhas do coletor
Local nLinPE := 0 //Qtde de linhas que o PE pode usar
Local aTelaAnt := {}
//até 8 linhas são usadas pelo programa padrão, caso haja lote e sublote.
nLinPE := nQtMaxRow - 8
//Se não houver lote, pode ser adicionada uma linha
If !lTemLote
nLinPE++
EndIf
//Se não houver sublote, pode ser adiciona uma linha
If !lTemSubLot
nLinPE++
EndIf
If nLinPE > 0
//Complementa a tela padrão com documento se houver ao menos 1 linha disponível
@ nLinha++,00 VTSay PadR('Documento: ' + D12->D12_DOC, VTMaxCol())
If nLinPE > 1
//Complementa a tela padrão com quantidade se houver ao menos 2 linhas disponíveis
@ nLinha++,00 VTSay PadR('Qtde: ' + AllTrim(Str(D12->D12_QTDORI)), VTMaxCol())
EndIf
Else
//Se não houver linhas suficientes há a possibilidade de criar uma nova tela para exibir
//todas as informações e fechál-la com um <Enter>
aTelaAnt := VTSave(00, 00, VTMaxRow(), VTMaxCol())
For nLinPE := 0 to VTMaxRow()
VTSay(nLinPE,0,Space(VtMaxCol()+1))
Next
WMSVTCabec('Dados do Produto',.F.,.F.,.T.)
@ 01,00 VTSay PadR('Produto: ' + D12->D12_PRODUT, VTMaxCol())
@ 02,00 VTSay PadR('Docto: ' + D12->D12_DOC, VTMaxCol())
@ 03,00 VTSay PadR('Qtde: ' + AllTrim(Str(D12->D12_QTDORI)), VTMaxCol())
WMSVTRodPe()
VTRestore(00, 00, VTMaxRow(), VTMaxCol(), aTelaAnt)
EndIf
Return nLinha
------
<style> div.theme-default .ia-splitter #main { margin-left: 0px; } .ia-fixed-sidebar, .ia-splitter-left { display: none; } #main { padding-left: 10px; padding-right: 10px; overflow-x: hidden; } .aui-header-primary .aui-nav, .aui-page-panel { margin-left: 0px !important; } .aui-header-primary .aui-nav { margin-left: 0px !important; } .aui-tabs.horizontal-tabs>.tabs-menu>.menu-item.active-tab a::after { background: #FF9900; !important } .menu-item.active-tab { border-bottom: none !important; } </style> |