Árvore de páginas

Versões comparadas

Chave

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

...

Bloco de código
languagejava
titleExemplo fonte ExecAuto
#INCLUDE "PROTHEUS.CH"

//--------------------------------------------------
// FUNÇÃO RESPONSÁVEL PELA CRIAÇÃO DO EXECAUTO
//  DA ROTINA MNTA735
//--------------------------------------------------

User Function MNT735Exec()

    Local aSay    := {}
    Local aButton := {}
    Local nOpc    := 0
    Local Titulo  := 'IMPORTAÇÃO DE CHECK LIST'
    Local cDesc1  := 'Esta rotina fará a importação de Check List'
    Local cDesc2  := 'conforme layout. '
    Local cDesc3  := ''
    Local lOk     := .T.

	Private lJob := Type( "oMainWnd" ) != "O"

	If !lJob

		aAdd( aSay, cDesc1 )
    		aAdd( aSay, cDesc2 )
    		aAdd( aSay, cDesc3 )

    		aAdd( aButton, { 1, .T., { || nOpc := 1, FechaBatch() } } )
    		aAdd( aButton, { 2, .T., { || FechaBatch() } } )

    		FormBatch( Titulo, aSay, aButton )
	Else
		nOpc := 1 //quando Ifa nOpcchamada ==for 1
via Job recebe automaticamente OK para execução do Processa( { || lOk := Runproc() },'Aguarde','Processando...',.F.)processo
		RpcSetType(3)
        RpcSetEnv("99", "01 " )
	EndIf

    If nOpc == 1
 If lOk
  	If !lJob
    		Processa( { || lOk := ApMsgInfoRunproc() 'Processamento terminado},'Aguarde','Processando...',.F.)
 			If lOk
				ApMsgInfo( 'Processamento terminado com sucesso.', 'ATENÇÃO' )
        Else
            			Else
				ApMsgStop( 'Processamento realizado com problemas.', 'ATENÇÃO' )
			EndIf
		Else
			lOk        := Runproc()
		EndIf

    EndIf

Return Nil

//-------------------------------------------------------------------
// Rotina para importação de Check List.
//-------------------------------------------------------------------
Static Function Runproc()

    Local lRet     := .T.
    Local aCposCab := {}
    Local aCposDet := {}

    //Dados da tabela.
    aCposCab := {}
    aAdd( aCposCab, { 'TTF_FILIAL' , 'M RJ 01 '  xFilial("TTF")          } )
    aAdd( aCposCab, { 'TTF_CODBEM' , '1234ALKM009            ' 	} )
    aAdd( aCposCab, { 'TTF_CODFAM' , '1234  FM0003'           	} )
    aAdd( aCposCab, { 'TTF_TIPMOD' , '1234M00002      '       '			} )
    aAdd( aCposCab, { 'TTF_CODFUN' , '000001'           	} )
    aAdd( aCposCab, { 'TTF_DATA'   , dDataBase          	} )
    aAdd( aCposCab, { 'TTF_HORA'   , '1812:1800'            	} )

    //Valores da TTG
    aCposDet := {}
    aAdd( aCposDetaCposCab, { 'TTGTTF_FILIALSEQFAM' , '001'M  RJ 01 '} )
    aAdd( aCposDet, { 'TTD_TIPMOD', 'X'        	} ) 

     aAdd( aCposDet, { 'TTG_ETAPA' , '1234  '  } )//Valores da TTG
    aCposDet := {}
    aAdd( aCposDet, {	{ 'TTG_EVENTOFILIAL', 'O'       } )
    aAdd( aCposDet, xFilial("TTG")	},;
						{ 'TTG_ETAPA' , '000001'  		},;
						{ 'TTG_SERVICEVENTO', '1234  O'  } )
    aAdd( aCposDet, 		},;
						{ 'TTG_SERVIC', 'CORELE'  		},;
						{ 'TTG_CRITIC', 'A'       		} } )


    If !ImportaAdd( 'TTF',aCposDet, { 	{ 'TTG_FILIAL', aCposCab, aCposDet )
        lRet := .F.
    EndIf

xFilial("TTG")	},;
						{ 'TTG_ETAPA' , '000002'		},;
						{ 'TTG_EVENTO', 'O'				},;
						{ 'TTG_SERVIC', 'CORELE'		},;
						{ 'TTG_CRITIC', 'M'				} } )

    If !Import( 'TTF', 'TTG', aCposCab, aCposDet )
        lRet := .F.
    EndIf

Return lRet

//-------------------------------------------------------------------
// Importacao dos dados
//-------------------------------------------------------------------
Static Function Import( cMaster, cDetail, aCpoMaster, aCpoDetail )
 cMaster, cDetail, aCpoMaster, aCpoDetail )

    Local oModel
    Local lRet    := .T.
    Local nI        := 0
    Local nJ        := 0
    Local nK        := 0
    Local nItErro := 0

    dbSelectArea( cDetail )
    Local oModeldbSetOrder( 1 )
    dbSelectArea( cMaster Local)
 lRet   dbSetOrder( := .T.1 )

    Local nI //Abre o Model da rotina.
    oModel := 0 FWLoadModel( 'MNTA735' )

    Local// nJDefine a operação desejavada: 3  :=Inclusão 0
/ 4  Alteração Local/ nItErro5 :=- 0
Exclusão
    dbSelectAreaoModel:SetOperation( cDetail3 )

    dbSetOrder(// 1Ativação )
    dbSelectArea( cMaster )do Modelo.
    dbSetOrder( 1 oModel:Activate()

    //AbreJoga os valores da TTF para o Modelmodelo da- rotinaTTFMASTER.
    oModel := FWLoadModel( 'MNTA735' )

If Len(aCpoMaster) > 0
      // Define aFor operaçãonI desejavada:= 31 – Inclusão / 4 – Alteração / 5 - Exclusão
To Len(aCpoMaster)
            oModel:SetOperation( 3 )

LoadValue("TTFMASTER",aCpoMaster[nI,1],aCpoMaster[nI,2])
      // Ativação doNext Modelo.nI
    oModel:Activate()EndIf

    //Joga oso valores da TTFTTG para oa modeloGrid - TTFMASTERTTGDETAIL.

    If Len(aCpoMasteraCpoDetail) > 0
        For nInJ := 1 To Len(aCpoMaster)
aCpoDetail)
            If nJ > 1
                oModel:LoadValue("TTFMASTER",aCpoMaster[nI,1],aCpoMaster[nI,2]GetModel('TTGDETAIL'):AddLine()
        Next nI
    EndIf

    //Joga o valores da TTG para a Grid -For TTGDETAIL.
nK := 1  Ifto Len(aCpoDetail[nJ])
 >  0
        For nJ := 1 To Len(aCpoDetail)
ConOut(aCpoDetail[nJ][nK][1])
                oModel:LoadValue("TTGDETAIL",aCpoDetail[nJ,][nK][1],aCpoDetail[nJ,][nK][2])
            Next nK
        Next nJ
    EndIf

    If ( lRet := oModel:VldData() ) //Valida os dados informados.
        // Se os dados foram validados faz-se a gravação efetiva dos
        // dados (commit)
        oModel:CommitData()
    EndIf

    If !lRet
        // Se os dados não foram validados obtemos a descrição do erro para gerar
        // LOG ou mensagem de aviso
        aErro := oModel:GetErrorMessage()
        // A estrutura do vetor com erro é:
        // [1] identificador (ID) do formulário de origem
        // [2] identificador (ID) do campo de origem
        // [3] identificador (ID) do formulário de erro
        // [4] identificador (ID) do campo de erro
        // [5] identificador (ID) do erro
        // [6] mensagem do erro
        // [7] mensagem da solução
        // [8] Valor atribuído
        // [9] Valor anterior
        AutoGrLog( "Id do formulário de origem:" + ' [' + AllToChar( aErro[1] ) + ']' )
        AutoGrLog( "Id do campo de origem: " + ' [' + AllToChar( aErro[2] ) + ']' )
        AutoGrLog( "Id do formulário de erro: " + ' [' + AllToChar( aErro[3] ) + ']' )
        AutoGrLog( "Id do campo de erro: " + ' [' + AllToChar( aErro[4] ) + ']' )
        AutoGrLog( "Id do erro: " + ' [' + AllToChar( aErro[5] ) + ']' )
        AutoGrLog( "Mensagem do erro: " + ' [' + AllToChar( aErro[6] ) + ']' )
        AutoGrLog( "Mensagem da solução: " + ' [' + AllToChar( aErro[7] ) + ']' )
        AutoGrLog( "Valor atribuído: " + ' [' + AllToChar( aErro[8] ) + ']' )
        AutoGrLog( "Valor anterior: " + ' [' + AllToChar( aErro[9] ) + ']' )
        

		If nItErro > 0
            AutoGrLog( "Erro no Item: " + ' [' + AllTrim( AllToChar( nItErro ) ) + ']' )
        EndIf

		If !lJob
        	MostraErro()
		EndIf

    EndIf
    // Desativamos o Model
    oModel:DeActivate()

Return lRet