Árvore de páginas

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

MNTA265

Alteração de O.S

MNTA990Programação O.S.

Rotina(s) envolvida(s)

Nome Técnico

MNTA265

Alteração de O.S.

MNTA990Programação O.S.

Issues Relacionadas

12.1.17

País(es):

Todos

Banco(s) de Dados:

Todos

Sistema(s) Operacional(is):

Todos

    Os detalhes abaixo aplicam-se às versões posteriores ou igual à  dos fontes MNTA265.PRX e MNTA990.PRX

    Ponto de Entrada

    Descrição:

    Ponto de Entrada executado após clicar no botão imprimir O.S. nas rotinas de Alteração de O.S. e Programação de O.S.

    Localização:

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

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

    Eventos:

    Alteração de O.S. (MNTA265)
    Programação O.S. (MNTA990)

    Programa Fonte:

    MNTA265.prx

    MNTA990.prx

    Função:

    IMPOSMNT()

    Parâmetros:
    Nome Tipo Descrição
    PARAMIXB[1] Lógico Reservado
    PARAMIXB[2] Carácter De Plano
    PARAMIXB[3] Carácter Até Plano
    PARAMIXB[4] Array

    Contém as O.S.'s selecionadas no Browse

    Nome Tipo Descrição
    Array[ x, 1 ] Carácter Plano O.S.
    Array[ x, 2 ] Carácter Ordem de Serviço
    PARAMIXB[5] 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
    #Include 'Protheus.ch'
    
    //-------------------------------------------------------------------
    /*/{Protheus.doc} IMPOSMNT
    Apresenta Opções Impressão
    
    @author  Eduardo Mussi
    @since   13/11/2018
    @version P11/P12
    /*/
    //-------------------------------------------------------------------
    User Function IMPOSMNT()
    
        Local aArea     := GetArea()
        Local aOptions  := { 'Opcao de Impressao 1' }
        Local nOpt      := 0
        Local oPnlPai   := Nil
        Local oDlgImp   := Nil
    	Local lVal		:= ParamIXB[1]
    	Local cPla		:= ParamIXB[2]
    	Local cPla2		:= ParamIXB[3]
    	Local aMatOs	:= ParamIXB[4]
    
        Private nOpRe   := 1
    
        Define MsDialog oDlgImp From 00,00 To 270,600 Title 'Modelo de Impressao 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, 'Opcoes', 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, {|| nOpt := 1, oDlgImp:End() }, {|| oDlgImp:End() }) Centered
    
        If nOpt != 0
    
            fValRot( nOpRe, aMatOs )
    
        EndIf
    
        RestArea(aArea)
    
    Return
    
    //-------------------------------------------------------------------
    /*/{Protheus.doc} fOpcUsr
    Função Generica para apresentar O.S. selecionadas
    
    @author  Eduardo Mussi
    @since   13/11/2018
    @version P12
    @param   aMatOs, Array, [ x, 1 ] - Plano
                            [ x, 2 ] - O.S.
    /*/
    //-------------------------------------------------------------------
    Static Function fOpcUsr( aMatOs )
    
        Local cOrdens := ''
        Local nX
    
        For nX := 1 To Len(aMatOs)
            // Verifica se a O.S. já foi adicionada, caso não, adiciona a O.S. e o Plano na string cOrdens.
            If !( aMatOs[ nX, 2 ] $ cOrdens )
                cOrdens += 'Ordem : ' + aMatOs[nX, 2] + ' | - Plano : ' + aMatOs[nX, 1] + CRLF
            EndIf
        Next nX
    
        If !Empty(cOrdens)
            MsgInfo(cOrdens, 'ATENCAO')
        EndIf
    
    Return
    
    //-------------------------------------------------------------------
    /*/{Protheus.doc} fValRot
    Valida chamada de Rotina e chama função 
    responsável para apresentar O.S.'s em tela
    
    @author  Eduardo Mussi
    @since   13/11/2018
    @version P12
    @param   nOpRe , Numérico, Opção escolhida pelo usuário
    @param   aMatOs, Array, [ x, 1 ] - Plano
                            [ x, 2 ] - O.S.
    /*/
    //-------------------------------------------------------------------
    Static Function fValRot( nOpRe, aMatOs )
    
        Default aMatOs := {}
    
        // Executa função de impressão selecionada
        If nOpRe == 1 .And. !Empty( aMatOs )
            fOpcUsr( aMatOs ) // Opção Usuário
        EndIf
    
    Return

    Os detalhes abaixo aplicam-se às versões anteriores à  dos fontes MNTA265.PRX e MNTA990.PRX

    Ponto de Entrada

    Descrição:

    Ponto de Entrada executado após clicar no botão imprimir O.S. nas rotinas de Alteração de O.S. e Programação de O.S.

    Localização:

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

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

    Eventos:

    Alteração de O.S. (MNTA265)
    Programação O.S. (MNTA990)

    Programa Fonte:

    MNTA265.prx

    MNTA990.prx

    Função:

    IMPOSMNT()

    Parâmetros:
    Nome Tipo Descrição
    lVal Lógico Reservado
    cPla Carácter De Plano
    cPla2 Carácter Até Plano
    aMatOs Array

    Contém as O.S.'s selecionadas no Browse

    Nome Tipo Descrição
    Array[ x, 1 ] Carácter Plano O.S.
    Array[ x, 2 ] Carácter Ordem de Serviço

     

    Exemplo
    #Include 'Protheus.ch'
    
    //-------------------------------------------------------------------
    /*/{Protheus.doc} IMPOSMNT
    Apresenta Opções Impressão
    
    @author  Eduardo Mussi
    @since   13/11/2018
    @version P11/P12
    /*/
    //-------------------------------------------------------------------
    User Function IMPOSMNT(lVal, cPla, cPla2, aMatOs)
    
        Local aArea     := GetArea()
        Local aOptions  := { 'Opcao de Impressao 1' }
        Local nOpt      := 0
        Local oPnlPai   := Nil
        Local oDlgImp   := Nil
    
        Private nOpRe   := 1
    
        Define MsDialog oDlgImp From 00,00 To 270,600 Title 'Modelo de Impressao 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, 'Opcoes', 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, {|| nOpt := 1, oDlgImp:End() }, {|| oDlgImp:End() }) Centered
    
        If nOpt != 0
    
            fValRot( nOpRe, aMatOs )
    
        EndIf
    
        RestArea(aArea)
    
    Return
    
    //-------------------------------------------------------------------
    /*/{Protheus.doc} fOpcUsr
    Função Generica para apresentar O.S. selecionadas
    
    @author  Eduardo Mussi
    @since   13/11/2018
    @version P12
    @param   aMatOs, Array, [ x, 1 ] - Plano
                            [ x, 2 ] - O.S.
    /*/
    //-------------------------------------------------------------------
    Static Function fOpcUsr( aMatOs )
    
        Local cOrdens := ''
        Local nX
    
        For nX := 1 To Len(aMatOs)
            // Verifica se a O.S. já foi adicionada, caso não, adiciona a O.S. e o Plano na string cOrdens.
            If !( aMatOs[ nX, 2 ] $ cOrdens )
                cOrdens += 'Ordem : ' + aMatOs[nX, 2] + ' | - Plano : ' + aMatOs[nX, 1] + CRLF
            EndIf
        Next nX
    
        If !Empty(cOrdens)
            MsgInfo(cOrdens, 'ATENCAO')
        EndIf
    
    Return
    
    //-------------------------------------------------------------------
    /*/{Protheus.doc} fValRot
    Valida chamada de Rotina e chama função 
    responsável para apresentar O.S.'s em tela
    
    @author  Eduardo Mussi
    @since   13/11/2018
    @version P12
    @param   nOpRe , Numérico, Opção escolhida pelo usuário
    @param   aMatOs, Array, [ x, 1 ] - Plano
                            [ x, 2 ] - O.S.
    /*/
    //-------------------------------------------------------------------
    Static Function fValRot( nOpRe, aMatOs )
    
        Default aMatOs := {}
    
        // Executa função de impressão selecionada
        If nOpRe == 1 .And. !Empty( aMatOs )
            fOpcUsr( aMatOs ) // Opção Usuário
        EndIf
    
    Return