MATA120-MA120BUT – INCLUIR BOTÕES NA TELA DO PEDIDO DE COMPRAS

MATA120-MA120BUT – INCLUIR BOTÕES NA TELA DO PEDIDO DE COMPRAS
Author: Eurai
Inclusão: 01/01/2016
Alteração: 13/08/2023

Olá, Seja Bem-vindo!!!

 

Hoje vou mostrar o ponto de entrada MA120BUT do modulo de COMPRAS.

 

Esse PE é usado para adicionar botão  na tela do pedido de venda. Como mostra imagem abaixo:

ma120but-01-universoadvpl 

 

Segue o código dele

 

/*/{Protheus.doc} MA120BUT
Incluir Botões na Tela do Pedido de Compras

@author Eurai Rapelli
@since 16/09/2014

@return aButtons , Array , Novos Botões
/*/
User Function MA120BUT()
Local aButtons := {}

aAdd( aButtons, { 'COMPREL', {|| MyFunction() }, 'Meu Botão', 'Meu Botão' } )

Return( aButtons )                               

 

Esse botão coloquei para chamara função MyFunction(). Você pode alterar para a função que desejar.

 

Usei essa função MyFunction() para manipular os dados do aCols do Pedido de Compra.

 

 

 

Nesse caso em especifico, precisei criar um botão no menu 'MA120BUT' onde chama uma função 'MyFunction()' para preencher os dados aCols do pedido de compra (GRID).

 

Diferente de outros PE, esse não disponibiliza o objeto do GRID em variável PRIVATE, assim não possibilitando utilizar o oObjeto:Refresh().

 

Era possível carregar os dados com aCols, porém após clicar em alguns campos (Quantidade,Preço,Total) o mesmo limpava os campos de Produtos e outros.

 

Realizei tentativa das seguintes formas para contornar o problema:

 

Eval( bPIDRefresh ) e GETDREFRESH() e SysRefresh(), sem sucesso.

 

Tentei obter o objeto do GRID pelo aControls, porém continue sem sucesso.

 

Quase desistindo, encontrei uma maneira de atualizar o aCols do Pedido de Compra, segue abaixo.

 

Pergunte("MTA120",.F.) n := 01 A120Produto( aCols[ 01, GdFieldPos('C7_PRODUTO') ] ) A120Trigger("C7_PRODUTO")

                                             

 

Segue função Completa:

 

/*/{Protheus.doc} MyFunction
Minha Função

@author Eurai Rapelli
@since 16/09/2014
/*/
Static Function MyFunction()

Pergunte("MTA120",.F.)

n := 01

aCols[ 01, GdFieldPos('C7_PRODUTO') ] := '00000' //Código do produto no meu cadastro de produto. Fixo para teste.
A120Produto( aCols[ 01, GdFieldPos('C7_PRODUTO') ] )
A120Trigger("C7_PRODUTO")

aCols[ 01, GdFieldPos('C7_QUANT') ] := 1
A120Trigger("C7_QUANT")

aCols[ 01, GdFieldPos('C7_PRECO') ] := 1
A120Trigger("C7_PRECO")

aCols[ 01, GdFieldPos('C7_TOTAL') ] := 1
A120Trigger("C7_TOTAL")
Return( Nil )                                             

 

No caso, você pode utilizar um Laço/For e criar as linhas do aCols/GRID; basta trocar o 01 pela variável do seu Laço/For.

 

Esse foi o POST sobre o PE MA120BUT e atualização do aCols do pedido de Compra.

 

 

Gostou? Compartilhe com seus amigos e deixe um comentário! 😎  

Um abraço, e até a próxima

 

 

 

 

 

 

Esse conteúdo te ajudou? Ajude o canal com doação
Compartilhar
Comentários