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.
