#INCLUDE 'Protheus.ch'
//-------------------------------------------------------------------
// Incluir, alterar ou excluir Lista de Componentes
//-------------------------------------------------------------------
User Function MyPCPA120()
Local nOpc
RPCSetEnv("T1" , "D MG 01 ",,,"PCP",,,,,,)
nOpc := 3 //Operação de inclusão
EfetuaTransac(nOpc)
Return Nil
Static Function EfetuaTransac(nOpc)
Local lRet := .T.
Local cMsgErro := ''
Local aErro := {}
Default nOpc := 3
If nOpc == 3
//--------------- Exemplo de Inclusão ------------------------------------
If lRet
// Instancia o modelo
oModel := FWLoadModel( "PCPA120" )
//Limpa variável de erro
aErro := oModel:GetErrorMessage(.T.)
aErro := {}
SMW->(dbSetOrder(1))
If SMW->(dbSeek(xFilial("SMW")+"0000000001"))
lRet := .F.
cMsgErro := "Lista já cadastrada"
EndIf
//Seta operação de inclusão
oModel:SetOperation( 3 )
//Ativa o modelo
oModel:Activate()
//Valida a ativação do modelo
If !oModel:Activate()
lRet := .F.
aErro := oModel:GetErrorMessage()
If !Empty(aErro[6])
cMsgErro := oModel:GetErrorMessage()[6]
Else
cMsgErro := "Ocorreram erros ao incluir a lista de componentes."
EndIf
EndIf
EndIf
If lRet
//Carrega o Modelo da Grid
oModelSVG := oModel:GetModel( "SVGDETAIL" ) //Componentes
//Inclui os dados
oModel:SetValue("SMWMASTER","MW_CODIGO","0000000001") //Código
oModel:SetValue("SMWMASTER","MW_DESCRI" ,"LISTA COMPONENTES PARA PCPA120") //Descrição
oModelSVG:SetValue( "VG_COMP" ,"PCP_PCPA120_CT001_MP0000000001" ) //Componente
oModelSVG:SetValue( "VG_QUANT" ,1 ) //Quantidade
//Valida a inclusão
If oModel:VldData()
If !oModel:CommitData()
lRet := .F.
aErro := oModel:GetErrorMessage()
If !Empty(aErro[6])
cMsgErro := oModel:GetErrorMessage()[6]
Else
cMsgErro := "Ocorreram erros ao incluir a lista de componentes."
EndIf
EndIf
Else
lRet := .F.
aErro := oModel:GetErrorMessage()
If !Empty(aErro[6])
cMsgErro := oModel:GetErrorMessage()[6]
Else
cMsgErro := "Ocorreram erros ao incluir a lista de componentes."
EndIf
EndIf
EndIf
If !lRet
ConOut( cMsgErro )
Else
ConOut( "Inclusão efetuada com sucesso." )
EndIf
ElseIf nOpc == 4
//--------------- Exemplo de Alteração ------------------------------------
If lRet
// Instancia o modelo
oModel := FWLoadModel( "PCPA120" )
//Limpa variável de erro
aErro := oModel:GetErrorMessage(.T.)
aErro := {}
//Verifica se existe o registro na tabela
SMW->(dbSetOrder(1))
If !SMW->(dbSeek(xFilial("SMW")+"0000000002"))
lRet := .F.
cMsgErro := "Lista não cadastrada"
EndIf
If lRet
//Seta operação de alteração
oModel:SetOperation( 4 )
//Ativa o modelo
oModel:Activate()
//Valida a ativação do modelo
If !oModel:Activate()
lRet := .F.
aErro := oModel:GetErrorMessage()
If !Empty(aErro[6])
cMsgErro := oModel:GetErrorMessage()[6]
Else
cMsgErro := "Ocorreram erros ao alterar a lista de componentes."
EndIf
EndIf
EndIf
EndIf
If lRet
// Carrega o Modelo da Grid
oModelSVG := oModel:GetModel( "SVGDETAIL" )
//Posiciona na linha 1
oModelSVG:GoLine(1)
//Altera o registro
oModelSVG:SetValue("VG_QUANT",10) //Quantidade
//Posiciona na linha 2
oModelSVG:GoLine(2)
//Altera o registro
oModelSVG:SetValue("VG_QUANT",20) //Quantidade
//Valida a alteração
If oModel:VldData()
If !oModel:CommitData()
lRet := .F.
aErro := oModel:GetErrorMessage()
If !Empty(aErro[6])
cMsgErro := oModel:GetErrorMessage()[6]
Else
cMsgErro := "Ocorreram erros ao alterar a lista de componentes."
EndIf
EndIf
Else
lRet := .F.
aErro := oModel:GetErrorMessage()
If !Empty(aErro[6])
cMsgErro := oModel:GetErrorMessage()[6]
Else
cMsgErro := "Ocorreram erros ao alterar a lista de componentes."
EndIf
EndIf
EndIf
If !lRet
ConOut( cMsgErro )
Else
ConOut( "Alteração efetuada com sucesso." )
EndIf
ElseIf nOpc == 5
//--------------- Exemplo de Exclusão ------------------------------------
If lRet
// Instancia o modelo
oModel := FWLoadModel( "PCPA120" )
//Limpa variável de erro
aErro := oModel:GetErrorMessage(.T.)
aErro := {}
//Verifica se existe o registro na tabela
SMW->(dbSetOrder(1))
If !SMW->(dbSeek(xFilial("SMW")+"0000000004"))
lRet := .F.
cMsgErro := "Lista não cadastrada"
EndIf
If lRet
//Seta operação de alteração
oModel:SetOperation( 5 )
//Ativa o modelo
oModel:Activate()
//Valida a ativação do modelo
If !oModel:Activate()
lRet := .F.
aErro := oModel:GetErrorMessage()
If !Empty(aErro[6])
cMsgErro := oModel:GetErrorMessage()[6]
Else
cMsgErro := "Ocorreram erros ao excluir a lista de componentes."
EndIf
EndIf
EndIf
EndIf
If lRet
//Valida a exclusão
If oModel:VldData()
If !oModel:CommitData()
lRet := .F.
aErro := oModel:GetErrorMessage()
If !Empty(aErro[6])
cMsgErro := oModel:GetErrorMessage()[6]
Else
cMsgErro := "Ocorreram erros ao excluir a lista de componentes."
EndIf
EndIf
Else
lRet := .F.
aErro := oModel:GetErrorMessage()
If !Empty(aErro[6])
cMsgErro := oModel:GetErrorMessage()[6]
Else
cMsgErro := "Ocorreram erros ao excluir a lista de componentes."
EndIf
EndIf
EndIf
If !lRet
ConOut( cMsgErro )
Else
ConOut( "Exclusão efetuada com sucesso." )
EndIf
EndIf
oModel:DeActivate()
oModel:Destroy()
oModel := NIL
Return Nil
|