#include 'protheus.ch'
#INCLUDE "TBICONN.CH"
#INCLUDE 'FWMVCDef.ch'
#INCLUDE "RWMAKE.CH"
//------------------------------------------------------------------------
/*
Função Principal
*/
//------------------------------------------------------------------------
User Function TMAT180MVC()
PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "EST"
Incluir1() // Inclusão utilizando o MVC
Incluir2() // Inclusão utilizando a função FWMVCRotAuto
Alterar() // Alteração utilizando o MVC
Excluir() // Alteração utilizando o MVC
RESET ENVIRONMENT
Return
/*------------------------------------------------------------------------
EXEMPLO DE INCLUSÃO NA TABELA SB5 UTILIZANDO MVC
------------------------------------------------------------------------*/
Static Function Incluir1()
Local oModel := Nil
Local cCodigo := ""
// informe o código do produto, a qual já deve estar registrado na tabela SB1
cCodigo := "1234"
//Para utilização da mesma, o modelo de dados chama-se MATA180M e nao MATA180
oModel := FwLoadModel("MATA180M")
oModel:SetOperation(MODEL_OPERATION_INSERT)
oModel:Activate()
oModel:SetValue("SB5MASTER","B5_COD" ,cCodigo)
oModel:SetValue("SB5MASTER","B5_CEME" ,"Nome científico")
If oModel:VldData()
oModel:CommitData()
conout("Registro INCLUIDO!")
Else
VarInfo("Erro ao incluir",oModel:GetErrorMessage())
EndIf
oModel:DeActivate()
oModel:Destroy()
oModel := NIL
Return Nil
/*------------------------------------------------------------------------
EXEMPLO DE INCLUSÃO NA TABELA SB5 UTILIZANDO A FUNÇÃO FwMVCRotAuto
------------------------------------------------------------------------*/
Static Function Incluir2()
Local aCab := {}
Local cCodigo := ""
Private oModel2 := Nil
Private lMsErroAuto := .F.
Private aRotina := {}
// informe o código do produto, a qual já deve estar registrado na tabela SB1
cCodigo := "ABC"
//Adicionando os dados do ExecAuto cab
aCab:= { {"B5_COD" ,cCodigo ,Nil},; // Código identificador do produto
{"B5_CEME" ,"Nome cientifico" ,Nil}} // Nome científico do produto
//Para utilização da mesma, o modelo de dados chama-se MATA180M e nao MATA180
oModel2 := FwLoadModel("MATA180M")
FWMVCRotAuto( oModel2,"SB5",MODEL_OPERATION_INSERT,{{"SB5MASTER", aCab}})
//Se houve erro no ExecAuto, mostra mensagem
If lMsErroAuto
MostraErro()
//Senão, mostra uma mensagem de inclusão
Else
conout("Registro incluído utilizando a função FWMVCRotAuto!")
EndIf
oModel2:DeActivate()
oModel2:Destroy()
oModel2 := NIL
Return Nil
/*------------------------------------------------------------------------
EXEMPLO DE ALTERAÇÃO NA TABELA SB5 COM MVC
------------------------------------------------------------------------*/
Static Function Alterar()
Local oModel := Nil
Local cCodigo := ""
// informe o código do produto, a qual já deve estar registrado na tabela SB1
cCodigo := "1234"
// O registro deve estar posicionado para alterar
dbSelectArea("SB5")
DbSetOrder(1)
If DbSeek(xFilial("SB5") + cCodigo)
//Para utilização da mesma, o modelo de dados chama-se MATA180M e nao MATA180
oModel := FwLoadModel("MATA180M")
oModel:SetOperation(MODEL_OPERATION_UPDATE)
oModel:Activate()
oModel:SetValue("SB5MASTER","B5_COD",cCodigo)
oModel:SetValue("SB5MASTER","B5_CEME","Nome cientifico 1234")
If oModel:VldData()
oModel:CommitData()
conout("Registro ALTERADO!")
Else
VarInfo("Erro ao alterar",oModel:GetErrorMessage())
EndIf
oModel:DeActivate()
oModel:Destroy()
oModel := NIL
Else
conout("Registro não localizado!")
EndIf
Return Nil
/*------------------------------------------------------------------------
EXEMPLO DE EXCLUSÃO NA TABELA SB5 COM MVC
------------------------------------------------------------------------*/
Static Function Excluir()
Local oModel := Nil
Local cCodigo := ""
// informe o codigo do produto, a qual já deve estar registrado na tabela SB1
cCodigo := "1234"
// O registro deve estar posicionado para excluir
dbSelectArea("SB5")
DbSetOrder(1)
If DbSeek(xFilial("SB5") + cCodigo)
//Para utilização da mesma, o modelo de dados chama-se MATA180M e nao MATA180
oModel := FwLoadModel("MATA180M")
oModel:SetOperation(MODEL_OPERATION_DELETE)
oModel:Activate()
If oModel:VldData()
oModel:CommitData()
conout("Registro excluído!")
Else
VarInfo("Erro ao excluir",oModel:GetErrorMessage())
EndIf
oModel:DeActivate()
oModel:Destroy()
oModel := NIL
Else
conout("Registro não localizado!")
EndIf
Return Nil