Árvore de páginas


01. DADOS GERAIS

Linha de Produto:Microsiga Protheus®
Segmento:Logística
Módulo:SIGATMS - Gestão de Transportes 


02. DESCRIÇÃO

Através deste ponto de entrada é possível adicionar abas ao Painel de Agendamento.

O ponto de entrada está localizado nas funções MenuDef76 e TMSF76Qry do fonte TMSAF76 (Painel de Agendamento) e  possui duas etapas que devem ser utilizadas em conjunto:

  1. Adicionar Rotinas ao MenuDef do TMSAF76 - estas rotinas serão adicionadas como abas ao painel de agendamento;
  2. Realizar filtro via query nas tabelas das rotinas adicionadas ao menu.


Atenção

É uma premissa para funcionamento correto do Painel de Agendamento, não alterar a primeira aba do painel.


Parâmetros:

NomeTipoDescriçãoDefaultObrigatórioReferência
ParamIXBArray

Item a ser adicionado (1=Rotinas ao MenuDef/2=Filtro e campos)


Sim


Retorno:

Se o ParamIXB = 1, o aRet deve:

  • Conter:
    • A posição onde o sistema deve adicionar a nova aba no Painel de Agendamento;
    • Um array contendo o nome da rotina, função, MenuDef (inclusão, alteração, visualização, exclusão e etc.), variável lógica verdadeira, a tabela da rotina e variável lógica falsa;
  • Ex: 

AAdd( aRot, "Cadastro de Seguradoras" )
AAdd( aRot, "TMSA295" )
AAdd( aRot, "MENUDEF" )
AAdd( aRot, .T. )
AAdd( aRot, "DL6" )
AAdd( aRot, .F. )

AAdd( aRet, { 2, AClone(aRot) } )


Se ParamIXB = 2, o aRet deve:

  • Conter:
    • Conter uma query SQL para ser executada;
    • Um array com a estrutura SX3 da tabela a ser apresentada na nova aba a ser adicionada no Painel de Agendamento;
  • Ex: 

cQuery := " SELECT DL6.DL6_CODSEG,DL6.DL6_CODFOR,DL6.DL6_LOJFOR,DL6.DL6_LOGAVB "
cQuery += " FROM DL6990 DL6 "
cQuery += " WHERE DL6.DL6_CODSEG = '001' AND DL6.D_E_L_E_T_ = ' ' "

dbSelectArea("SX3")
SX3->( DbSetOrder(1) )
If SX3->( DbSeek( "DL6" ) )

AAdd( aRet, cQuery )

AAdd( aCampos, { "DL6_CODSEG", FWX3Titulo("DL6_CODSEG"), TamSX3("DL6_CODSEG")[3], TamSX3("DL6_CODSEG")[1], TamSX3("DL6_CODSEG")[2], PesqPict( "DL6", "DL6_CODSEG" ), AClone( StrToKArr( AllTrim( X3CBox() ) , ";" ) ), .F., "", "" } )

AAdd( aCampos, { "DL6_CODFOR", FWX3Titulo("DL6_CODFOR"), TamSX3("DL6_CODFOR")[3], TamSX3("DL6_CODFOR")[1], TamSX3("DL6_CODFOR")[2], PesqPict( "DL6", "DL6_CODFOR" ), AClone( StrToKArr( AllTrim( X3CBox() ) , ";" ) ), .F., "", "" } )

AAdd( aCampos, { "DL6_LOJFOR", FWX3Titulo("DL6_LOJFOR"), TamSX3("DL6_LOJFOR")[3], TamSX3("DL6_LOJFOR")[1], TamSX3("DL6_LOJFOR")[2], PesqPict( "DL6", "DL6_LOJFOR" ), AClone( StrToKArr( AllTrim( X3CBox() ) , ";" ) ), .F., "", "" } )

AAdd( aCampos, { "DL6_LOGAVB", FWX3Titulo("DL6_LOGAVB"), TamSX3("DL6_LOGAVB")[3], TamSX3("DL6_LOGAVB")[1], TamSX3("DL6_LOGAVB")[2], PesqPict( "DL6", "DL6_LOGAVB" ), AClone( StrToKArr( AllTrim( X3CBox() ) , ";" ) ), .F., "", "" } )

AAdd( aRet, aCampos )

EndIf

03. EXEMPLO DE UTILIZAÇÃO

TMF76Add
#INCLUDE 'PROTHEUS.CH'

User Function TMF76ADD()

    Local nAcao     := ParamIXB[1]
    Local aRet      := {}
    Local aRot      := {}
    Local aCampos   := {}

    If nAcao == 1
        
        AAdd( aRot,  "Cadastro de Seguradoras"   )
        AAdd( aRot,  "TMSA295"          )
        AAdd( aRot,  "MENUDEF"          )
        AAdd( aRot,  .T.                )
        AAdd( aRot,  "DL6"              )
        AAdd( aRot,  .F.                )

        AAdd( aRet, { 2, AClone(aRot) } )

    ElseIf nAcao == 2
        
        cQuery := " SELECT DL6.DL6_CODSEG,DL6.DL6_CODFOR,DL6.DL6_LOJFOR,DL6.DL6_LOGAVB "
        cQuery += " FROM DL6990 DL6 "
        cQuery += " WHERE DL6.DL6_CODSEG = '001' AND DL6.D_E_L_E_T_ = ' ' "
        
        dbSelectArea("SX3")
        SX3->( DbSetOrder(1) )
        If SX3->( DbSeek( "DL6" ) )
            AAdd( aRet, cQuery )
            
            AAdd( aCampos, { "DL6_CODSEG", FWX3Titulo("DL6_CODSEG"), TamSX3("DL6_CODSEG")[3], TamSX3("DL6_CODSEG")[1], TamSX3("DL6_CODSEG")[2], PesqPict( "DL6", "DL6_CODSEG" ), AClone( StrToKArr( AllTrim( X3CBox() ) , ";" ) ), .F., "", "" } )
            
            AAdd( aCampos, { "DL6_CODFOR", FWX3Titulo("DL6_CODFOR"), TamSX3("DL6_CODFOR")[3], TamSX3("DL6_CODFOR")[1], TamSX3("DL6_CODFOR")[2], PesqPict( "DL6", "DL6_CODFOR" ), AClone( StrToKArr( AllTrim( X3CBox() ) , ";" ) ), .F., "", "" } )
            
            AAdd( aCampos, { "DL6_LOJFOR", FWX3Titulo("DL6_LOJFOR"), TamSX3("DL6_LOJFOR")[3], TamSX3("DL6_LOJFOR")[1], TamSX3("DL6_LOJFOR")[2], PesqPict( "DL6", "DL6_LOJFOR" ), AClone( StrToKArr( AllTrim( X3CBox() ) , ";" ) ), .F., "", "" } )
            
            AAdd( aCampos, { "DL6_LOGAVB", FWX3Titulo("DL6_LOGAVB"), TamSX3("DL6_LOGAVB")[3], TamSX3("DL6_LOGAVB")[1], TamSX3("DL6_LOGAVB")[2], PesqPict( "DL6", "DL6_LOGAVB" ), AClone( StrToKArr( AllTrim( X3CBox() ) , ";" ) ), .F., "", "" } )
            
            AAdd( aRet, aCampos )

        EndIf
    EndIf

Return AClone( aRet )


04. DEMAIS INFORMAÇÕES

Não há.

05. ASSUNTOS RELACIONADOS

Não há.