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

Ponto-de-Entrada: OPM040R - Customização do relatório Itens a serem contados
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 a serem contados, com a finalidade de possibilitar a customização do relatório pelo cliente.
Eventos
 cNroRelF := left(VPF->VPF_NROREL,6)
If ( VPE->VPE_QTDCON == "3" .and. cFase <> "I4" ) .or. ( VPE->VPE_QTDCON == "5" .and. cFase <> "I6" )
DEFINE MSDIALOG oNroRel FROM 000,000 TO 008,030 TITLE STR0055 OF oMainWnd 
@ 011,035 SAY STR0056 SIZE 100,08 OF oNroRel PIXEL COLOR CLR_BLUE // "Inicial:"
@ 010,055 MSGET oNroRelI VAR cNroRelI PICTURE "999999" VALID (cNroRelI:=strzero(val(cNroRelI),6)) SIZE 20,08 OF oNroRel PIXEL COLOR CLR_BLUE
@ 023,035 SAY STR0057 SIZE 100,08 OF oNroRel PIXEL COLOR CLR_BLUE // "Final:"
@ 022,055 MSGET oNroRelF VAR cNroRelF PICTURE "999999" VALID (cNroRelF:=strzero(val(cNroRelF),6)) SIZE 20,08 OF oNroRel PIXEL COLOR CLR_BLUE
@ 040,020 BUTTON oOK PROMPT STR0058 OF oNroRel SIZE 080,10 PIXEL ACTION (lOk:=.t.,oNroRel:End()) // "<<<    OK    >>>"
      ACTIVATE MSDIALOG oNroRel CENTER
Else
lOk := .t.
EndIf
If lOk
   If ExistBlock("OPM040R") // Relatorio dos Itens a serem contados
ExecBlock("OPM040R",.f.,.f.,{cNroRelI,cNroRelF})
   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
DbSelectArea("VPE")
cabec1 := left(cTitulo+space(10)+Transform(VPE->VPE_DATINI,"@D")+space(46),56)
cAlm := "INICIAL"
niF := 0
niI := 0
cAgrAx := ""
DbSelectArea("VPF")
DbSetOrder(2)
DbSeek(xFilial("VPF")+cNroRelI+"01")
ProcRegua(RecCount()/800)
DbSelectArea("SB1")
DbSetOrder(7)
DbSeek(xFilial("SB1") + VPF->VPF_GRUITE + VPF->VPF_CODITE )
If ( VPE->VPE_QTDCON == "3" .and. cFase <> "I4" ) .or. ( VPE->VPE_QTDCON == "5" .and. cFase <> "I6" )
cImprimir :=  VPF->VPF_LOCAC+" "+left(SB1->B1_DESC,21)+" "+VPF->VPF_GRUITE+" "+VPF->VPF_CODITE
Else
cImprimir :=  VPF->VPF_LOCAC+" "+left(SB1->B1_DESC,14)+" "+VPF->VPF_GRUITE+" "+VPF->VPF_CODITE
EndIf
cImprSeq  := right(VPF->VPF_NROREL,2)
nImprimir := IIf(VPE->VPE_QTDCON=="3",VPF->VPF_CONTA3,VPF->VPF_CONTA5) // Max 3 ou 5
cAgrAx := ""
DbSelectArea("VPF")
While !Eof() .and. xFilial("VPF") == VPF->VPF_FILIAL .and. (VPF->VPF_NROREL <= cNroRelF+"25")
ni++
If ni == 800
ni := 0
IncProc(STR0059) // "Imprimindo Itens..."
EndIf
If VPF->VPF_OK == "0" .or. ( VPE->VPE_QTDCON == "3" .and. VPF->VPF_OK == "3" ) .or. ( VPE->VPE_QTDCON == "5" .and. VPF->VPF_OK == "5" )
DbSelectArea("SB1")
DbSetOrder(7)
DbSeek(xFilial("SB1") + VPF->VPF_GRUITE + VPF->VPF_CODITE )
If cAgrup == "S"
If cAgrAx <> VPF->VPF_ALMOX+VPF->VPF_LOCAC+VPF->VPF_CODITE
If !lAgrupou
If !Empty(cAgrAx)
If ( VPE->VPE_QTDCON == "3" .and. cFase <> "I4" ) .or. ( VPE->VPE_QTDCON == "5" .and. cFase <> "I6" )
@ nLin++, 00 PSAY cImprimir+"_______ "+cImprSeq
Else
@ nLin++, 00 PSAY cImprimir+Transform(nImprimir,"@E 999,999,999.99")+" "+cImprSeq
EndIf
nLin++
EndIf
EndIf
If ( VPE->VPE_QTDCON == "3" .and. cFase <> "I4" ) .or. ( VPE->VPE_QTDCON == "5" .and. cFase <> "I6" )
cImprimir :=  VPF->VPF_LOCAC+" "+left(SB1->B1_DESC,21)+" "+VPF->VPF_GRUITE+" "+VPF->VPF_CODITE
Else
cImprimir :=  VPF->VPF_LOCAC+" "+left(SB1->B1_DESC,14)+" "+VPF->VPF_GRUITE+" "+VPF->VPF_CODITE
EndIf
cImprSeq  := right(VPF->VPF_NROREL,2)
nImprimir := IIf(VPE->VPE_QTDCON=="3",VPF->VPF_CONTA3,VPF->VPF_CONTA5) // Maximo 3 ou 5 contagens
lAgrupou := .f.
Else
nImprimir := IIf(VPE->VPE_QTDCON=="3",VPF->VPF_CONTA3,VPF->VPF_CONTA5) // Maximo 3 ou 5 contagens
If ( VPE->VPE_QTDCON == "3" .and. cFase <> "I4" ) .or. ( VPE->VPE_QTDCON == "5" .and. cFase <> "I6" )
@ nLin++, 00 PSAY left(cImprimir,38)+"****"+substr(cImprimir,43)+"_______ "+cImprSeq
Else
@ nLin++, 00 PSAY left(cImprimir,31)+"****"+substr(cImprimir,36)+Transform(nImprimir,"@E 999,999,999.99")+" "+cImprSeq
EndIf
nLin++
lAgrupou  := .t.
EndIf
cAgrAx := VPF->VPF_ALMOX+VPF->VPF_LOCAC+VPF->VPF_CODITE
If cAlm <> VPF->VPF_ALMOX+left(VPF->VPF_NROREL,6)
If ( VPE->VPE_QTDCON == "3" .and. cFase <> "I4" ) .or. ( VPE->VPE_QTDCON == "5" .and. cFase <> "I6" )
If cAlm <> "INICIAL"
@ nLin++, 00 PSAY STR0060 // "Contado por ________________________       Digitado por ________________________"
EndIf
EndIf
cAlm := VPF->VPF_ALMOX+left(VPF->VPF_NROREL,6)
m_pag := val(left(VPF->VPF_NROREL,6))
cabec1 := left(cabec1,55)+" "+STR0049+VPF->VPF_ALMOX+"  "+Alltrim(STR0061)+left(VPF->VPF_NROREL,6) // "Armazem: " / "Pag.:"
nLin := cabec(titulo,cabec1,cabec2,nomeprog,tamanho,15) + 1
EndIf
Else
If cAlm <> VPF->VPF_ALMOX+left(VPF->VPF_NROREL,6)
If ( VPE->VPE_QTDCON == "3" .and. cFase <> "I4" ) .or. ( VPE->VPE_QTDCON == "5" .and. cFase <> "I6" )
If cAlm <> "INICIAL"
@ nLin++, 00 PSAY STR0060 // "Contado por ________________________       Digitado por ________________________"
EndIf
EndIf
cAlm := VPF->VPF_ALMOX+left(VPF->VPF_NROREL,6)
m_pag := val(left(VPF->VPF_NROREL,6))
cabec1 := left(cabec1,55)+" "+STR0049+VPF->VPF_ALMOX+"  "+Alltrim(STR0061)+left(VPF->VPF_NROREL,6) // "Armazem: " / "Pag.:"
nLin := cabec(titulo,cabec1,cabec2,nomeprog,tamanho,15) + 1
EndIf
If ( VPE->VPE_QTDCON == "3" .and. cFase <> "I4" ) .or. ( VPE->VPE_QTDCON == "5" .and. cFase <> "I6" )
@ nLin++, 00 PSAY VPF->VPF_LOCAC+" "+left(SB1->B1_DESC,21)+" "+VPF->VPF_GRUITE+" "+VPF->VPF_CODITE+"_______ "+right(VPF->VPF_NROREL,2)
Else
@ nLin++, 00 PSAY VPF->VPF_LOCAC+" "+left(SB1->B1_DESC,14)+" "+VPF->VPF_GRUITE+" "+VPF->VPF_CODITE+Transform(IIf(VPE->VPE_QTDCON=="3",VPF->VPF_CONTA3,VPF->VPF_CONTA5),"@E 999,999,999.99")+" "+right(VPF->VPF_NROREL,2)
EndIf
nLin++
EndIf
EndIf
DbSelectArea("VPF")
DbSkip()
EndDo
If cAgrup == "S"
If ( VPE->VPE_QTDCON == "3" .and. cFase <> "I4" ) .or. ( VPE->VPE_QTDCON == "5" .and. cFase <> "I6" )
@ nLin++, 00 PSAY cImprimir+"_______ "+cImprSeq
Else
@ nLin++, 00 PSAY cImprimir+Transform(nImprimir,"@E 999,999,999.99")+" "+cImprSeq
EndIf
nLin++
EndIf
If ( VPE->VPE_QTDCON == "3" .and. cFase <> "I4" ) .or. ( VPE->VPE_QTDCON == "5" .and. cFase <> "I6" )
If cAlm <> "INICIAL"
@ nLin++, 00 PSAY STR0060 // "Contado por ________________________       Digitado por ________________________"
EndIf
EndIf
Set Printer to
Set Device to Screen
If aReturn[5] == 1
OurSpool( nomeprog )
EndIf
MS_Flush()
EndIf
 
Programa Fonte
OFIPM040.PRW
Sintaxe

OPM040R - Customização do relatório Itens a serem contados ( [ ] )

Parâmetros:
NomeTipoDescriçãoDefaultObrigatórioReferência
Array of Record
Retorno
    ()
Observações
 User Function OPM040R()
MsgInfo(“Ponto de Entrada OPM040R executado!”,”Atencao”)
return 
Variáveis
NomeTipoEscopoPode Alterardescrição
Array of RecordGlobalNão