Colocar assinatura e data em relatório

Boa tarde a todos,

Abaixo eu tenho o seguinte relatório, e gostaria de colocar um campo de assinatura e data na parte inferior

exemplo: __ Data /_/_ Assinatura

Alguém saberia me explicar como fazer isso?

#include "FINR585.ch"     
#include "protheus.ch"
#include "report.ch"   

/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma  ³FINR585   ºAutor  ³Vinicius peglow     º Data ³  30/07/17   º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc.     ³ Relatorio que formaliza a liberacao para pagamento de um   º±±
±±º          ³ titulo a pagar.                                            º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso       ³ AP                                                         º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
User Function P_585()
Local oReport

oReport := ReportDef()    
oReport:PrintDialog()

Return

/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma  ³ReportDef ºAutor  ³Vinicius peglow     º Data ³  30/07/17   º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc.     ³ Define relatorio de liberação de documentos.               º±±
±±º          ³                                                            º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso       ³ FINR585                                                    º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Static Function ReportDef()
Local oReport
Local oSection1     
Local oSection2
Local oSection3
Local bValorLib  := {|| If(Empty(E2_DATALIB), 0, E2_VALOR) }
Local bValorCan  := {|| If(Empty(E2_DATACAN), 0, E2_VALOR) }
Local bHistorLib := {|| GetHistFI2(E2_NUMBOR,E2_PREFIXO,E2_NUM,E2_PARCELA,E2_TIPO,E2_FORNECE,E2_LOJA, "E2_DATALIB") }
Local bHistorCan := {|| GetHistFI2(E2_NUMBOR,E2_PREFIXO,E2_NUM,E2_PARCELA,E2_TIPO,E2_FORNECE,E2_LOJA, "E2_DATACAN") }

CriaSX1("FINR585R01")
Pergunte("FINR585R01",.F.)

DEFINE REPORT oReport NAME "FINR585" TITLE STR0001 PARAMETER "FINR585R01" ACTION {|oReport| PrintReport(oReport)}    

    DEFINE SECTION oSection1 OF oReport TITLE STR0003 TABLES "SE2" LEFT MARGIN 2 LINES BEFORE 0 PAGE BREAK //"Dados do Titulo"

        DEFINE CELL NAME "E2_FILIAL"     OF oSection1 ALIAS "SE2" SIZE 10 TITLE STR0006 //"FILIAL"     
        DEFINE CELL NAME "E2_PREFIXO"     OF oSection1 ALIAS "SE2" SIZE 10 TITLE STR0007 //"PREFIXO"    
        DEFINE CELL NAME "E2_NUM"         OF oSection1 ALIAS "SE2" SIZE 10 TITLE STR0008 //"NUMERO"    
        DEFINE CELL NAME "E2_PARCELA"     OF oSection1 ALIAS "SE2" SIZE 10 TITLE STR0009 //"PARCELA"    
        DEFINE CELL NAME "E2_TIPO"         OF oSection1 ALIAS "SE2" SIZE 10 TITLE STR0010 //"TIPO"    
        DEFINE CELL NAME "E2_FORNECE"     OF oSection1 ALIAS "SE2" SIZE 10 TITLE STR0011 //"FORNECEDOR"    
        DEFINE CELL NAME "E2_LOJA"         OF oSection1 ALIAS "SE2" SIZE 10 TITLE STR0012 //"LOJA"    
        DEFINE CELL NAME "E2_TIPO"         OF oSection1 ALIAS "SE2" SIZE 10 TITLE STR0013 //"TP. PAGTO"    
        DEFINE CELL NAME "E2_MDCONTR"     OF oSection1 ALIAS "SE2" SIZE 10 TITLE STR0014 //"CONTRATO"    
        DEFINE CELL NAME "E2_EMISSAO"     OF oSection1 ALIAS "SE2" SIZE 10 TITLE STR0015 //"EMISSAO"    
        DEFINE CELL NAME "E2_VENCTO"     OF oSection1 ALIAS "SE2" SIZE 10 TITLE STR0016 //"VENCTO"                
        DEFINE CELL NAME "E2_VENCREA"     OF oSection1 ALIAS "SE2" SIZE 10 TITLE STR0017 //"VENCTO REAL"    
        DEFINE CELL NAME "E2_MOEDA"     OF oSection1 ALIAS "SE2" SIZE 10 TITLE STR0018 //"MOEDA"    
        DEFINE CELL NAME "E2_VALOR"     OF oSection1 ALIAS "SE2" SIZE 10 TITLE STR0019 //"VALOR"          

        DEFINE BREAK oBreak1 OF oSection1 WHEN oSection1:Cell("E2_NUM") //TOTAL IN LINE // TOTAL IN LINE TITLE "Total Imposto"

    //DADOS AUTORIZACAO
    DEFINE SECTION oSection2 OF oSection1 TITLE STR0004 TABLES "TEMP_LIB" LEFT MARGIN 2 LINES BEFORE 2 //"Dados da Autorização"

        DEFINE CELL NAME "E2_DATALIB"     OF oSection2 ALIAS "TEMP_LIB" SIZE 17 TITLE STR0020                  //"DATA AUTORIZAÇÃO"
        DEFINE CELL NAME "E2_VALOR"     OF oSection2 ALIAS "TEMP_LIB" SIZE 17 TITLE STR0021 BLOCK bValorLib  //"VALOR LIBERADO "     
        DEFINE CELL NAME "E2_USUALIB"     OF oSection2 ALIAS "TEMP_LIB" SIZE 10 TITLE STR0023                  //"USUÁRIO"            
        DEFINE CELL NAME "E2_APROVA"     OF oSection2 ALIAS "TEMP_LIB" SIZE 10 TITLE STR0024                  //"APROVADOR"        
        DEFINE CELL NAME "E2_STATUS"     OF oSection2 ALIAS "TEMP_LIB" SIZE 10 TITLE STR0025                  //"STATUS"                    
        DEFINE CELL NAME "FI2_HISTOR"     OF oSection2 ALIAS "TEMP_LIB" SIZE 78 TITLE STR0026 BLOCK bHistorLib //"COMENTARIOS AUTORIZAÇÃO"      


    //DADOS CANCELAMENTO
    DEFINE SECTION oSection3 OF oSection2 TITLE STR0005 TABLES "TEMP_CNC" LEFT MARGIN 2 LINES BEFORE 2 //"Dados do Cancelamento"

        DEFINE CELL NAME "E2_DATACAN"     OF oSection3 ALIAS "TEMP_CNC" SIZE 17 TITLE STR0027                   //"DATA CANCELAMENTO"                          
        DEFINE CELL NAME "E2_VALOR"     OF oSection3 ALIAS "TEMP_CNC" SIZE 17 TITLE STR0028 BLOCK bValorCan //"VALOR CANCELADO"           
        DEFINE CELL NAME "E2_USUACAN"     OF oSection3 ALIAS "TEMP_CNC" SIZE 10 TITLE STR0029                 //"USUÁRIO"                                 
        DEFINE CELL NAME "E2_APROVA"     OF oSection3 ALIAS "TEMP_CNC" SIZE 20 TITLE STR0030                 //"APROVADOR"                             
        DEFINE CELL NAME "E2_HIST"         OF oSection3 ALIAS "TEMP_CNC" SIZE 78 TITLE STR0031 BLOCK bHistorCan//"COMENTARIOS CANCELAMENTO"            

Return oReport

/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma  ³ReportPrintºAutor  ³Vinicius Peglow    º Data ³  30/07/17   º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc.     ³ Traz dados do relatorio de liberacao de documentos.        º±±
±±º          ³                                                            º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso       ³ FINR585                                                    º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Static Function PrintReport(oReport)
#IFDEF TOP
    Local cAlias     := GetNextAlias()
    Local oSection1 := oReport:Section(1)
    Local oSection2 := oReport:Section(1):Section(1)
    Local oSection3 := oReport:Section(1):Section(1):Section(1)        
    Local cSQL         := ""
    Local cStatus   := mv_par11 
    Local cFiliali  := Iif( mv_par12 == 1, mv_par13, xFilial("SE2") )
    Local cFilialf  := Iif( mv_par12 == 1, mv_par14, xFilial("SE2") )    


    BEGIN REPORT QUERY oSection1

    If cStatus == 1 //Aguardando liberação       
        BeginSql alias cAlias
            SELECT 
                SE2.E2_FILIAL,        
                SE2.E2_PREFIXO  ,
                SE2.E2_NUM      ,
                SE2.E2_PARCELA  ,
                SE2.E2_TIPO     ,
                SE2.E2_FORNECE  ,
                SE2.E2_LOJA     ,
                SE2.E2_TIPO      ,
                SE2.E2_MDCONTR  ,
                SE2.E2_EMISSAO  ,
                SE2.E2_VENCTO      ,
                SE2.E2_VENCREA  ,
                SE2.E2_MOEDA      ,
                SE2.E2_VALOR      ,      
                SE2.E2_NUMBOR    ,            
                TEMP_LIB.E2_DATALIB  ,
                TEMP_LIB.E2_VALOR     ,
                TEMP_LIB.E2_USUALIB  ,
                TEMP_LIB.E2_APROVA   ,
                TEMP_LIB.E2_STATUS   ,
                TEMP_LIB.E2_HIST        ,
                TEMP_CNC.E2_DATACAN  ,
                TEMP_CNC.E2_USUACAN  ,
                TEMP_CNC.E2_APROVA   ,
                TEMP_CNC.E2_VALOR      ,    
                TEMP_CNC.E2_HIST       
            FROM %table:SE2% SE2
            INNER JOIN %table:SE2% TEMP_LIB
                ON  SE2.E2_FILIAL    = TEMP_LIB.E2_FILIAL
                AND SE2.E2_PREFIXO  = TEMP_LIB.E2_PREFIXO
                AND SE2.E2_NUM      = TEMP_LIB.E2_NUM
                AND SE2.E2_PARCELA  = TEMP_LIB.E2_PARCELA
                AND SE2.E2_TIPO     = TEMP_LIB.E2_TIPO            
            INNER JOIN %table:SE2% TEMP_CNC
                ON SE2.E2_FILIAL    = TEMP_CNC.E2_FILIAL
                AND SE2.E2_PREFIXO  = TEMP_CNC.E2_PREFIXO
                AND SE2.E2_NUM      = TEMP_CNC.E2_NUM
                AND SE2.E2_PARCELA  = TEMP_CNC.E2_PARCELA
                AND SE2.E2_TIPO     = TEMP_CNC.E2_TIPO                
            WHERE 
                    SE2.E2_FILIAL  BETWEEN %Exp:cFiliali% AND %Exp:cFilialf%                    
                AND SE2.E2_PREFIXO BETWEEN %Exp:mv_par01% AND %Exp:mv_par02%
                AND SE2.E2_NUM     BETWEEN %Exp:mv_par03% AND %Exp:mv_par04%
                AND SE2.E2_FORNECE BETWEEN %Exp:mv_par05% AND %Exp:mv_par06%
                AND SE2.E2_EMISSAO BETWEEN %Exp:mv_par07% AND %Exp:mv_par08%
                AND SE2.E2_VENCTO  BETWEEN %Exp:mv_par09% AND %Exp:mv_par10%
                AND SE2.E2_SALDO  > 0
                AND SE2.D_E_L_E_T_ = ' '
                AND SE2.E2_DATALIB = '        '
                AND SE2.E2_DATACAN = '        '
            ORDER BY SE2.E2_VENCTO
        EndSql
    ElseIf cStatus == 2 //Liberados
        BeginSql alias cAlias
            SELECT 
                SE2.E2_FILIAL,        
                SE2.E2_PREFIXO  ,
                SE2.E2_NUM      ,
                SE2.E2_PARCELA  ,
                SE2.E2_TIPO     ,
                SE2.E2_FORNECE  ,
                SE2.E2_LOJA     ,
                SE2.E2_TIPO      ,
                SE2.E2_MDCONTR  ,
                SE2.E2_EMISSAO  ,
                SE2.E2_VENCTO      ,
                SE2.E2_VENCREA  ,
                SE2.E2_MOEDA      ,
                SE2.E2_VALOR      ,      
                SE2.E2_NUMBOR    ,            
                TEMP_LIB.E2_DATALIB  ,
                TEMP_LIB.E2_VALOR     ,
                TEMP_LIB.E2_USUALIB  ,
                TEMP_LIB.E2_APROVA   ,
                TEMP_LIB.E2_STATUS   ,
                TEMP_LIB.E2_HIST        ,
                TEMP_CNC.E2_DATACAN  ,
                TEMP_CNC.E2_USUACAN  ,
                TEMP_CNC.E2_APROVA   ,
                TEMP_CNC.E2_VALOR      ,    
                TEMP_CNC.E2_HIST       
            FROM %table:SE2% SE2
            INNER JOIN %table:SE2% TEMP_LIB
                ON  SE2.E2_FILIAL    = TEMP_LIB.E2_FILIAL
                AND SE2.E2_PREFIXO  = TEMP_LIB.E2_PREFIXO
                AND SE2.E2_NUM      = TEMP_LIB.E2_NUM
                AND SE2.E2_PARCELA  = TEMP_LIB.E2_PARCELA
                AND SE2.E2_TIPO     = TEMP_LIB.E2_TIPO            
            INNER JOIN %table:SE2% TEMP_CNC
                ON SE2.E2_FILIAL    = TEMP_CNC.E2_FILIAL
                AND SE2.E2_PREFIXO  = TEMP_CNC.E2_PREFIXO
                AND SE2.E2_NUM      = TEMP_CNC.E2_NUM
                AND SE2.E2_PARCELA  = TEMP_CNC.E2_PARCELA
                AND SE2.E2_TIPO     = TEMP_CNC.E2_TIPO                
            WHERE 
                    SE2.E2_FILIAL  BETWEEN %Exp:cFiliali% AND %Exp:cFilialf%                    
                AND SE2.E2_PREFIXO BETWEEN %Exp:mv_par01% AND %Exp:mv_par02%
                AND SE2.E2_NUM     BETWEEN %Exp:mv_par03% AND %Exp:mv_par04%
                AND SE2.E2_FORNECE BETWEEN %Exp:mv_par05% AND %Exp:mv_par06%
                AND SE2.E2_EMISSAO BETWEEN %Exp:mv_par07% AND %Exp:mv_par08%
                AND SE2.E2_VENCTO  BETWEEN %Exp:mv_par09% AND %Exp:mv_par10%
                AND SE2.E2_SALDO  > 0
                AND SE2.D_E_L_E_T_ = ' '
                AND SE2.E2_DATALIB != '        ' 
                AND SE2.E2_DATACAN = '        ' 
            ORDER BY SE2.E2_VENCTO
        EndSql    
    ElseIf cStatus == 3 //Cancelados
            BeginSql alias cAlias
            SELECT 
                SE2.E2_FILIAL,        
                SE2.E2_PREFIXO  ,
                SE2.E2_NUM      ,
                SE2.E2_PARCELA  ,
                SE2.E2_TIPO     ,
                SE2.E2_FORNECE  ,
                SE2.E2_LOJA     ,
                SE2.E2_TIPO      ,
                SE2.E2_MDCONTR  ,
                SE2.E2_EMISSAO  ,
                SE2.E2_VENCTO      ,
                SE2.E2_VENCREA  ,
                SE2.E2_MOEDA      ,
                SE2.E2_VALOR      ,      
                SE2.E2_NUMBOR    ,            
                TEMP_LIB.E2_DATALIB  ,
                TEMP_LIB.E2_VALOR     ,
                TEMP_LIB.E2_USUALIB  ,
                TEMP_LIB.E2_APROVA   ,
                TEMP_LIB.E2_STATUS   ,
                TEMP_LIB.E2_HIST        ,
                TEMP_CNC.E2_DATACAN  ,
                TEMP_CNC.E2_USUACAN  ,
                TEMP_CNC.E2_APROVA   ,
                TEMP_CNC.E2_VALOR      ,    
                TEMP_CNC.E2_HIST       
            FROM %table:SE2% SE2
            INNER JOIN %table:SE2% TEMP_LIB
                ON  SE2.E2_FILIAL    = TEMP_LIB.E2_FILIAL
                AND SE2.E2_PREFIXO  = TEMP_LIB.E2_PREFIXO
                AND SE2.E2_NUM      = TEMP_LIB.E2_NUM
                AND SE2.E2_PARCELA  = TEMP_LIB.E2_PARCELA
                AND SE2.E2_TIPO     = TEMP_LIB.E2_TIPO            
            INNER JOIN %table:SE2% TEMP_CNC
                ON SE2.E2_FILIAL    = TEMP_CNC.E2_FILIAL
                AND SE2.E2_PREFIXO  = TEMP_CNC.E2_PREFIXO
                AND SE2.E2_NUM      = TEMP_CNC.E2_NUM
                AND SE2.E2_PARCELA  = TEMP_CNC.E2_PARCELA
                AND SE2.E2_TIPO     = TEMP_CNC.E2_TIPO                
            WHERE 
                    SE2.E2_FILIAL  BETWEEN %Exp:cFiliali% AND %Exp:cFilialf%                    
                AND SE2.E2_PREFIXO BETWEEN %Exp:mv_par01% AND %Exp:mv_par02%
                AND SE2.E2_NUM     BETWEEN %Exp:mv_par03% AND %Exp:mv_par04%
                AND SE2.E2_FORNECE BETWEEN %Exp:mv_par05% AND %Exp:mv_par06%
                AND SE2.E2_EMISSAO BETWEEN %Exp:mv_par07% AND %Exp:mv_par08%
                AND SE2.E2_VENCTO  BETWEEN %Exp:mv_par09% AND %Exp:mv_par10%
                AND SE2.E2_SALDO  > 0
                AND SE2.D_E_L_E_T_ = ' '
                AND SE2.E2_DATACAN != '        '
                AND SE2.E2_DATALIB != '        ' 
            ORDER BY SE2.E2_VENCTO
        EndSql
    Else //Todos
        BeginSql alias cAlias
            SELECT 
                SE2.E2_FILIAL,        
                SE2.E2_PREFIXO  ,
                SE2.E2_NUM      ,
                SE2.E2_PARCELA  ,
                SE2.E2_TIPO     ,
                SE2.E2_FORNECE  ,
                SE2.E2_LOJA     ,
                SE2.E2_TIPO      ,
                SE2.E2_MDCONTR  ,
                SE2.E2_EMISSAO  ,
                SE2.E2_VENCTO      ,
                SE2.E2_VENCREA  ,
                SE2.E2_MOEDA      ,
                SE2.E2_VALOR      ,      
                SE2.E2_NUMBOR    ,            
                TEMP_LIB.E2_DATALIB  ,
                TEMP_LIB.E2_VALOR     ,
                TEMP_LIB.E2_USUALIB  ,
                TEMP_LIB.E2_APROVA   ,
                TEMP_LIB.E2_STATUS   ,
                TEMP_LIB.E2_HIST        ,
                TEMP_CNC.E2_DATACAN  ,
                TEMP_CNC.E2_USUACAN  ,
                TEMP_CNC.E2_APROVA   ,
                TEMP_CNC.E2_VALOR      ,    
                TEMP_CNC.E2_HIST       
            FROM %table:SE2% SE2
            INNER JOIN %table:SE2% TEMP_LIB
                ON  SE2.E2_FILIAL    = TEMP_LIB.E2_FILIAL
                AND SE2.E2_PREFIXO  = TEMP_LIB.E2_PREFIXO
                AND SE2.E2_NUM      = TEMP_LIB.E2_NUM
                AND SE2.E2_PARCELA  = TEMP_LIB.E2_PARCELA
                AND SE2.E2_TIPO     = TEMP_LIB.E2_TIPO            
            INNER JOIN %table:SE2% TEMP_CNC
                ON SE2.E2_FILIAL    = TEMP_CNC.E2_FILIAL
                AND SE2.E2_PREFIXO  = TEMP_CNC.E2_PREFIXO
                AND SE2.E2_NUM      = TEMP_CNC.E2_NUM
                AND SE2.E2_PARCELA  = TEMP_CNC.E2_PARCELA
                AND SE2.E2_TIPO     = TEMP_CNC.E2_TIPO                
            WHERE 
                    SE2.E2_FILIAL  BETWEEN %Exp:cFiliali% AND %Exp:cFilialf%                    
                AND SE2.E2_PREFIXO BETWEEN %Exp:mv_par01% AND %Exp:mv_par02%
                AND SE2.E2_NUM     BETWEEN %Exp:mv_par03% AND %Exp:mv_par04%
                AND SE2.E2_FORNECE BETWEEN %Exp:mv_par05% AND %Exp:mv_par06%
                AND SE2.E2_EMISSAO BETWEEN %Exp:mv_par07% AND %Exp:mv_par08%
                AND SE2.E2_VENCTO  BETWEEN %Exp:mv_par09% AND %Exp:mv_par10%
                AND SE2.E2_SALDO  > 0
                AND SE2.D_E_L_E_T_ = ' '
            ORDER BY SE2.E2_VENCTO
        EndSql    
    EndIf

    END REPORT QUERY oSection1

    oSection2:SetParentQuery()
    oSection2:SetParentFilter( {|cParam| (cAlias)->( E2_FILIAL+E2_PREFIXO+E2_NUM+E2_PARCELA+E2_TIPO+E2_FORNECE+E2_LOJA) == cParam },{|| (cAlias)->( E2_FILIAL+E2_PREFIXO+E2_NUM+E2_PARCELA+E2_TIPO+E2_FORNECE+E2_LOJA)})            

    oSection3:SetParentQuery()
    oSection3:SetParentFilter( {|cParam| (cAlias)->( E2_FILIAL+E2_PREFIXO+E2_NUM+E2_PARCELA+E2_TIPO+E2_FORNECE+E2_LOJA) == cParam },{|| (cAlias)->( E2_FILIAL+E2_PREFIXO+E2_NUM+E2_PARCELA+E2_TIPO+E2_FORNECE+E2_LOJA)})                

    oSection1:Print()
#ENDIF
Return

/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma  ³CriaSX1   ºAutor  ³Vinicius Peglow     º Data ³  30/07/17   º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc.     ³ Cadastro de Perguntas(SX1)                                 º±±
±±º          ³                                                            º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso       ³ FINR585                                                    º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Static Function CriaSX1(cPerg)
Local aArea     := GetArea()          
Local nTamFil   := Len(xFilial())
Local nCount    := 1    
Local aHelpPor    := {}
Local aHelpEng    := {}
Local aHelpSpa    := {}

For nCount := 11 to 12
       If SX1->(dbSeek(cPerg+StrZero(nCount,2)))
        RecLock("SX1",.F.)        
        dbDelete()
        MsUnLock()
    EndIf
Next nCount                                                   

/* Identificando os campos da funcao PutSx1
01-cGrupo    02-cOrdem    03-cPergunt  04-cPerSpa   05-cPerEng   06-cVar      07-cTipo   08-nTamanho  09-nDecimal  10-nPresel  
11-cGSC      12-cValid    13-cF3       14-cGrpSxg   15-cPyme     16-cVar01    17-cDef01  18-cDefSpa1  19-cDefEng1  20-cCnt01 
21-cDef02    22-cDefSpa2  23-cDefEng2  24-cDef03    25-cDefSpa3  26-cDefEng3  27-cDef04  28-cDefSpa4  29-cDefEng4  30-cDef05 
31-cDefSpa5  32-cDefEng5  33-aHelpPor  34-aHelpEng  35-aHelpSpa  36-cHelp
*/
     //01    02   03                        04                        05                        06        07  08 09 10 11  12 13    14     15 16         17           18 19 20 21           22 23 24              25 26 27 28 29 30 31 32 33 34 35
PutSx1(cPerg,"01","De Prefixo ?"           ,"De Prefijo ? "          ,"From Prefix ?"          ,"mv_ch1" ,"C",03,0 ,0 ,"G","",""   ,""   ,"S","mv_par01",""             ,"","","",""         ,"","",""            ,"","","","","","","","",,,) 
PutSx1(cPerg,"02","Ate Prefixo ?"           ,"A Prefijo ?"             ,"To Prefix ?"               ,"mv_ch2" ,"C",03,0 ,0 ,"G","",""   ,""   ,"S","mv_par02",""             ,"","","",""         ,"","",""            ,"","","","","","","","",,,) 
PutSx1(cPerg,"03","De Titulo ?"            ,"De Titulo ?"            ,"From Bill ?"            ,"mv_ch3" ,"C",09,0 ,0 ,"G","",""   ,"018","S","mv_par03",""             ,"","","",""         ,"","",""            ,"","","","","","","","",,,) 
PutSx1(cPerg,"04","Ate Titulo ?"           ,"Ate Titulo ?"           ,"To Bill ?"              ,"mv_ch4" ,"C",09,0 ,0 ,"G","",""   ,"018","S","mv_par04",""             ,"","","",""         ,"","",""            ,"","","","","","","","",,,) 
PutSx1(cPerg,"05","Do Fornecedor ?"        ,"De Proveedor ?"         ,"From Supplier ?"        ,"mv_ch5" ,"C",06,0 ,0 ,"G","","SA2","001","S","mv_par05",""             ,"","","",""         ,"","",""            ,"","","","","","","","",,,) 
PutSx1(cPerg,"06","Ate o Fornecedor ?"     ,"A Proveedor ?"          ,"To Supplier ?"          ,"mv_ch6" ,"C",06,0 ,0 ,"G","","SA2","001","S","mv_par06",""             ,"","","",""         ,"","",""            ,"","","","","","","","",,,) 
PutSx1(cPerg,"07","Da Emissao ?"           ,"De Emision ?"            ,"From Issue Date ?"        ,"mv_ch7" ,"D",08,0 ,0 ,"G","",""   ,""   ,"S","mv_par07",""             ,"","","",""         ,"","",""            ,"","","","","","","","",,,) 
PutSx1(cPerg,"08","Ate a Emissao ?"           ,"A Emision ?"             ,"To Issue Date ?"           ,"mv_ch8" ,"D",08,0 ,0 ,"G","",""   ,""   ,"S","mv_par08",""             ,"","","",""         ,"","",""            ,"","","","","","","","",,,) 
PutSx1(cPerg,"09","Do Vencimento ?"            ,"De Vencimiento ?"         ,"From Due Date ?"           ,"mv_ch9" ,"D",08,0 ,0 ,"G","",""   ,""   ,"S","mv_par09",""             ,"","","",""         ,"","",""            ,"","","","","","","","",,,) 
PutSx1(cPerg,"10","Ate Vencimento ?"       ,"A Vencimiento ?"         ,"To Due Date ?"           ,"mv_cha" ,"D",08,0 ,0 ,"G","",""   ,""   ,"S","mv_par10",""             ,"","","",""         ,"","",""            ,"","","","","","","","",,,) 
PutSx1(cPerg,"11","Status ?"                 ,"Status ? "              ,"Status ? "              ,"mv_chb" ,"N",01,0 ,0 ,"C","",""   ,""   ,"S","mv_par11","Aguardando","En Espera","Awaiting","","Liberado","Liberado","Released","Cancelado" ,"Cancelado","Canceled","","","","","","",,,) 
PutSx1(cPerg,"12","Seleciona Filial ?"     ,"Selecciona Sucursal ?"  ,"Select branch ?"        ,"mv_chc" ,"N",01,0 ,0 ,"C","",""   ,""   ,"S","mv_par12","Sim"         ,"Si","Yes","","Não"     ,"No","No",""            ,"","","","","","","","",,,) 
PutSx1(cPerg,"13","De Filial ?"           ,"De Sucursal ? "          ,"From branch ?"          ,"mv_chd" ,"C",nTamFil,0 ,0 ,"G","",""   ,"033"   ,"S","mv_par13",""             ,"","","",""         ,"","",""            ,"","","","","","","","",,,) 
PutSx1(cPerg,"14","Ate Filial ?"           ,"A Sucursal ?"             ,"To branch ?"               ,"mv_che" ,"C",nTamFil,0 ,0 ,"G","",""   ,"033"   ,"S","mv_par14",""             ,"","","",""         ,"","",""            ,"","","","","","","","",,,) 

SX1->(dbSetOrder(1))
SX1->(dbSeek(cPerg))
While SX1->(!Eof()) .and. AllTrim(SX1->X1_GRUPO) == AllTrim(cPerg)
    If SX1->X1_ORDEM $ "01|02|03|04"
        RecLock("SX1",.F.)
        SX1->X1_F3 := "  "
        MsUnLock()
    ElseIf SX1->X1_ORDEM $ "05|06"
        RecLock("SX1",.F.)
        SX1->X1_F3 := "SA2"
        MsUnLock()
    ElseIf SX1->X1_ORDEM $ "11|12"
        RecLock("SX1",.F.)
        SX1->X1_TIPO := "N"
        MsUnLock()
    ElseIf SX1->X1_ORDEM $ "13|14"
        RecLock("SX1",.F.)
        SX1->X1_F3 := "SM0"
        MsUnLock()
    EndIf
    SX1->(dbSkip())
End

aHelpPor    := {}
aHelpEng    := {}
aHelpSpa    := {}
Aadd( aHelpPor, "Informe o prefixo do título.     " )
Aadd( aHelpEng, "Enter the prefix payment.        " )
Aadd( aHelpSpa, "Ingrese el prefijo del título.   " )
PutSX1Help("P."+cPerg+"01.",aHelpPor,aHelpEng,aHelpSpa)

aHelpPor    := {}
aHelpEng    := {}
aHelpSpa    := {}
Aadd( aHelpPor, "Informe o prefixo do título.     " )
Aadd( aHelpEng, "Enter the prefix payment.        " )
Aadd( aHelpSpa, "Ingrese el prefijo del título.   " )
PutSX1Help("P."+cPerg+"02.",aHelpPor,aHelpEng,aHelpSpa)

aHelpPor    := {}
aHelpEng    := {}
aHelpSpa    := {}
Aadd( aHelpPor, "Informe o numero do título inicial" )
Aadd( aHelpEng, "Enter the inital payment code.   " )
Aadd( aHelpSpa, "Ingrese numero del título inicial" )
PutSX1Help("P."+cPerg+"03.",aHelpPor,aHelpEng,aHelpSpa)

aHelpPor    := {}
aHelpEng    := {}
aHelpSpa    := {}
Aadd( aHelpPor, "Informe o numero do título final" )
Aadd( aHelpEng, "Enter the final payment code.   " )
Aadd( aHelpSpa, "Ingrese numero del título final." )
PutSX1Help("P."+cPerg+"04.",aHelpPor,aHelpEng,aHelpSpa)

aHelpPor    := {}
aHelpEng    := {}
aHelpSpa    := {}
Aadd( aHelpPor, "Informe o codigo do fornecedor." )
Aadd( aHelpEng, "Enter the inital supplier code." )
Aadd( aHelpSpa, "Ingrese el proveedor inicial.  " )
PutSX1Help("P."+cPerg+"05.",aHelpPor,aHelpEng,aHelpSpa)

aHelpPor    := {}
aHelpEng    := {}
aHelpSpa    := {}
Aadd( aHelpPor, "Informe o codigo do fornecedor." )
Aadd( aHelpEng, "Enter the final supplyer code. " )
Aadd( aHelpSpa, "Ingrese el proveedor final     " )
PutSX1Help("P."+cPerg+"06.",aHelpPor,aHelpEng,aHelpSpa)

aHelpPor    := {}
aHelpEng    := {}
aHelpSpa    := {}
Aadd( aHelpPor, "Informe a data de emissão      ")
Aadd( aHelpPor, "inicial para impressão.        ")
Aadd( aHelpEng, "Enter the initial acount date. ")
Aadd( aHelpEng, "to print."                      )
Aadd( aHelpSpa, "Ingrese la fecha de emisión    ")
Aadd( aHelpSpa, "de inicio para imprimir.       ")
PutSX1Help("P."+cPerg+"07.",aHelpPor,aHelpEng,aHelpSpa)

aHelpPor    := {}
aHelpEng    := {}
aHelpSpa    := {}
Aadd( aHelpPor, "Informe a data de emissão      ")
Aadd( aHelpPor, "final   para impressão."  )
Aadd( aHelpEng, "Enter the final acount date.   ")
Aadd( aHelpEng, "to print."                )
Aadd( aHelpSpa, "Ingrese la fecha de emisión    ")
Aadd( aHelpSpa, "final para imprimir."     )
PutSX1Help("P."+cPerg+"08.",aHelpPor,aHelpEng,aHelpSpa)

aHelpPor    := {}
aHelpEng    := {}
aHelpSpa    := {}
Aadd( aHelpPor, "Informe a data de vencimento   ")
Aadd( aHelpPor, "inicial para impressão."        )
Aadd( aHelpEng, "Enter the initial acount date. ")
Aadd( aHelpEng, "to print."                      )
Aadd( aHelpSpa, "Ingrese la fecha de vencimiento")
Aadd( aHelpSpa, "de inicio para imprimir."       )
PutSX1Help("P."+cPerg+"09.",aHelpPor,aHelpEng,aHelpSpa)

aHelpPor    := {}
aHelpEng    := {}
aHelpSpa    := {}
Aadd( aHelpPor, "Informe a data de vencimento   ")
Aadd( aHelpPor, "final   para impressão."  )
Aadd( aHelpEng, "Enter the final acount date.   ")
Aadd( aHelpEng, "to print."                )
Aadd( aHelpSpa, "Ingrese la fecha de vencimiento")
Aadd( aHelpSpa, "final para imprimir."     )
PutSX1Help("P."+cPerg+"10.",aHelpPor,aHelpEng,aHelpSpa)

aHelpPor    := {}
aHelpEng    := {}
aHelpSpa    := {}
Aadd( aHelpPor, "Selecione a situação dos titulo")
Aadd( aHelpPor, "s. Ex:Aberto, Liberado o")
Aadd( aHelpPor, "u cancelado."  )
Aadd( aHelpEng, "Enter the payment status       ")
Aadd( aHelpEng, "Example: Wainted, Releas")
Aadd( aHelpEng, "ed or Canceled." )
Aadd( aHelpSpa, "Seleccione el estatus del titulo")
Aadd( aHelpSpa, "Ejemplo: En espera, liberado")
Aadd( aHelpSpa, "o cancelado." )
PutSX1Help("P."+cPerg+"11.",aHelpPor,aHelpEng,aHelpSpa)

aHelpPor    := {}
aHelpEng    := {}
aHelpSpa    := {}
Aadd( aHelpPor, "Considera filial de, até    ")
Aadd( aHelpEng, "Considerate inicial or final")
Aadd( aHelpEng, "branch.")
Aadd( aHelpSpa, "Considera sucursal de inicio")
Aadd( aHelpSpa, "o final para imprimir")
PutSX1Help("P."+cPerg+"12.",aHelpPor,aHelpEng,aHelpSpa)

aHelpPor    := {}
aHelpEng    := {}
aHelpSpa    := {}
Aadd( aHelpPor, "Informe o codigo da filial.")
Aadd( aHelpPor, "de inicio para impressão" )
Aadd( aHelpEng, "Enter the inital branch")
Aadd( aHelpEng, "To print." )
Aadd( aHelpSpa, "Ingrese la sucursal inicial")
Aadd( aHelpEng, "para imprimir." )
PutSX1Help("P."+cPerg+"13.",aHelpPor,aHelpEng,aHelpSpa)

aHelpPor    := {}
aHelpEng    := {}
aHelpSpa    := {}
Aadd( aHelpPor, "Informe o codigo da filial.")
Aadd( aHelpPor, "final para impressão" )
Aadd( aHelpEng, "Enter the final branch")
Aadd( aHelpPor, "To print." )
Aadd( aHelpSpa, "Ingrese la sucursal final")
Aadd( aHelpPor, "para imprimir." )
PutSX1Help("P."+cPerg+"14.",aHelpPor,aHelpEng,aHelpSpa)

RestArea(aArea)
Return NIL

/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma  ³GetHistFI2ºAutor  ³vinicius peglow     º Data ³  30/07/17   º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc.     ³ Retorna string com o historico (FI2) de um titulo          º±±
±±º          ³                                                            º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso       ³ FINR585                                                    º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Static Function GetHistFI2(cNumBor,cPrefixo,cTitulo,cParcela,cTipo,cFornec,cLoja, cCampo)
Local aArea  := GetArea()
Local cChave := ""
Local cHist  := ""

cChave := xFilial("FI2")+"2"+cNumBor+cPrefixo+cTitulo+cParcela+cTipo+cFornec+cLoja

DbSelectArea("FI2")
FI2->(DbSetOrder(3))
FI2->(DbSeek(cChave))

While FI2->(!Eof()) .And. FI2->(FI2_FILIAL+"2"+FI2_NUMBOR+FI2_PREFIX+FI2_TITULO+FI2_PARCEL+FI2_TIPO+FI2_CODFOR+FI2_LOJFOR) == cChave 


    If FI2->FI2_CAMPO = cCampo
        cHist += MSMM(FI2_HISTOR) + chr(10) + chr(13)
    End If           

    FI2->( DbSkip() )
End

RestArea(aArea)
Return AllTrim(cHist)
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do SigaOAdvpl!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags ou faça a sua própria pergunta.