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 acima. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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 | . Mod. | 2 (MNTA435)Árvore Lógica (MNTA902) | |||||||||||||||||||||||||||||||||||||
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 aMatOs aOptions := Nil {'Relatório 1 ', Local aOptions := {'Relatório 2'} Local cOrdemlOk := PARAMIXB[2] Local lHabPar := .F. //Habilita Botão de Parâmetros Local nOpt := 0oPnlPai Local nOpImp := 0oDlgImp Local nRecOs := 0 Local oPnlPai := NiloGroup1 LocalPrivate oSay1nOpRe := Nil Local oDlgImp := Nil1 Define MsDialog oDlgImp From 00,00 To 270,600 Title "'Modelo de ImpressaoImpressã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.) aOptions := {"Básica", "Simplificada", "Padrão Normal","Padrão Gráfica", "Completa Normal", "Completa Gráfica", "OS Interna", "Opção Usuário"} TRadMenu():New( 015, 035, aOptions, {|u| IIf( PCount() == 0, nOpImpnOpRe, nOpImpnOpRe := u )}, oPnlPai,,,,,,,, 60, 10,,,, .T.) Activate MsDialog oDlgImp On Init EnchoiceBar( oDlgImp, {|| nOptlOk := 1.T., IIF(nOpImp != 0, oDlgImp:End(), MsgInfo("Escolha uma Opção!", "INVALIDO")) }, {|| oDlgImp:End() }) Centered If nOptlOk != 0 fCustomize() If cPrograma == "MNTA265" aMatOs := PARAMIXB[6]Endif Return //------------------------------------------------------------------- /*/{Protheus.doc} fCustomize Imprime conforme seleção /*/ //------------------------------------------------------------------- Static Function fCustomize() Local aParams := PARAMIXB Local cPlano Else := "" Local cOrdem nRecOs := STJ->( Recno() ) "" Local dDtPrev := "" EndIf Local cDePlano Do Case:= "" Local cAtePlano := "" Local CaseaMarcadas nOpImp =:= 1"" Local cCabec := MNTBA676(lHabPar, nRecOs, aMATOS, aMATSX1)"Ordens Marcadas" Local cMensagem := Case nOpImpIIF( nOpRe == 2 1, MNTSI676(lHabPar, nRecOs, aMATOS, aMATSX1) "Relatório 1:", "Relatório 2:" ) + CRLF Local nIndex Case nOpImp =:= 30 // Define as variáveis conforme parâmetros If MNTR675(lHabPar,,, aMATOS, 1, aMATSX1, nRecOs)Len( aParams ) > 0 cPlano Case nOpImp == 4:= aParams[1] // Plano cOrdem := aParams[2] // MNTR675(lHabPar,,, aMATOS, 2, aMATSX1, nRecOs)Ordem de Serviço dDtPrev Case nOpImp == 5 := aParams[3] // Data Prevista If MNTR675Len(lHabPar,,, aMATOS, 3, aMATSX1, nRecOs) aparams ) > 3 CasecDePlano nOpImp :== 6 MNTR675(lHabPar,,, aMATOS, 4, aMATSX1, nRecOs aparams[4] // De Plano ( utilizado apenas no MNTA265 ) CasecAtePlano nOpImp :== 7 .And. cPrograma != "MNTA265" aparams[5] // Até Plano ( utilizado apenas no MNTA265 ) MNTR422(cOrdem) aMarcadas := aparams[6] // Ordens de serviço marcadas ( utilizado apenas Caseno nOpImpMNTA265 ==e 8MNTA990) EndIf EndIf If cProgramanOpRe !== "MNTA265"1 //------------------------------------------------------------------------------- // Para fOpcUser(cOrdemcustomizações, nRecOs) acione uma função específica para impressão de relatório Else//------------------------------------------------------------------------------- cMensagem := "Relatório 1:" fOpcUser2(aMatOs)+ CRLF Else EndIf EndCase Endif Return //-------------------------------------------------------------------------- /*/{Protheus.doc} fOpcUser2 Função 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 /*/ //----- // Para customizações, acione uma função específica para impressão de relatório //------------------------------------------------------------------------------- Static Function fOpcUser(cOrdem, nRecOs) cMensagem MsgInfo("OS : := "Relatório 2:" + cOrdemCRLF + " | Recno : " + cValToChar(nRecOs) ,"ATENÇÃO") Return // EndIf //----------------------------------------------------------------------------------------------------------------- /*/{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. /*/ ///----------------------------------------------------------------------------------------------------------------- // Os trechos definidos abaixo são utilizados apenas para exemplo de impressão dos parâmetros passados pelo PE //----------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------- Static Function fOpcUser2(aMatOs) Local cOrdens := "" Local nX 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 nXnIndex := 1 To Len(aMatOs aMarcadas ) cOrdenscMensagem += "'Ordem : "' + aMatOsaMarcadas[nXnIndex, 12] + "' | - Plano : "' + aMatOsaMarcadas[nXnIndex, 21] + CRLF Next nXnIndex If !Empty(cOrdens) MsgInfo(cOrdens cMensagem, cCabec "ATENÇÃO") EndIf Return |