Exemplo de um RP Básico

Discussão em 'Outros/Diversos' iniciado por deproenca, Novembro 23, 2009.

  1. deproenca

    deproenca Membro Participativo

    Código:
    &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v9r12
    &ANALYZE-RESUME
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS Procedure 
    /************************************************************************************
    ** Programa: 
    ** Objetivo: 
    **  Empresa: 
    **    Autor: 
    **     Data: 
    *************************************************************************************/
    {include/i-prgvrs.i ESOF003RP "2.04.00.001"}
    
    /* temp-tables */
    define temp-table tt-param no-undo
        field destino          as integer
        field arquivo          as char format "x(35)"
        field usuario          as char format "x(12)"
        field data-exec        as date
        field hora-exec        as integer
        field classifica       as integer
        field desc-classifica  as char format "x(40)"
        field modelo-rtf       as char format "x(35)"
        field l-habilitaRtf    as log.
    
    
    define temp-table tt-digita no-undo
        field ordem            as integer   format ">>>>9"
        field exemplo          as character format "x(30)"
        index id ordem.
    
    define buffer b-tt-digita for tt-digita.
    
    def temp-table tt-raw-digita
       field raw-digita      as raw.
    
    /* paramentros */
    define input param raw-param as raw no-undo.
    define input param table for tt-raw-digita.
    
    /* preparacao dos paramentros */
    create tt-param.
    raw-transfer raw-param to tt-param.
    
    FOR EACH tt-raw-digita.
        CREATE tt-digita.
        RAW-TRANSFER tt-raw-digita.RAW TO tt-digita.
    END.
    
    /* definicao de stream */
    define new shared stream str-rp.
    
    /* includes do relatorio */
    {include/i-rpvar.i}
    {include/i-rpcab.i}
    {include/i-rpcb80.i} /* f-cabec-80 */
    
    /********************************************************************************
     DADOS CUSTOMIZADOS
    ********************************************************************************/ 
    
    /* temp-tables */
    
    /* buffers */
    
    /* variaveis */
    {utp/ut-glob.i} /* i-ep-codigo-usuario - empresa conectada */
    DEFINE NEW GLOBAL SHARED VARIABLE c-seg-usuario AS CHARACTER  NO-UNDO.
    DEFINE VARIABLE h-acomp   AS HANDLE     NO-UNDO.
    DEFINE VARIABLE i-time    AS INTEGER    NO-UNDO.
    DEFINE VARIABLE c-cabecao AS CHARACTER  NO-UNDO.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    
    &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK 
    
    /* ********************  Preprocessor Definitions  ******************** */
    
    &Scoped-define PROCEDURE-TYPE Procedure
    &Scoped-define DB-AWARE no
    
    
    
    /* _UIB-PREPROCESSOR-BLOCK-END */
    &ANALYZE-RESUME
    
    
    
    /* *********************** Procedure Settings ************************ */
    
    &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
    /* Settings for THIS-PROCEDURE
       Type: Procedure
       Allow: 
       Frames: 0
       Add Fields to: Neither
       Other Settings: CODE-ONLY COMPILE
     */
    &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
    
    /* *************************  Create Window  ************************** */
    
    &ANALYZE-SUSPEND _CREATE-WINDOW
    /* DESIGN Window definition (used by the UIB) 
      CREATE WINDOW Procedure ASSIGN
             HEIGHT             = 12.79
             WIDTH              = 33.72.
    /* END WINDOW DEFINITION */
                                                                            */
    &ANALYZE-RESUME
    
     
    
    
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK Procedure 
    
    
    FIND FIRST param-global NO-LOCK NO-ERROR.
    FIND FIRST empresa NO-LOCK WHERE empresa.ep-codigo = param-global.empresa-prin.
    
    assign c-programa     = "ESOF003RP"
           c-versao       = "2.04"
           c-revisao      = ".00.001"
           c-empresa      = empresa.razao
           c-sistema      = "Espec¡fico"
           c-titulo-relat = "Titulo do relatorio".
    
    {include/i-rpout.i}
    
    /* frames */
    
    /* cabecalho customizado */
    c-cabecao = FILL("-",173) + " " + STRING(TODAY,"99/99/9999") + " - " + STRING(TIME,"HH:MM:SS").
    FORM HEADER
         FILL("-",195) FORMAT "X(195)" SKIP 
         c-empresa      at 01
         c-titulo-relat at 80
         "Folha:"       at 183 PAGE-NUMBER AT 192 FORMAT ">>>9" SKIP 
         c-cabecao AT 01 FORMAT "x(195)" SKIP(1)
         WITH WIDTH 200 NO-LABELS NO-BOX PAGE-TOP FRAME f-cabecao.  
    
    
    /* cabecalho do relatorio */
    /*
    FORM HEADER
         "Est Transacao  Emissao       Docto Emitente  Tp Docto Serie Operacao           Vl Mercad          Est Emissao    Esp     Docto/P Cliente        Cta Sub Cta      Valor Original        Valor Saldo" SKIP
         "--- ---------- ---------- -------- --------- -- ----- ----- -------- -------------------          --- ---------- --- ----------- --------- -------- -------- ------------------ ------------------" SKIP
         WITH FRAME f-relatorio WIDTH 200 NO-LABELS NO-BOX PAGE-TOP.
    */
    
    /* rodape */
    c-rodape = "DATASUL - " + c-sistema + " - " + c-prg-obj + " - V:" + c-prg-vrs.
    c-rodape = FILL("-", 132 - LENGTH(c-rodape) - 1) + " " + c-rodape.
    FORM HEADER c-rodape FORMAT "x(132)"
         WITH STREAM-IO WIDTH 132 NO-LABELS NO-BOX PAGE-BOTTOM FRAME f-rodape.
    
    /* atualizacao de variaveis locais */
    ASSIGN i-time = TIME.
    
    RUN utp/ut-acomp.p PERSISTENT SET h-acomp.
    
    RUN pi-inicializar IN h-acomp("Acompanhamento").
    
    RUN pi-executar.
    
    RUN pi-finalizar IN h-acomp.
    
    {include/i-rpclo.i}
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    
    /* **********************  Internal Procedures  *********************** */
    
    &IF DEFINED(EXCLUDE-pi-executar) = 0 &THEN
    
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE pi-executar Procedure 
    PROCEDURE pi-executar :
    /*--------------------------------------------------------------------------------
      RUN pi-acompanhar IN h-acomp (INPUT "Gerando... " + STRING(TIME,"hh:mm:ss")).  
    --------------------------------------------------------------------------------*/
    VIEW FRAME f-cabec. 
    VIEW FRAME f-rodape.
    
    view frame f-relatorio.
    
    
    END PROCEDURE.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    &ENDIF
    
    &IF DEFINED(EXCLUDE-pi-selecao) = 0 &THEN
    
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE pi-selecao Procedure 
    PROCEDURE pi-selecao :
    /*------------------------------------------------------------------------------
      pi-selecao
    ------------------------------------------------------------------------------*/
    
    PAGE.
    
    PUT SKIP(1)
        "Selecao" SKIP
        "=======" SKIP.
    
    END PROCEDURE.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    &ENDIF
    
    

Compartilhe esta Página