No artigo de hoje, vamos demonstrar em como adicionar informações na Planilha Financeira do Pedido de Venda.
Recentemente, um cliente nosso pediu uma customização para adicionar informações na Planilha Financeira.
Acontece que nessa tela, não tem um p.e. específico para adicionar objetos na tela.
Então a lógica que fizemos foi a seguinte:
- Foi usado o ponto de entrada M410FLDR, que define se uma das abas será exibida
- Dentro dele é buscado a GetWndDefault e em seguida os objetos
- Nisso encontramos o objeto da aba, com o título Notas Fiscais
- Buscamos o owner dele (que é a dialog em questão)
- Aumentamos a altura da dialog e exibimos um texto (nesse exemplo, estamos exibindo o eMail do cliente, mas você poderia adicionar outras informações que desejasse)
Abaixo um print de exemplo:
E abaixo o código fonte:
#Include "TOTVS.ch" /*/{Protheus.doc} M410FLDR Definir se vai aparecer a aba Rentabilidade @type user function @author Atilio @since 27/05/2025 /*/ User Function M410FLDR() Local aArea := FWGetArea() Local oSayInfo Local cSayInfo := "..." Local nAtual Local nLinha Local oDlgAux Local lEncontrou := .F. Local cFontPad := "Tahoma" Local oFontPad := TFont():New(cFontPad, , -14) //Busca a tela e os objetos dentro dela Private nAtuPvt Private oPai := GetWndDefault() Private aControles := oPai:aControls //Somente se for pedidos do tipo Normal If M->C5_TIPO == "N" //Percorre todos os objetos da tela For nAtual := 1 To Len(aControles) nAtuPvt := nAtual //Se for um Objeto, for aba de uma TFolder e o título for Notas Fiscais, busca a dialog vinculada If Type("aControles[nAtuPvt]") == "O" .And. Upper(GetClassName(aControles[nAtuPvt])) == "TFOLDERPAGE" .And. Upper(aControles[nAtuPvt]:cTitle) == "NOTA FISCAL" oDlgAux := aControles[nAtuPvt]:oWnd lEncontrou := .T. Exit EndIf Next //Se encontrou, aumenta a altura da dialog e exibe um say no final If lEncontrou cSayInfo := "eMail: " + Alltrim(Posicione("SA1", 1, FWxFilial("SA1") + M->C5_CLIENTE + M->C5_LOJACLI, "A1_EMAIL")) oDlgAux:nHeight += 30 nLinha := (oDlgAux:nHeight/2) - 28 oSayInfo := TSay():New(nLinha, 003, {|| cSayInfo}, oDlgAux, "", oFontPad, , , , .T., , , 200, 10, , , , , , .F., , ) EndIf EndIf FWRestArea(aArea) Return
Bom pessoal, por hoje é só.
Um grande abraço a todos e até a próxima.