Histórico da Página
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
#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 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 ' },; } ) //Valores da TTG aCposDet := {} aAdd( aCposDet, { { 'TTG_FILIAL', xFilial("TTG") },; { 'TTG_ETAPA' , 'X000001' },; { 'TTG_EVENTO', 'O' },; { 'TTG_EVENTOSERVIC', '1234 CORELE' },; { 'TTG_CRITIC', 'A' } } ) aAdd( aCposDet, { { 'TTG_FILIAL', xFilial("TTG") },; { 'TTG_SERVICETAPA' , '1234 ' 000002' },; { 'TTG_CRITIC', 'A' } } ) aAdd( aCposDet, { { 'TTG_FILIAL', 'M RJ 01 ' },; { 'TTG_ETAPA' , 'Y' },; { 'TTG { 'TTG_EVENTO', 'N' O' },; { 'TTG_SERVIC', '1234' CORELE' },; { 'TTG_CRITIC', 'M' ', 'M' } } ) If !Import( 'TTF', 'TTG', aCposCab, aCposDet ) lRet := .F. EndIf Return lRet //------------------------------------------------------------------- // Importacao dos dados //------------------------------------------------------------------- Static Function Import( cMaster, cDetail, aCpoMaster, aCpoDetail ) Local oModel Local lRet := .T. Local nI := 0 Local nJ := 0 Local nK := 0 Local nItErro := 0 dbSelectArea( cDetail ) dbSetOrder( 1 ) dbSelectArea( cMaster ) dbSetOrder( 1 ) //Abre o Model da rotina. oModel := FWLoadModel( 'MNTA735' ) // Define a operação desejavada: 3 – Inclusão / 4 – Alteração / 5 - Exclusão oModel:SetOperation( 3 ) // Ativação do Modelo. oModel:Activate() //Joga os valores da TTF para o modelo - TTFMASTER. If Len(aCpoMaster) > 0 For nI := 1 To Len(aCpoMaster) oModel:LoadValue("TTFMASTER",aCpoMaster[nI,1],aCpoMaster[nI,2]) Next nI EndIf //Joga o valores da TTG para a Grid - TTGDETAIL. If Len(aCpoDetail) > 0 For nJ := 1 To Len(aCpoDetail) If nJ > 1 oModel:GetModel('TTGDETAIL'):AddLine() EndIf For nK := 1 to Len(aCpoDetail[nJ]) 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 |
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas