Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

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

Preenchimento de campo antes da abertura da tela ao realizar a cópia do Cadastro do Cliente através de ponto de entrada em MVC.

Passo a Passo:

Utilize o id BUTTONBAR, pois o mesmo é executado depois de todas as validações básicas para abertura da rotina.

O exemplo abaixo retrata o caso em que o usuário deseja que na cópia de um cliente o campo de Maior Saldo (A1_MSALDO), localizado na aba Adm/Fin. dentro da aba Principal do cadastro em MVC, seja zerado.

Exemplo:

Bloco de código
languageactionscript3
linenumberstrue
Exemplo:
// BIBLIOTECAS UTILIZADAS


#Include "TOTVS.ch"


#Include "FWMVCDEF.ch"

// PONTO DE ENTRADA MVC DA CRMA980


User Function CRMA980()

    Local aParam  

    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

    // VALIDA SE O PONTO FOI CHAMADO SEM PASSAGEM DE PARÂMETROS
    If (aParam != NIL)
        // ATRIBUIÇÃO DE VALORES
        oObj     := aParam[1]
        cIdPonto := aParam[2]
        cIdModel := aParam[3]

        // VERIFICA SE O MOMENTO DA CHAMADA É QUANDO 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 O SUBMODELO SA1MASTER E INSERE NO CAMPO INFORMADO O CONTEÚDO DESEJADO
           

    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

    // VALIDA SE O PONTO FOI CHAMADO SEM PASSAGEM DE PARÂMETROS
    If (aParam != NIL)
        // ATRIBUIÇÃO DE VALORES
        oObj     := aParam[1]
        cIdPonto := aParam[2]
        cIdModel := aParam[3]

        // VERIFICA SE O MOMENTO DA CHAMADA É QUANDO 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 O 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
 0)

            // RECUPERA A VIEW ATIVA E ATUALIZA (NECESSÁRIO PARA EXIBIÇÃO DO CONTEÚDO)
            oView := FwViewActive()
            oView:Refresh()
        EndIf
    EndIf
Return (xRet)// RETORNO LÓGICO PARA PROSSEGUIMENTO
Pode lhe interessar:

...