Histórico da Página
Impressão de O.S.
Características do Requisito
Linha de Produto: | Microsiga Protheus | ||||||||||||||||||||
Segmento: | Manufatura | ||||||||||||||||||||
Módulo: | SIGAMNT - Manutenção de Ativos e Gestão de Frotas | ||||||||||||||||||||
Rotina: |
| ||||||||||||||||||||
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 partir das rotinas supracitadas. | |||||||||||||||||||||||||||||||||||||
Localização: | SIGAMNT: Atualizações/Controle de Oificina/Manutenção/Alteração de O.S. SIGAMNT: Atualizações/Controle de Oificina/Retorno de O.S./Retorno SIGAMNT: Atualizações/Controle de Oificina/Ordem de Serviço/Corretiva SIGAMNT: Atualizações/Controle de Oificina/Retorno de O.S./Retorno Mod.2 SIGAMNT: Atualizações/Controle de Oificina/Árvore/Árvore SIGAMNT: Atualizações/Controle de Oificina/Controle de Portaria/Portaria SIGAMNT: Atualizações/Controle de Oificina/Plano de Manutenção/Programação de O.S. | |||||||||||||||||||||||||||||||||||||
Eventos: | Alteração de O.S. (MNTA265) | |||||||||||||||||||||||||||||||||||||
Programa Fonte: | MNTUTIL_OS.PRW MNTA295.prx MNTA990.prx | |||||||||||||||||||||||||||||||||||||
Função: | MNTIMPOS() | |||||||||||||||||||||||||||||||||||||
Parâmetros: |
|
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 := Nil Local aOptions := {} Local cOrdem := PARAMIXB[2] Local lHabPar := .F. //Habilita Botão de Parâmetros Local nOpt := 0 Local nOpImpoPnlPai := 0Nil Local nRecOs oDlgImp := 0Nil Local oPnlPailRot265 := Nil Local oSay1 := NilcPrograma == 'MNTA265' LocalPrivate oDlgImpnOpRe := 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.) If lRot265 aOptions := {"Básica", "Simplificada", "Padrão Normal","Padrão Gráfica", "Completa Normal", "Completa Gráfica", "OS Interna", "Opção Usuário"} '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, nOpImpnOpRe, nOpImpnOpRe := u )}, oPnlPai,,,,,,,, 60, 10,,,, .T.) Activate MsDialog oDlgImp On Init EnchoiceBar( oDlgImp, {|| nOpt := 1, IIF(nOpImp != 0, oDlgImp:End(), MsgInfo("Escolha uma Opção!", "INVALIDO")) }, {|| oDlgImp:End() }) Centered If nOpt != 0 If cPrograma == "MNTA265" aMatOs := PARAMIXB[6] Else nRecOs := STJ->( Recno() ) EndIf Do Case Case nOpImp == 1 MNTBA676(lHabPar, nRecOs, aMATOS, aMATSX1) Case nOpImp == 2 MNTSI676(lHabPar, nRecOs, aMATOS, aMATSX1) Case nOpImp == 3 MNTR675(lHabPar,,, aMATOS, 1, aMATSX1, nRecOs) Case nOpImp == 4 MNTR675(lHabPar,,, aMATOS, 2, aMATSX1, nRecOs) Case nOpImp == 5 MNTR675(lHabPar,,, aMATOS, 3, aMATSX1, nRecOs) Case nOpImp == 6 MNTR675(lHabPar,,, aMATOS, 4, aMATSX1, nRecOs) Case nOpImp == 7 .And. cPrograma != "MNTA265" MNTR422(cOrdem) Case nOpImp == 8 If cPrograma != "MNTA265" fOpcUser(cOrdem, nRecOs) Else fOpcUser2(aMatOs) EndIf EndCase fValRot(lRot265, nOpRe) Endif Return //------------------------------------------------------------------- /*/{Protheus.doc} fOpcUser2fOpcUser 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 /*/ //------------------------------------------------------------------- Static Function fOpcUser(cOrdem, nRecOs) MsgInfo("'OS : "' + cOrdem + "' | Recno : "' + cValToChar(nRecOs) ,"ATENÇÃO" 'ATENCAO') Return //------------------------------------------------------------------- /*/{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. /*/ //------------------------------------------------------------------- Static Function fOpcUser2(aMatOs) Local cOrdens := ""'' Local nX For nX := 1 To Len(aMatOs) cOrdens += "'Ordem : "' + aMatOs[nX, 12] + "' | - Plano : "' + aMatOs[nX, 21] + CRLF Next nX If !Empty(cOrdens) MsgInfo(cOrdens, 'ATENCAO') 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 /*/ //------------------------------------------------------------------- Static Function fValRot(lRot265, "ATENÇÃO") nOpRe) Local cOrdem := PARAMIXB[2] aMatSx1 := PARAMIXB[7] If lRot265 //Tratativa realizada para chamada através da rotina MNTA265 aMatOs := PARAMIXB[6] aMatSx16 := PARAMIXB[8] cDePlano := PARAMIXB[4] cAtePlano := PARAMIXB[5] Do Case // Executa função de impressão selecionada Case nOpRe == 1 fOpcUser2( aMatOs ) // Opção Usuário EndCase Else nRecOs := STJ->( Recno() ) // Executa função de impressão selecionada Do Case Case nOpRe == 1 fOpcUser( cOrdem, nRecOs ) // Opção Usuário Case nOpRe == 2 // Chamada de relatório especifico U_RelEspe( cOrdem, nRecOs ) // Opção Usuário EndCase EndIf Return |