Árvore de páginas

Utilização do Ponto de Entrada em MVC do Cadastro de Clientes na opção Copiar 

Produto:Microsiga Protheus®
Ambiente:Faturamento (SIGAFAT)
Ocorrência:

Como fazer para não copiar as informações de alguns campos no momento de efetuar a cópia de um registro na rotina de Cadastro de Clientes em MVC

Passo a Passo:

Utilizaremos o ponto de entrada em MVC através do id MODELVLDACTIVE, que será executado antes da abertura da janela do cadastro.

No exemplo abaixo, iremos retratar o caso em que o usuário deseja não efetuar a cópia de alguns campos de um cliente já cadastrado.

Exemplo:

#Include "TOTVS.ch"
#Include "FWMVCDEF.ch"
 
User Function CRMA980()
 
Local aParam     := PARAMIXB  // Parâmetros passados para o ponto (sempre variam)
Local xRet       := .T.       // Retorno lógico para prosseguimento da rotina
Local oObj       := NIL       // Objeto que armazenará o modelo total
Local cIdPonto   := ""        // Id do momento da chamada do ponto
Local cIdModel   := ""        // Qual modelo ou submodelo está ativo
Local 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)

    EndIf
EndIf
 
Return (xRet)
Pode lhe interessar:




  • Sem rótulos