#Include "Protheus.ch"
#Include "RwMake.ch"
#Include "TbiConn.ch"
User Function U_ALTMT061()
alert("Rutina automatica modificar MATA061")
Local aDados As Array
Local aErro As Array
Local cForn As Character
Local cLoja As Character
Local cProd As Character
Local lRet As Logical
Local lPosic As Logical
Local nY As Numeric
Local nOpc As Numeric
Local oModel As Object
Local oGridMod As Object
cForn := PadR("000001",TamSx3("A5_FORNECE")[1])
cLoja := PadR("01",TamSx3("A5_LOJA")[1])
cProd := PadR("PRODXPROV",TamSx3("A5_PRODUTO")[1])
//Posicionar na SA5 no registro a ser alterado
DbSelectArea("SA5")
SA5->(DbSetOrder(1))
If SA5->(DbSeek(xFilial("SA5") + cForn + cLoja + cProd))
nOpc := 4
aDados := {}
aErro := {}
lPosic := .F.
lRet := .T.
oModel := FWLoadModel('MATA061')
oGridMod := oModel:GetModel("MdGridSA5")
oModel:SetOperation(nOpc)
oModel:Activate()
lPosic := oGridMod:SeekLine({{"A5_FORNECE",cForn},{"A5_LOJA",cLoja},{"A5_PRODUTO",cProd}})
If lPosic
Aadd(aDados,{"MdGridSA5","A5_CODPRF" ,PadR("CODPRFFR",TamSx3("A5_CODPRF")[1]) ,Nil})
Endif
For nY := 1 to Len(aDados)
If !( oModel:SetValue( aDados[nY][1] , aDados[nY][2] , aDados[nY][3] ) )
// Caso a atribuição não possa ser feita, por algum motivo (validação, por exemplo)
// o método SetValue retorna .F.
lRet := .F.
Exit
EndIf
Next nY
If lRet
lRet := oModel:VldData()
If lRet
lRet := oModel:CommitData()
Endif
EndIf
If !lRet
//-- Busca o Erro do Modelo de Dados
aErro := oModel:GetErrorMessage()
//-- Monta o Texto que será mostrado na tela
AutoGrLog("Id do formulário de origem:" + ' [' + AllToChar(aErro[01]) + ']')
AutoGrLog("Id do campo de origem: " + ' [' + AllToChar(aErro[02]) + ']')
AutoGrLog("Id do formulário de erro: " + ' [' + AllToChar(aErro[03]) + ']')
AutoGrLog("Id do campo de erro: " + ' [' + AllToChar(aErro[04]) + ']')
AutoGrLog("Id do erro: " + ' [' + AllToChar(aErro[05]) + ']')
AutoGrLog("Mensagem do erro: " + ' [' + AllToChar(aErro[06]) + ']')
AutoGrLog("Mensagem da solução:" + ' [' + AllToChar(aErro[07]) + ']')
AutoGrLog("Valor atribuído: " + ' [' + AllToChar(aErro[08]) + ']')
AutoGrLog("Valor anterior: " + ' [' + AllToChar(aErro[09]) + ']')
//-- Mostra a mensagem de Erro
MostraErro()
EndIf
FwFreeArray(aDados)
FwFreeArray(aErro)
oModel:DeActivate()
oModel:Destroy()
Endif
RESET ENVIRONMENT
Return
0 Comentarios