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.