import.css=/download/attachments/327912/newLayout.css

Ponto-de-Entrada: OPM040DV - Customização do relatório Itens com divergência com o Estoque.
Abrangências: Microsiga Protheus 10 , Microsiga Protheus 11
Versões: Microsiga Protheus 10 , Microsiga Protheus 11
Compatível Países: Todos
Sistemas Operacionais: Todos
Compatível às Bases de Dados: Todos
Idiomas: Português (Brasil)
Descrição:
Ponto de Entrada na rotina Inventário de Peças (OFIPM040) executado ao invés do relatório padrão Itens com divergência com o Estoque, com a finalidade possibilitar a customização do relatório pelo cliente.
Eventos
Static Function FS_IMPDIV(nTp,aItens)
Local ni        := 0
Local nj        := 0
Local cAlm      := "INICIAL"
Private cDesc1  := STR0001 // "INVENTARIO"
Private cDesc2  := ""
Private cDesc3  := ""
Private tamanho := "M"
Private limite  := 132
Private cString := "VPF"
Private titulo  := STR0001+" ( "+VPE->VPE_CODIGO+" )" // "INVENTARIO"
Private cabec1  := IIf(nTp==3,(STR0094+" -> "+STR0088),STR0098) // Proxima Fase -> Divergencia com o Estoque SEM possibilidade de digitacao / Imprimir Itens que ainda possuem divergencia com o estoque ou entre as contagens
Private cabec2  := STR0095 // "Locacao         Item                                                                                                  Custo Unitario"
Private aReturn := {STR0050,1,STR0051,1,2,1,"",1} // "Zebrado" / "Administracao"
Private nomeprog:= "OFIPM040DIV"
Private nLastKey:= 0
Private cPerg   := nil
aSort(aItens,1,,{|x,y| x[5]+x[6]+x[7]+x[8] < y[5]+y[6]+y[7]+y[8] })
If nTp == 3 .and. ExistBlock("OPM040DV")
ExecBlock("OPM040DV",.f.,.f.,{nTp,aClone(aItens)})
Else
nomeprog := SetPrint(cString,nomeprog,cPerg,@titulo,cDesc1,cDesc2,cDesc3,.F.,,,tamanho)
If nLastKey == 27
Return
EndIf
SetDefault(aReturn,cString)
nLin  := 0
m_pag := 1
Set Printer to &nomeprog
Set Printer On
Set Device  to Printer
ProcRegua((len(aItens)/50))
For ni := 1 to len(aItens)
If ( nTp == 3 .and. aItens[ni,2] == 3 ) .or. ( nTp <> 3 .and. aItens[ni,2] <> 3 )
If nj == 50
nj := 0
IncProc(STR0053) // "Gerando Relacao dos Itens..."
EndIf
If cAlm <> aItens[ni,5] .or. nLin > 60
cAlm := aItens[ni,5]
nLin := cabec(Alltrim(titulo)+" - "+STR0049+cAlm,cabec1,cabec2,nomeprog,tamanho,15) + 1 // "Armazem: "
EndIf
SB1->(DbSetOrder(7))
SB1->(DbSeek(xFilial("SB1") + aItens[ni,7] + aItens[ni,8] ))
SB2->(DbSetOrder(1))
SB2->(DbSeek(xFilial("SB2") + SB1->B1_COD + aItens[ni,5] ))
@ nLin++,00 PSAY left(aItens[ni,6]+" "+aItens[ni,7]+" "+aItens[ni,8]+" "+aItens[ni,9]+space(110),110)+Transform(SB2->B2_CM1,"@E 999,999,999,999,999.99")
EndIf
Next
DbSelectArea("VPF")
Set Printer to
Set Device to Screen
If aReturn[5] == 1
OurSpool( nomeprog )
EndIf
MS_Flush()
EndIf
Return
 
Programa Fonte
OFIPM040.PRW
Sintaxe

OPM040DV - Customização do relatório Itens com divergência com o Estoque. ( [ nxTp ], [ axItens ] )

Parâmetros:
NomeTipoDescriçãoDefaultObrigatórioReferência
nxTpNumérico3 (fixo)
axItensArray of Record Itens com divergencia com o Estoque
Retorno
    ()
Observações
 User Function OPM040DV()
Local nxTp := ParamIxb[1]
Local axItens := ParamIxb[2]
MsgInfo(“Ponto de Entrada OPM040DV executado!”,”Atencao”)
return
Variáveis
NomeTipoEscopoPode Alterardescrição
Array of RecordGlobalNão