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: |
| de O.S.Rotina(s) envolvida(s)
|
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 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: |
| Obrigatório
| Não
| Não |
| Não
| Não |
| Não
| e
| )
Nome | Tipo | Descrição |
Array[1,1] | Caracter | Plano O.S. |
Array[1,2] | Caracter | Ordem de Serviço |
Exemplo:
|
Bloco de código | ||||
---|---|---|---|---|
| ||||
#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 MNTA990MNTA265 e MNTA265 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 |