Ponto de Entrada para customização da impressão de ordens de serviço.
Características do Requisito
Linha de Produto: | Microsiga Protheus | ||||||||||||||||||||
Segmento: | Manufatura | ||||||||||||||||||||
Módulo: | Manutenção de Ativos e Gestão de Frotas - SIGAMNT | ||||||||||||||||||||
Rotina: |
|
Ponto de Entrada
Descrição: | Ponto de Entrada para customização da impressão de ordens de serviço a partir das rotinas supracitadas. | |||||||||||||||||||||||||||||||||
Localização: | SIGAMNT: Atualizações > Controle de Oficina > Manutenção > Alteração de O.S. SIGAMNT: Atualizações > Controle de Oficina > Retorno de O.S. > Retorno SIGAMNT: Atualizações > Controle de Oficina > Ordem de Serviço > Corretiva SIGAMNT: Atualizações > Controle de Oficina > Retorno de O.S. > Retorno Mod.2 SIGAMNT: Atualizações > Controle de Oficina > Árvore > Árvore SIGAMNT: Atualizações > Controle de Oficina > Controle de Portaria > Portaria SIGAMNT: Atualizações > Controle de Oficina > Plano de Manutenção > Programação de O.S. | |||||||||||||||||||||||||||||||||
Programa Fonte: | MNTUTIL_OS.PRW MNTA295.prx MNTA990.prx | |||||||||||||||||||||||||||||||||
Função: | MNTIMPOS() | |||||||||||||||||||||||||||||||||
Parâmetros: |
|
#Include 'Protheus.ch' //------------------------------------------------------------------- /*/{Protheus.doc} MNTIMPOS Apresenta Opções Impressão /*/ //------------------------------------------------------------------- User Function MNTIMPOS() Local aOptions := {'Relatório 1 ', 'Relatório 2'} Local lOk := .F. Local oPnlPai Local oDlgImp Local oGroup1 Private nOpRe := 1 Define MsDialog oDlgImp From 00,00 To 270,600 Title 'Modelo de Impressão da Ordem' Pixel oPnlPai := TPanel():New(00,00,,oDlgImp,,,,,,320,200,.F.,.F.) oPnlPai:Align := CONTROL_ALIGN_ALLCLIENT oGroup1 := TGroup():New( 005, 030, 095, 130, 'Opções', oPnlPai,,,.T.) TRadMenu():New( 015, 035, aOptions, {|u| IIf( PCount() == 0, nOpRe, nOpRe := u )}, oPnlPai,,,,,,,, 60, 10,,,, .T.) Activate MsDialog oDlgImp On Init EnchoiceBar( oDlgImp, {|| lOk := .T., oDlgImp:End() }, {|| oDlgImp:End() }) Centered If lOk fCustomize() Endif Return //------------------------------------------------------------------- /*/{Protheus.doc} fCustomize Imprime conforme seleção /*/ //------------------------------------------------------------------- Static Function fCustomize() Local aParams := PARAMIXB Local cPlano := "" Local cOrdem := "" Local dDtPrev := "" Local cDePlano := "" Local cAtePlano := "" Local aMarcadas := "" Local cCabec := "Ordens Marcadas" Local cMensagem := IIF( nOpRe == 1, "Relatório 1:", "Relatório 2:" ) + CRLF Local nIndex := 0 // Define as variáveis conforme parâmetros If Len( aParams ) > 0 cPlano := aParams[1] // Plano cOrdem := aParams[2] // Ordem de Serviço dDtPrev := aParams[3] // Data Prevista If Len( aparams ) > 3 cDePlano := aparams[4] // De Plano ( utilizado apenas no MNTA265 ) cAtePlano := aparams[5] // Até Plano ( utilizado apenas no MNTA265 ) aMarcadas := aparams[6] // Ordens de serviço marcadas ( utilizado apenas no MNTA265 e MNTA990) EndIf EndIf If nOpRe == 1 //------------------------------------------------------------------------------- // Para customizações, acione uma função específica para impressão de relatório //------------------------------------------------------------------------------- cMensagem := "Relatório 1:" + CRLF Else //------------------------------------------------------------------------------- // Para customizações, acione uma função específica para impressão de relatório //------------------------------------------------------------------------------- cMensagem := "Relatório 2:" + CRLF EndIf //----------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------- // Os trechos definidos abaixo são utilizados apenas para exemplo de impressão dos parâmetros passados pelo PE //----------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------- If !Empty( cDePlano ) .And. !Empty( cAtePlano ) cMensagem += "De Plano: " + cDePlano + CRLF cMensagem += "Até Plano: " + cAtePlano + CRLF EndIf If Len( aMarcadas ) == 0 If Empty( cPlano ) .And. Empty( cOrdem ) cCabec := "ATENÇÃO" cMensagem += "Não há ordens para impressão!" Else If !Empty( dDtPrev ) cMensagem += "Data Prevista: " + DtoC( dDtPrev ) + CRLF EndIf cCabec := "Ordem de Serviço" aMarcadas := {{ cPlano, cOrdem }} EndIf EndIf For nIndex := 1 To Len( aMarcadas ) cMensagem += 'Ordem : ' + aMarcadas[nIndex, 2] + ' | - Plano : ' + aMarcadas[nIndex, 1] + CRLF Next nIndex MsgInfo( cMensagem, cCabec ) Return