Criação de Botão Copiar – Cadastro de TES Protheus

Criação de Botão Copiar – Cadastro de TES Protheus

Hoje iremos aprender como criar um botão “Copiar” no cadastro de TES (Tipo de Entrada e Saída – MATA080) do Protheus.

Por padrão, a rotina de cadastrar TES não tem tal funcionalidade, e invariavelmente, temos que criar uma nova TES, baseada em outra que já existe, alterado apenas, alguns campos.

Todos nós sabemos, que o cadastro de TES do Protheus, tem muitos campos, e ter uma funcionalidade de copiar uma TES já existente, facilita e muito a vida de todos.

No fonte abaixo, foram usado 03 (três) User Function:

MA080MNU – Ponto de Entrada para inclusão de botão na rotina de Cadastro de TES (MATA080);

FCopiaSF4 – Função responsável por abrir tela padrão de inclusão através da rotina AxInclui;

IniCposSF4 – Função responsável por criar as variáveis de memória, alimentadas com as informações do registro posicionado no Browse (Tabela SF4).

A utilização é muito simples; basta compilar o fonte abaixo, que será criado o botão na rotina de cadastro de TES (MATA080). Em seguida posicione na TES que deseja copiar, e clique no botão “Outras Ações”, no caso do Protheus 12, e em seguida, clique em “Copiar”.

Abaixo temos o código completo para a implementação da funcionalidade de copiar TES existentes.

Caso prefiram, podem obter o fonte, baixando diretamente do GitHub, clicando aqui.

Para acessar o GitHub do Smart Siga e ter acesso a todos os fontes, basta clicar aqui.

#Include "RwMake.ch"
#Include "Protheus.ch"

//Ponto de Entrada MA080MNU 
//http://tdn.totvs.com/pages/releaseview.action?pageId=6784261
User Function MA080MNU()

  AADD(aRotina, { "Copiar" , "U_FCopiaSF4()" , 0 , 4,15,NIL})

Return(aRotina)

//Função padrão de inclusão de dados em tela
User Function FCopiaSF4()

  AxInclui("SF4",SF4->(Recno()), 3,, "U_IniCposSF4",,,.F.,,,,,,.T.,,,,,)

Return Nil

//Funão para carregamento dos campos em variáveis de memória
User Function IniCposSF4()

  Local bCampo 	:= { |nCPO| Field(nCPO) }
  Local nCountCpo	:= 0

  //Abre a Tabela de Cadastro de TES
  DbSelectArea("SF4")

  //Executa o laço de todos os campos da Tabela SF4
  For nCountCpo := 1 TO SF4->(FCount())

    If (AllTrim(FieldName( nCountCpo )) <> "F4_CODIGO")

      //Inputa o valor do campo posicionado, na variável de memória
      M->&(EVAL(bCampo, nCountCpo)) := FieldGet(nCountCpo)

    EndIf

  Next nCountCpo

Return Nil

Compartilhe:
  •  
  •  
  •  

2 thoughts on “Criação de Botão Copiar – Cadastro de TES Protheus

    1. Boa Tarde Wagner,

      Obrigado pelo seu comentário.

      Continue nos acompanhando.

      Abs,

      Cristian Regazzo
      Smart Siga
      TI Inteligente

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Seja um Analista VIP!!!

Recebe em primeira mão as novidades do Canal Smart Siga, além de conteúdos exclusivos.