Adicionar informações na tela de Planilha Financeira do Pedido de Venda

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:

  1. Foi usado o ponto de entrada M410FLDR, que define se uma das abas será exibida
  2. Dentro dele é buscado a GetWndDefault e em seguida os objetos
  3. Nisso encontramos o objeto da aba, com o título Notas Fiscais
  4. Buscamos o owner dele (que é a dialog em questão)
  5. 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:

Aumentando a tela e exibindo uma informação no canto inferior esquerdo

Aumentando a tela e exibindo uma informação no canto inferior esquerdo

 

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.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação