User Function MNTA1704() Local lRet := .t. Local nX, nY nTAREF := aSCAN(oGet:aHeader,{|x| TRIM(UPPER(x[2])) == "PA0_TAREFA"}) nETAPA := aSCAN(oGet:aHeader,{|x| TRIM(UPPER(x[2])) == "PA0_ETAPA"}) nINCRE := aSCAN(oGet:aHeader,{|x| TRIM(UPPER(x[2])) == "PA0_INCREM"}) If nOPCAO == 3 .or. nOPCAO == 4 dbSelectArea("PA0") dbSetOrder(01) For nX:=1 To Len(oGet:aCols) If !oGet:aCols[nX,len(oGet:aCols[nX])] .and. (!Empty(oGet:aCols[nX,nTAREF]) .or. !Empty(oGet:aCols[nX,nETAPA]) .or. oGet:aCols[nX,nINCRE] <> 0) If (Empty(oGet:aCols[nX,nTAREF]) .or. Empty(oGet:aCols[nX,nETAPA]) .or. oGet:aCols[nX,nINCRE] = 0) lRet := .f. EndIf EndIf next nX If lRet fLimpaPA0(M->TP9_CODFAM,M->TP9_TIPMOD) For nX:=1 To Len(oGet:aCols) If !Dbseek(xFilial("PA0")+M->TP9_CODFAM+M->TP9_TIPMOD+oGet:aCols[nX,nTAREF]+oGet:aCols[nX,nETAPA]) .and. !oGet:aCols[nX,len(oGet:aCols[nX])] .and. !Empty(oGet:aCols[nX,nTAREF]) RecLock("PA0",.T.) PA0->PA0_FILIAL := xFilial("PA0") PA0->PA0_CODFAM := M->TP9_CODFAM PA0->PA0_TIPMOD := M->TP9_TIPMOD PA0->PA0_TAREFA := oGet:aCols[nX,nTAREF] PA0->PA0_ETAPA := oGet:aCols[nX,nETAPA] PA0->PA0_INCREM := oGet:aCols[nX,nINCRE] MsUnlock("PA0") ElseIf Dbseek(xFilial("PA0")+M->TP9_CODFAM+M->TP9_TIPMOD+oGet:aCols[nX,nTAREF]+oGet:aCols[nX,nETAPA]) .and. oGet:aCols[nX,len(oGet:aCols[nX])] RecLock("PA0",.F.) dbDelete() MsUnlock("PA0") EndIf Next nX EndIf If !lRet msginfo("Alguns campos obrigatórios não foram preenchidos."+chr(13)+chr(10)+"Pasta Não Numerados.","ATENÇÃO") EndIf ElseIf nOPCAO = 5 NGDBAREAORDE("PA0",1) If Dbseek(xFilial("PA0")+M->TP9_CODFAM+M->TP9_TIPMOD) While !EOF() .and. PA0->PA0_CODFAM = M->TP9_CODFAM .and. PA0->PA0_TIPMOD = M->TP9_TIPMOD RecLock("PA0",.F.) DBDelete() MsUnLock("PA0") DbSkip() EndDo EndIf EndIf Return lRet