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. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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("OSRelató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 nX
nIndex
If !Empty(cOrdens)
MsgInfo(cOrdens cMensagem, cCabec "ATENÇÃO")
EndIf
Return |