Hoje iremos mostrar como criar uma aba no rodapé do pedido de compras e adicionar campos via ponto de entrada.
O exemplo dentro desse artigo foi disponibilizado pelo grande Douglas Eduardo ( LinkedIn ).
Basicamente, é necessário manipular 3 pontos de entrada:
- MT120TEL: Cria uma nova aba no rodapé, nesse exemplo irá ser chamada de Observações
- MT120FOL: Irá criar o componente na aba que foi criada no P.E. acima (o conteúdo dos Gets precisa ser Public)
- MTA120G2: Realiza a gravação da informação na tabela SC7
Abaixo um print da aba:
E abaixo o código fonte desenvolvido para esse exemplo:
//Bibliotecas
#Include "Protheus.ch"
/*--------------------------------------------------------------------------------------------------------------*
| P.E.: MT120FOL |
| Desc: Se encontra dentro da rotina que monta a dialog do pedido de compras após a criação do objeto |
| oFolder e antes da montagem dos gets nos folders. |
| Esse ponto de entrada deve ser utilizado em conjunto com o ponto de entrada 'MT120TEL', onde deve |
| ser adicionado no array aTitles o título do novo folder |
| Link: https://tdn.totvs.com/display/public/PROT/MT120FOL |
*--------------------------------------------------------------------------------------------------------------*/
User Function MT120TEL( )
AAdd( aTitles, 'Observações' ) //Nome do folder que será adicionado
Return Nil
//--------------------------------------------------------------------------------------------
User Function MT120FOL( )
Local aArea := GetArea()
Local nOpcx := PARAMIXB[1]
Local aPosGet := PARAMIXB[2]
Local lEdit := IIF(nOpcx == 3 .Or. nOpcx == 4 .Or. nOpcx == 6, .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
If nOpcx == 3
cXObsAux := CriaVar("C7_ZOBS",.F.)
Else
cXObsAux := SC7->C7_ZOBS
EndIf
//Criando na janela o campo OBS
@ 006,aPosGet[3,1] SAY Alltrim(RetTitle("C7_ZOBS")) OF oFolder:aDialogs[7] PIXEL SIZE 070,009
oXObsAux := TMultiget():Create(oFolder:aDialogs[7],{|u|if(Pcount()>0,cXObsAux:=u,cXObsAux)},005,aPosGet[3,2]-100,150,050,,,,,,.T.)
oXObsAux:bHelp := {|| ShowHelpCpo( "C7_ZOBS", {GetHlpSoluc("C7_ZOBS")[1]}, 5 )}
//Se não houver edição, desabilita os gets
If !lEdit
oXObsAux:lActive := .F.
EndIf
RestArea(aArea)
Return Nil
/*--------------------------------------------------------------------------------------------------------------*
| 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_ZOBS := cXObsAux
RestArea(aArea)
Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.
