Como adicionar campos no cabeçalho do Pedido de Compra

Como adicionar campos no cabeçalho do Pedido de Compra

Olá pessoal…

Hoje vou mostrar como adicionar um campo no cabeçalho da tela do Pedido de Compra no AdvPL usando pontos de entrada.

Apesar de eu já ter postado isso no Guia de Referências, muitas pessoas me perguntam no Skype como fazer, decidi então montar essa postagem auxiliando.

Quem me ajudou a fazer a postagem foi meu amigo Rafael Almeida, um salve ai Rafinha.

Serão necessários 2 pontos de entrada, o MT120TEL (para criar o get na tela), e o MTA120G2 (para gravar o conteúdo). No ponto de entrada da tela, é necessário definir o conteúdo como Public, para que no outro Ponto de Entrada seja visto esse valor.

Abaixo um print do resultado.

Campo no cabeçalho do Pedido de Compra
Campo no cabeçalho do Pedido de Compra

Abaixo o código fonte desenvolvido.

//Bibliotecas
#Include "Protheus.ch"
 
 /*--------------------------------------------------------------------------------------------------------------*
 | P.E.:  MT120TEL                                                                                              |
 | Desc:  Ponto de Entrada para adicionar campos no cabeçalho do pedido de compra                               |
 | Link:  http://tdn.totvs.com/display/public/mp/MT120TEL                                                       |
 *--------------------------------------------------------------------------------------------------------------*/

User Function MT120TEL()
	Local aArea     := GetArea()
	Local oDlg      := PARAMIXB[1] 
	Local aPosGet   := PARAMIXB[2]
	Local nOpcx     := PARAMIXB[4]
	Local nRecPC    := PARAMIXB[5]
	Local lEdit     := IIF(nOpcx == 3 .Or. nOpcx == 4 .Or. nOpcx ==  9, .T., .F.) //Somente será editável, na Inclusão, Alteração e Cópia
	Local oXObsAux
	Public cXObsAux := ""

	//Define o conteúdo para os campos
	SC7->(DbGoTo(nRecPC))
	If nOpcx == 3
		cXObsAux := CriaVar("C7_OBS",.F.)
	Else
		cXObsAux := SC7->C7_OBS
	EndIf

	//Criando na janela o campo OBS
	@ 062, aPosGet[1,08] - 012 SAY Alltrim(RetTitle("C7_OBS")) OF oDlg PIXEL SIZE 050,006
	@ 061, aPosGet[1,09] - 006 MSGET oXObsAux VAR cXObsAux SIZE 100, 006 OF oDlg COLORS 0, 16777215  PIXEL
	oXObsAux:bHelp := {|| ShowHelpCpo( "C7_OBS", {GetHlpSoluc("C7_OBS")[1]}, 5  )}

	//Se não houver edição, desabilita os gets
	If !lEdit
		oXObsAux:lActive := .F.
	EndIf

	RestArea(aArea)
Return
 
/*--------------------------------------------------------------------------------------------------------------*
 | P.E.:  MTA120G2                                                                                              |
 | Desc:  Ponto de Entrada para gravar informações no pedido de compra a cada item (usado junto com MT120TEL)   |
 | Link:  http://tdn.totvs.com/pages/releaseview.action?pageId=6085572                                          |
 *--------------------------------------------------------------------------------------------------------------*/
 
User Function MTA120G2()
	Local aArea := GetArea()

	//Atualiza a descrição, com a variável pública criada no ponto de entrada MT120TEL
	SC7->C7_OBS := cXObsAux

	RestArea(aArea)
Return

Esses e outros códigos, estão disponíveis gratuitamente no nosso GitHub, acesse em github.com/dan-atilio/AdvPL.
Caso queira uma customização específica para sua empresa, saiba mais em nossa Loja.

Bom pessoal, por hoje é só.
Abraços e até a próxima.

About Dan_Atilio

Analista e desenvolvedor de sistemas. Técnico em Informática pelo CTI da Unesp. Graduado em Banco de Dados pela Fatec Bauru. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor do projeto Terminal de Informação, onde são postados tutoriais e notícias envolvendo o mundo da tecnologia.

6 comentários em “Como adicionar campos no cabeçalho do Pedido de Compra

  1. Caramba, procurei muito essa informação, como não tinha encontrado, acabei me virando com os PE MT120TEL, MT120FOL e MTA120G2. Esses criam uma folder nova na tela.

Deixe uma resposta

%d blogueiros gostam disto: