Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Produto:

Protheus.

Ocorrência:

M200TEXT: Exibe informações na árvore da estrutura.

Passo a passo:

Localização: Ponto de entrada localizado na função A200Prompt da rotina de manutenção de estruturas. Esta função é responsável por montar as informações que serão apresentadas para cada item na árvore da estrutura.

Em que ponto:Será executado antes que o texto seja inserido na árvore da estrutura. Este ponto de entrada tem como objetivo permitir que o usuário manipule o texto original montado pelo sistema de acordo com sua necessidade.

Utilização: Para cada item da estrutura o sistema executa a função A200Prompt para montar o texto a ser exibido. Este ponto de entrada permitirá que o usuário possa alterar o texto original, acrescentando ou excluindo informações e retornando o novo texto que será adicionado à árvore da estrutura.

Programa fonte: MATA200.PRW / PCPA200.PRW

SintaxeM200TEXT - Exibe informações na árvore da estrutura ( [ PARAMIXB[1] ], [ PARAMIXB[2] ], [ PARAMIXB[3] ], [ PARAMIXB[4] ], [ PARAMIXB[5] ] ) --> cTexto

Parâmetro de envio:

Os parâmetros enviados ao ponto de entrada estão no vetor PARAMIXB, sendo eles:

ParamIXB[1] -> Texto original, já com o TRT e a QTDE adicionados por padrão do sistema.
ParamIXB[2] -> Código do item pai.
ParamIXB[3] -> Sequencia TRT do item na estrutura.
ParamIXB[4] -> Código do componente que está sendo inserido na árvore.
ParamIXB[5] -> Quantidade do item na estrutura.

Importante: Quando for executada a inclusão de uma nova estrutura, ao ser executado pela primeira vez, o ponto de entrada receberá no parâmetro PARAMIXB[2] um valor vazio, pois o primeiro item da estrutura não possui um item pai. A partir da inclusão de outros itens, o parâmetro receberá o código do item pai normalmente.

Parâmetro de retorno: Deverá ser retornado o novo texto do item que será adicionado à árvore da estrutura.

Parâmetros:

NomeTipoDescriçãoDefaultObrigatórioReferência
PARAMIXB[1]CaracterTexto original, já com o TRT e a QTDE adicionados por padrão do sistema


PARAMIXB[2]CaracterCódigo do item pai (produto principal da estrutura)


PARAMIXB[3]CaracterSequencia TRT do item na estrutura


PARAMIXB[4]CaracterCódigo do componente que está sendo inserido na árvore


PARAMIXB[5]NuméricoQuantidade do item na estrutura.


Retorno:

cTexto

cReturn()

  • Novo texto a ser apresentado para o item na árvore da estrutura.

Exemplo:

Bloco de código
languagecpp
titleExemplo de implementação:
linenumberstrue
collapsetrue
#include "rwmake.ch"
#include "TbiConn.ch"
#include "protheus.ch"

User Function M200TEXT()
Local aArea    := GetArea()Local aAreaSB1 := SB1->(GetArea())Local cQuant   := ""Local cTextOri :=

Local cQuant   := ""
Local cTextOri := ParamIXB[1] // Texto original,  com o TRT e a QTDE adicionados por padrão do
sistemaLocal cPai    
 sistema
Local cPai     := ParamIXB[2] // Código do item
paiLocal cTRT    
 pai
Local cTRT     := ParamIXB[3] // Sequencia TRT do item na
estruturaLocal cComp    
 estrutura
Local cComp    := ParamIXB[4] // Código do componente que está sendo inserido na
árvoreLocal nQuant  
 árvore
Local nQuant   := ParamIXB[5] // Quantidade do item na
estruturaLocal nTamCod  
 estrutura
Local nTamCod  := TamSX3("B1_COD")
Local nTamQtd
 
  := TamSX3("G1_QUANT")
Local cReturn
 
  := ""
         
          // retorno
do PEIf
 do PE

If !(Empty(cComp))
   SB1
    
    SB1->(dbSetOrder(1))
   If
    
    If SB1->(dbSeek(xFilial("SB1") + cComp, .F.)) // Posiciona no produto para obter sua
descrição        cReturn
 descrição
        cReturn := AllTrim(cComp) + " - " + SB1->B1_DESC + Space(nTamCod[1] - Len(AllTrim(cComp)))
   EndIf     If
    
    EndIf	    
    If !Empty(cTRT)
       cTRT

        cTRT := " | "+cTRT
   EndIf     cQuant := " |
    
    EndIf
        cQuant := " | "+AllTrim(Str(nQuant, nTamQtd[1], nTamQtd[2]))
     If
	    
    If !(Empty(cPai)) .And. !(cPai == cComp) // itens internos da
estrutura        cReturn :=
 estrutura        
        cReturn := Pad(AllTrim(cReturn)+cQuant+cTRT, Len(cReturn+cQuant+cTRT))
   EndIfElse    cReturn := cTextOriEndIf// Restaura as áreas

    EndIf
Else    
    cReturn := cTextOri
EndIf// Restaura as áreas originaisRestArea(aAreaSB1)RestArea(aArea)

Return cReturn // novo texto a ser apresentado na árvore da estrutura

Observações: