Histórico da Página
...
Utilize o exemplo para apoio neste controle.
08. EXEMPLO
...
language | cpp |
---|---|
title | Exemplo |
linenumbers | true |
collapse | true |
...
------
#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
------
Templatedocumentos |
---|
HTML |
---|
<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> |