Árvore de páginas

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:

Manutenção de Ativos e Gestão de Frotas - SIGAMNT

Rotina:

Rotina

Nome Técnico

MNTR676

Relatório de Ordem de Serviço

Rotinas envolvidas

Nome Técnico

MNTA265

Alteração de O.S.

MNTA400Retorno O.S.
MNTA420Ordem de Serviço Corretiva
MNTA435Retorno de O.S. Mod. 2
MNTA902Árvore Lógica
MNTA985Controle de Portaria
MNTA990Programação O.S.

Ponto de Entrada

Descrição:

Ponto de Entrada para 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:
NomeTipoDescrição
PARAMIXB[1]CarácterPlano O.S.
PARAMIXB[2]CarácterOrdem de Serviço
PARAMIXB[3]DataData Inicial Prevista
PARAMIXB[4]CarácterDe Plano (utilizado somente pela rotina de Alteração de O.S.)
PARAMIXB[5]CarácterAté Plano (utilizado somente pela rotina de Alteração de O.S.)
PARAMIXB[6]Array

Contém as O.S.'s marcadas ( utilizado somente pelas rotinas de Alteração de O.S. e Programação de O.S. )

NomeTipoDescrição
Array[1,1]CaracterPlano O.S.
Array[1,2]CaracterOrdem de Serviço
ParamIXB[7]Caracter

Alias utilizado para acessar os registros temporários.

Observação

Este parâmetro tem utilidade apenas ao acionar o relatório pela rotina Programação de O.S. - MNTA990.

 

Exemplo MNTIMPOS
#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