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