Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Revertida da versão 15

...

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

Como fazer para não copiar alterar 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 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
languagejs
linenumberstrue
#Include "TOTVS.ch"


#Include "FWMVCDEF.ch"

 


User Function CRMA980()

 
Local aParam    


	Local aParam   := PARAMIXB
 
	// Parâmetros passados para o ponto (sempre variam)


	Local
xRet      
 xRet     := .T.
     
     	// Retorno lógico para prosseguimento da rotina


	Local
oObj      
 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
 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)
Pode lhe interessar:

...