Utilizaremos o ponto de entrada em MVC através do id BUTTONBAR, que será executado antes da abertura da janela do cadastro.
No exemplo abaixo, iremos retratar o caso em que o usuário deseja efetuar alterações no momento da cópia de um cliente já cadastrado, alterando o conteúdo do campo de Maior Saldo (A1_MSALDO).
Exemplo:
Bloco de código |
---|
language | js |
---|
linenumbers | true |
---|
|
#Include "TOTVS.ch" |
Local aParam // Parâmetros passados para o ponto (sempre variam) |
xRet // Retorno lógico para prosseguimento da rotina |
oObj // Objeto que armazenará o modelo total |
// Id do momento da chamada do ponto |
// Qual modelo ou submodelo está |
ativoLocal aCpoNoCopy := {}If (aParam != NIL)
oObj := aParam[1]
cIdPonto := aParam[2]
cIdModel := aParam[3]
If cIDPonto == "MODELVLDACTIVE" .And. oObj:GetOperation() == MODEL_OPERATION_INSERT
aAdd(aCpoNoCopy, "A1_MSALDO")
aAdd(aCpoNoCopy, "A1_MCOMPRA")
aAdd(aCpoNoCopy, "A1_PRICOM")
aAdd(aCpoNoCopy, "A1_ULTCOM")
aAdd(aCpoNoCopy, "A1_SALDUP")
aAdd(aCpoNoCopy, "A1_SALPED")
//Define quais campos do submodelo não serão copiados no processo de cópia do submodelo.
oObj:GetModel("SA1MASTER"):SetFldNoCopy(aCpoNoCopy)
EndIfEndIf Return ativo
If (aParam != NIL)
oObj := aParam[1]
cIdPonto := aParam[2]
cIdModel := aParam[3]
// Verifica se o ID é igual a BUTTONBAR e se a operação de inclusão é proveniente de uma cópia
If (cIdPonto == "BUTTONBAR" .And. oObj:IsCopy())
// Procura submodelo SA1MASTER e insere no campo informado o conteúdo desejado
oObj:GetModel("SA1MASTER"):LoadValue("A1_MSALDO", 0)
// Recupera a View ativa e atualiza (necessário para exibição do conteúdo)
oView := FwViewActive()
oView:Refresh()
EndIf
EndIf
Return (xRet) |