Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

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:

Rotina

Nome Técnico

MNTR676

Relatório de O.S.

Rotina(s) envolvida(s)

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.

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 partir das rotinas supracitadas.

Localização:

SIGAMNT: Atualizações/Controle de Oificina/Manutenção/Alteração de O.S.

SIGAMNT: Atualizações/Controle de Oificina/Retorno de O.S./Retorno

SIGAMNT: Atualizações/Controle de Oificina/Ordem de Serviço/Corretiva

SIGAMNT: Atualizações/Controle de Oificina/Retorno de O.S./Retorno Mod.2

SIGAMNT: Atualizações/Controle de Oificina/Árvore/Árvore

SIGAMNT: Atualizações/Controle de Oificina/Controle de Portaria/Portaria

SIGAMNT: Atualizações/Controle de Oificina/Plano de Manutenção/Programação de O.S.

Eventos:

Alteração de O.S. (MNTA265)
Retorno O.S. (MNTA400)
Ordem de Serviço Corretiva (MNTA420)
Retorno de O.S. Mod. 2 (MNTA435)
Árvore Lógica (MNTA902)
Controle de Portaria (MNTA985)
Programação O.S. (MNTA990)

Programa Fonte:

MNTUTIL_OS.PRW

MNTA295.prx

MNTA990.prx

Função:

MNTIMPOS()

Parâmetros:
NomeTipoDescriçãoObrigatório
PARAMIXB[1]CarácterPlano O.S.Não
PARAMIXB[2]CarácterOrdem de ServiçoNão
PARAMIXB[3]DataData Inicial PrevistaNão
PARAMIXB[4]CarácterDe PlanoNão
PARAMIXB[5]CarácterAté PlanoNão
PARAMIXB[6]Array

Contém as Informações da O.S.

NomeTipoDescrição
Array[1,1]CarácterPlano O.S.
Array[1,2]CarácterOrdem de Serviço
Não

 

Exemplo:

Bloco de código
languagevb
themeEclipse
#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    := Nil
    Local aOptions  := {}
    Local cOrdem    := PARAMIXB[2]
    Local lHabPar   := .F. //Habilita Botão de Parâmetros
    Local nOpt      := 0
    Local nOpImpoPnlPai    := 0Nil
    Local nRecOs oDlgImp   := 0Nil
    Local oPnlPailRot265   := Nil
    Local oSay1     := NilcPrograma == 'MNTA265'

    LocalPrivate oDlgImpnOpRe   := 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.)

    If lRot265
        aOptions := {"Básica", "Simplificada", "Padrão Normal","Padrão Gráfica", "Completa Normal", "Completa Gráfica", "OS Interna", "Opção Usuário"} 'Opção de Impressão 1' }
    Else
        aOptions := { 'Opção de Impressão 1', 'Opção de Impressão 2' }
    EndIf

    TRadMenu():New( 015, 035, aOptions, {|u| IIf( PCount() == 0, nOpImpnOpRe, nOpImpnOpRe := u )}, oPnlPai,,,,,,,, 60, 10,,,, .T.)

    Activate MsDialog oDlgImp On Init EnchoiceBar( oDlgImp, {|| nOpt := 1, IIF(nOpImp != 0, oDlgImp:End(), MsgInfo("Escolha uma Opção!", "INVALIDO")) }, {|| oDlgImp:End() }) Centered

    If nOpt != 0

        If cPrograma == "MNTA265"
            aMatOs  := PARAMIXB[6]
        Else
            nRecOs  :=  STJ->( Recno() )
        EndIf

        Do Case
            Case nOpImp == 1
                MNTBA676(lHabPar, nRecOs, aMATOS, aMATSX1)
            Case nOpImp == 2
                MNTSI676(lHabPar, nRecOs, aMATOS, aMATSX1)
            Case nOpImp == 3
                MNTR675(lHabPar,,, aMATOS, 1, aMATSX1, nRecOs)
            Case nOpImp == 4
                MNTR675(lHabPar,,, aMATOS, 2, aMATSX1, nRecOs)
            Case nOpImp == 5
                MNTR675(lHabPar,,, aMATOS, 3, aMATSX1, nRecOs)
            Case nOpImp == 6
                MNTR675(lHabPar,,, aMATOS, 4, aMATSX1, nRecOs)
            Case nOpImp == 7 .And. cPrograma != "MNTA265"
                MNTR422(cOrdem)
            Case nOpImp == 8
                If cPrograma != "MNTA265"
                    fOpcUser(cOrdem, nRecOs)
                Else
                    fOpcUser2(aMatOs)
                EndIf
        EndCase
    fValRot(lRot265, nOpRe)

    Endif

Return

//-------------------------------------------------------------------
/*/{Protheus.doc} fOpcUser2fOpcUser
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
/*/
//-------------------------------------------------------------------
Static Function fOpcUser(cOrdem, nRecOs)

    MsgInfo("'OS : "' + cOrdem + "' | Recno : "' + cValToChar(nRecOs) ,"ATENÇÃO" 'ATENCAO')

Return

//-------------------------------------------------------------------
/*/{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.
/*/
//-------------------------------------------------------------------
Static Function fOpcUser2(aMatOs)

    Local cOrdens := ""''
    Local nX

    For nX := 1 To Len(aMatOs)
        cOrdens += "'Ordem : "' + aMatOs[nX, 12] + "' | - Plano : "' + aMatOs[nX, 21] + CRLF
    Next nX

    If !Empty(cOrdens)
        MsgInfo(cOrdens, 'ATENCAO')
    EndIf

Return

//-------------------------------------------------------------------
/*/{Protheus.doc} fValRot
Valida chamada de Rotina

@author  Eduardo Mussi
@since   26/06/2018
@version P12
@param   lRot265, Lógico, Valida se chamada é feita pela Rotina MNTA265
@param   nOpRe,  Numérico, Opção escolhida pelo usuário
/*/
//-------------------------------------------------------------------
Static Function fValRot(lRot265, "ATENÇÃO") nOpRe)

    Local cOrdem    := PARAMIXB[2]

    aMatSx1  := PARAMIXB[7]

    If lRot265
        //Tratativa realizada para chamada através da rotina MNTA265
        aMatOs    := PARAMIXB[6]
        aMatSx16  := PARAMIXB[8]
        cDePlano  := PARAMIXB[4]
        cAtePlano := PARAMIXB[5]

        Do Case
            // Executa função de impressão selecionada
            Case nOpRe == 1
                fOpcUser2( aMatOs ) // Opção Usuário
        EndCase
    Else
        nRecOs := STJ->( Recno() )
        // Executa função de impressão selecionada
        Do Case
            Case nOpRe == 1
                fOpcUser( cOrdem, nRecOs ) // Opção Usuário
            Case nOpRe == 2
                // Chamada de relatório especifico
                U_RelEspe( cOrdem, nRecOs ) // Opção Usuário
        EndCase

    EndIf

Return