#Include "Protheus.ch"
#Include "TbiConn.ch"
User Function U_INCMT061()
alert("Rutina automatica MATA061")
Local aCab As Array
Local aItens As Array
Local aLinha As Array
Local aForn As Array
Local aLoja As Array
Local aProdF As Array
Local aErro As Array
Local nX As Numeric
Local nY As Numeric
Local nOpc As Numeric
Local lRet As Logical
Local cProd As Character
Local cDescProd As Character
Local oModel As Object
nOpc := 3
lRet := .T.
oModel := FWLoadModel('MATA061')
oModel:SetOperation(nOpc)
oModel:Activate()
cProd := PadR("PRODXPROV ",TamSx3("A5_PRODUTO")[1])
cDescProd := GetAdvFVal("SB1","B1_DESC",FwxFilial("SB1")+cProd,1)
aForn := {"000001","000002"}
aLoja := {"01","01"}
aProdF := {"PRODXPROV","PRODXPROV"}
aCab := {}
aLinha := {}
aItens := {}
aErro := {}
//Cabeçalho
Aadd(aCab,{'MdFieldSA5','A5_PRODUTO' ,cProd , Nil})
Aadd(aCab,{'MdFieldSA5','A5_NOMPROD' ,cDescProd, Nil})
For nX := 1 to Len(aCab)
If !( oModel:SetValue( aCab[nX][1] , aCab[nX][2] , aCab[nX][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 nX
if lRet
For nX := 1 to Len(aForn)
aItens := {}
//Grid
Aadd(aItens,{"MdGridSA5","A5_FORNECE" ,PadR(aForn[nX],TamSx3("A5_FORNECE")[1]) ,Nil})
Aadd(aItens,{"MdGridSA5","A5_LOJA" ,PadR(aLoja[nX],TamSx3("A5_LOJA")[1]) ,Nil})
Aadd(aItens,{"MdGridSA5","A5_CODPRF" ,PadR(aProdF[nX],TamSx3("A5_CODPRF")[1]) ,Nil})
Aadd(aLinha,aItens)
Next nX
For nX := 1 to Len(aLinha)
if nX > 1
//Nova linha na Grid
oModel:GetModel("MdGridSA5"):AddLine()
EndIf
For nY := 1 to Len(aLinha[nX])
If !( oModel:SetValue( aLinha[nX][nY][1] , aLinha[nX][nY][2] , aLinha[nX][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
Next nX
EndIf
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(aCab)
FwFreeArray(aItens)
FwFreeArray(aLinha)
FwFreeArray(aForn)
FwFreeArray(aLoja)
FwFreeArray(aProdF)
FwFreeArray(aErro)
oModel:DeActivate()
oModel:Destroy()
RESET ENVIRONMENT
Return
0 Comentarios