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: |
|
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 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: |
|
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 MNTA990 e MNTA265 ) 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 |