PE MA120BUT

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

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.

 

Deixe seu comentário abaixo, assine nossa lista de e-mail e inscreva-se no nosso canal.

Um abraço!!!

 

Link para download do Fonte Completo

 

 

0 respostas

Deixe uma resposta

Want to join the discussion?
Feel free to contribute!

Deixe uma resposta

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