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 |
| pela rotina
| Não
|
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 MNTA265 e 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 |