import.css=/download/attachments/327912/newLayout.css |
Ponto-de-Entrada: OPM040R - Customização do relatório Itens a serem contados
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:
Retorno
Observações
User Function OPM040R()
MsgInfo(“Ponto de Entrada OPM040R executado!”,”Atencao”) return
Variáveis
|