Histórico da Página
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: | SIGAMNT - Manutenção de Ativos e Gestão de Frotas - SIGAMNT | ||||||||||||||||||||||
Rotina: |
| O.S.Rotina(s) envolvida(s)
| |||||||||||||||||||||
Issues Relacionadas | 12.1.17 | ||||||||||||||||||||||
País(es): | Todos | ||||||||||||||||||||||
Banco(s) de Dados: | Todos | ||||||||||||||||||||||
Sistema(s) Operacional(is): | Todos |
Ponto de Entrada
Descrição: | Ponto de Entrada que permite inserir opções no relatórios de O.S. a partirpara customização da impressão de ordens de serviço a partir das rotinas supracitadas. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Localização: | SIGAMNT: Atualizações | /> Controle de | Oificina/Oficina > Manutenção | /> Alteração de O.S. SIGAMNT: Atualizações | /> Controle de | Oificina/Oficina > Retorno de O.S. | /> Retorno SIGAMNT: Atualizações | /> Controle de | Oificina/Oficina > Ordem de Serviço | /> Corretiva SIGAMNT: Atualizações | /> Controle de | Oificina/Oficina > Retorno de O.S. | /> Retorno Mod.2 SIGAMNT: Atualizações | /> Controle de | Oificina/Oficina > Árvore | /> Árvore SIGAMNT: Atualizações | /> Controle de | Oificina/Oficina > Controle de Portaria | /> Portaria SIGAMNT: Atualizações | /> Controle de | Oificina/Oficina > Plano de Manutenção | /Programação de O.S.Eventos: | Alteração de O.S. (MNTA265)> Programação de O.S. | (MNTA400)Ordem de Serviço Corretiva (MNTA420) | |||||||||||||||||||||||||||
Programa Fonte: | MNTUTIL_OS.PRW MNTA295.prx MNTA990.prx | ||||||||||||||||||||||||||||||||||||||||||||||||||
Função: | MNTIMPOS() | ||||||||||||||||||||||||||||||||||||||||||||||||||
Parâmetros: |
| Obrigatório |
| Não |
| Não
| Não
| Não
| Não |
| Informações da
| Carácter
| Carácter
| Não |
Exemplo:
|
Bloco de código | ||||
---|---|---|---|---|
| ||||
#Include 'Protheus.ch' //------------------------------------------------------------------- /*/{Protheus.doc} MNTIMPOS Apresenta Opções Impressão @author Eduardo Mussi @since 26/06/2018 @version P11/P12 /*/ //------------------------------------------------------------------- User Function MNTIMPOS() Local aOptions := {'Relatório 1 ', 'Relatório 2'} Local nOptlOk := 0.F. Local oPnlPai := Nil Local oDlgImp := Nil Local lRot265 := cPrograma == 'MNTA265'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.) If lRot265 aOptions := { 'Opção de Impressão 1' } Else aOptions := { 'Opção de Impressão 1', 'Opção de Impressão 2' } EndIf TRadMenu():New( 015, 035, aOptions, {|u| IIf( PCount() == 0, nOpRe, nOpRe := u )}, oPnlPai,,,,,,,, 60, 10,,,, .T.) Activate MsDialog oDlgImp On Init EnchoiceBar( oDlgImp, {|| nOptlOk := 1.T., oDlgImp:End() }, {|| oDlgImp:End() }) Centered If nOpt != 0 lOk fValRotfCustomize(lRot265, nOpRe) Endif Return //------------------------------------------------------------------- /*/{Protheus.doc} fOpcUserfCustomize FunçãoImprime Generica para apresentar O.S. Posicionada nas demais chamadas do ponto de entrada @author Eduardo Mussi @since 26/06/2018 @version P12 @param cOrdem, Caractér, Numero da O.S. Posicionada @param nRecOs, Numérico, Recno da O.S. Posicionada /conforme seleção /*/ //------------------------------------------------------------------- Static Function fOpcUser(cOrdem, nRecOs) MsgInfo('OS : ' + cOrdem + ' | Recno : ' + cValToChar(nRecOs) , 'ATENCAO') Return 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 //------------------------------------------------------------------- /*/{Protheus.doc} fOpcUser2 Função Generica para apresentar O.S. selecionadas na rotina MNTA265 @author Eduardo Mussi @since 26/06/2018 @version P12 @param aMatOs, Array, Contém informações da O.S. /*/ //------------ // Para customizações, acione uma função específica para impressão de relatório //------------------------------------------------------------------------------- Static Function fOpcUser2(aMatOs) Local cOrdenscMensagem := '' "Relatório 1:" + CRLF Local nX Else For nX := 1 To Len(aMatOs) //------------------------------------------------------------------------------- cOrdens += 'Ordem : '// +Para aMatOs[nXcustomizações, 2]acione +uma 'função |específica -para Planoimpressão :de 'relatório + aMatOs[nX, 1] + CRLF Next nX //------------------------------------------------------------------------------- If !Empty(cOrdens) cMensagem := "Relatório 2:" MsgInfo(cOrdens, 'ATENCAO')+ CRLF EndIf Return // //---------------------------------------------------------------------------------------------------- /*/{Protheus.doc} fValRot Valida chamada de Rotina @author Eduardo Mussi @since 26/06/2018 @version P12 @param lRot265, Lógico, Valida se chamada é feita pela Rotina MNTA265 @param nOpRe, Numérico, Opção escolhida pelo usuário /*/ //------------- //----------------------------------------------------------------------------------------------------------------- // Os trechos definidos abaixo são utilizados apenas para exemplo de impressão dos parâmetros passados pelo PE //----------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------- Static Function fValRot(lRot265, nOpRe) Local cOrdem------------- If !Empty( cDePlano ) .And. !Empty( cAtePlano ) := PARAMIXB[2] cMensagem += aMatSx1"De Plano:= PARAMIXB[7] If lRot265 " + cDePlano + CRLF //Tratativa realizada para chamada através da rotina MNTA265cMensagem += "Até Plano: " + cAtePlano + CRLF EndIf aMatOsIf Len( aMarcadas ) :== PARAMIXB[6]0 aMatSx16If Empty( := PARAMIXB[8] cPlano ) .And. Empty( cOrdem ) cDePlano := PARAMIXB[4] cCabec cAtePlano := PARAMIXB[5] "ATENÇÃO" Do Case cMensagem += "Não há ordens // Executa função de impressão selecionadapara impressão!" Case nOpRe == 1Else fOpcUser2If !Empty( aMatOsdDtPrev ) // Opção Usuário EndCase Else cMensagem += "Data Prevista: nRecOs" := STJ->( Recno() )+ DtoC( dDtPrev ) + CRLF // Executa função de impressão selecionadaEndIf Do Case cCabec := "Ordem Case nOpRe == 1de Serviço" aMarcadas := {{ cPlano, fOpcUser( cOrdem, nRecOs ) // Opção Usuário }} EndIf Case nOpRe == 2EndIf For nIndex := 1 To Len( aMarcadas ) // Chamada de relatóriocMensagem especifico += 'Ordem : ' + aMarcadas[nIndex, 2] + ' | - Plano : ' U_RelEspe( cOrdem, nRecOs ) // Opção Usuário + aMarcadas[nIndex, 1] + CRLF Next nIndex EndCase EndIfMsgInfo( cMensagem, cCabec ) Return |